sklearn“ RidgeClassifier”是做什么的?

时间:2018-12-24 09:41:17

标签: python machine-learning scikit-learn logistic-regression

我正在尝试了解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的结果-它使我的问题更全面。但是在我使用它之前,我至少想知道它来自哪里。

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

RidgeClassifier() 相比,

LogisticRegression() 的工作方式有所不同,但罚款为2。 RidgeClassifier()的损失函数不是交叉熵。

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

为了简单起见,让我们考虑使用二进制分类。

  1. 根据每个记录所属的类,将目标变量值生成为+1-1

  2. 建立一个Ridge()回归模型以预测实际值。损失函数为RMSE + l2 penality

  3. 如果预测值(基于decision_function()函数计算)大于0,则将输出类别预测为正,否则为负。

对于多类别分类:

  1. 使用label binarizer()创建多输出回归,每个类一次(One-Vs-Rest建模)并训练Ridge()回归模型。

  2. 从每个类别的Ridge()回归模型(每个类别的真实数字)中获取预测,然后使用argmax来预测该类别。