python中alpha和lambda正则化参数的问题

python中alpha和lambda正则化参数的问题,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,问题: Logistic回归使用alpha=0.1对具有L1正则化和L2正则化的Logistic回归模型进行训练 λ=0.1。报告准确性、精确性、召回率、f1分数并打印混淆矩阵 我的代码是: _lambda = 0.1 c = 1/_lambda classifier = LogisticRegression(penalty='l1',C=c) classifier.fit(X_train, y_train) y_pred = classifier.predict(X_test) 我不知道a

问题: Logistic回归使用alpha=0.1对具有L1正则化和L2正则化的Logistic回归模型进行训练 λ=0.1。报告准确性、精确性、召回率、f1分数并打印混淆矩阵

我的代码是:

_lambda = 0.1
c = 1/_lambda
classifier = LogisticRegression(penalty='l1',C=c)
classifier.fit(X_train, y_train)

y_pred = classifier.predict(X_test)
我不知道alpha和lambda的真正位置在哪里。 我做得对吗?

你的例子 α=0,λ=10(又名1/1)

阿尔法 alpha是为控制过拟合而增加特征数量惩罚的参数,在本例中为L1(套索回归)或L2(岭回归)。L1和L2惩罚不能同时进行,因为只有一个Lambda系数。快速搁置-Elastic Net是介于L1和L2之间的alpha参数,因此,例如,如果您使用sklearn.SGD_Regressor()alpha=0是L1 alpha=0.5是elasticnet,alpha=1是Ridge

兰姆达 是一个控制学习速度的术语。换句话说,您希望模型在每次学习迭代期间进行多少更改

混乱 更糟糕的是,这些术语经常互换使用,我认为这是由于图论、统计理论、数学理论和编写常用机器学习库的个人的不同但相似的概念


在这里查看一些信息:但也可以查找一些关于统计学习的免费学术教科书。

您可以
打印(classifier.C)
来检索用于训练模型的
1/\u lambda
的值。这就是正则化参数。这里没有其他
alpha
设置。正则化的
alpha
设置仅用于
sgdclassizer
您不能同时放置l1和l2规范化参数。这是一个或另一个,否则你必须做一个elatic网络正则化,然后它是sgdclassizer(使用弹性网络惩罚实现逻辑回归(sgdclassizer(loss=“log”,惩罚=“elasticnet”)))嘿@Alexis,sgdclassizer有Lambda和Alpha参数吗?是的,它同时使用它们。来自doc:正则化器是添加到损失函数的惩罚,该损失函数使用平方欧几里德范数L2或绝对范数L1或两者的组合(弹性网)将模型参数收缩到零向量。试着使用它,但在使用之前要阅读很多。正如在回答中提到的,如果你不了解你正在做的事情,你将一事无成。谢谢你的帖子,但我需要alpha和lambda。有可能吗?有可能吗?我帖子的第一行告诉你你使用的alpha和lambda的值。如果你想要λ=0.1。然后只需设置C=0.1股。我想同时更改代码中的alpha,可以吗?不能使用sklearn LogisticRegression,正如上面提到的@Alexis,您可以在SGDClassizer(loss='log')中指定此参数。但是,请花一些时间阅读链接源,观看一些视频等。。如果你想在现实世界中使用机器学习,理解这些术语背后的含义是至关重要的。