sklearn“RidgeClassifier”有什么作用?

问题描述 投票:4回答:1

我试图理解sklearn.linear_model中RidgeClassifier和LogisticRegression之间的区别。我在文档中找不到它。

我想我很清楚LogisticRegression的作用。它计算系数和截距以最小化half of sum of squares of the coefficients + C times the binary cross-entropy loss,其中C是正则化参数。我从头开始检查了一个天真的实现,结果是一致的。

RidgeClassifier的结果不同,我无法弄清楚,那里如何计算系数和截距?看看Github代码,我没有经验足以解开它。

我之所以要问的是我喜欢RidgeClassifier的结果 - 它对我的问题有了更好的说明。但在我使用之前,我想至少知道它来自哪里。

谢谢你的帮助。

python machine-learning scikit-learn logistic-regression
1个回答
6
投票

RidgeClassifier()相比,LogisticRegression()的工作方式不同,罚款为l2。 RidgeClassifier()的损失函数不是交叉熵。

RidgeClassifier()使用Ridge()回归模型以下列方式创建分类器:

让我们考虑二进制分类以简化。

  1. 生成一个目标变量,其值为+1-1,基于其所属的类。
  2. 构建一个Ridge()回归模型(这是一个回归模型)来预测我们的目标变量。损失函数是RMSE + l2 penality
  3. 如果Ridge()回归的预测值(基于decision_function()函数计算)大于0,则预测为正类别否定类别。

对于多类分类:

  1. 使用LabelBinarizer()创建一个多输出回归场景,然后训练独立的Ridge()回归模型,每个类一个(One-Vs-Rest建模)。
  2. 从每个类的Ridge()回归模型(每个类的实数)获得预测,然后使用argmax来预测类。
© www.soinside.com 2019 - 2024. All rights reserved.