首页 > 解决方案 > sklearn“RidgeClassifier”有什么作用?

问题描述

我试图了解RidgeClassifierLogisticRegression之间的区别sklearn.linear_model。我在文档中找不到它。

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

RidgeClassifier 的结果不同,我不知道如何计算系数和截距?查看 Github 代码,我没有足够的经验来解开它。

我问的原因是我喜欢 RidgeClassifier 结果——它更好地概括了我的问题。但在我使用它之前,我想至少知道它是从哪里来的。

感谢您提供可能的帮助。

标签: pythonmachine-learningscikit-learnlogistic-regression

解决方案


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

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

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

  1. 将目标变量转换为+1-1基于它所属的类。

  2. 建立一个Ridge()模型(这是一个回归模型)来预测我们的目标变量。损失函数为MSE + l2 penalty

  3. 如果Ridge()回归的预测值(根据decision_function()函数计算)大于0,则预测为正类,否则为负类。

对于多类分类

  1. 用于LabelBinarizer()创建多输出回归场景,然后训练独立Ridge()的回归模型,每个类一个(One-Vs-Rest 建模)。

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


推荐阅读