python - sklearn“RidgeClassifier”有什么作用?
问题描述
我试图了解RidgeClassifier和LogisticRegression之间的区别sklearn.linear_model
。我在文档中找不到它。
我想我很清楚 LogisticRegression 的作用。它计算系数和截距以最小化half of sum of squares of the coefficients + C times the binary cross-entropy loss
,其中 C 是正则化参数。我从头开始检查了一个幼稚的实现,结果一致。
RidgeClassifier 的结果不同,我不知道如何计算系数和截距?查看 Github 代码,我没有足够的经验来解开它。
我问的原因是我喜欢 RidgeClassifier 结果——它更好地概括了我的问题。但在我使用它之前,我想至少知道它是从哪里来的。
感谢您提供可能的帮助。
解决方案
RidgeClassifier()
LogisticRegression()
与 l2 惩罚相比,工作方式不同。的损失函数RidgeClassifier()
不是交叉熵。
RidgeClassifier()
通过以下方式使用Ridge()
回归模型来创建分类器:
为简单起见,让我们考虑二进制分类。
将目标变量转换为
+1
或-1
基于它所属的类。建立一个
Ridge()
模型(这是一个回归模型)来预测我们的目标变量。损失函数为MSE + l2 penalty
如果
Ridge()
回归的预测值(根据decision_function()
函数计算)大于0,则预测为正类,否则为负类。
对于多类分类:
用于
LabelBinarizer()
创建多输出回归场景,然后训练独立Ridge()
的回归模型,每个类一个(One-Vs-Rest 建模)。从每个类的
Ridge()
回归模型(每个类的实数)中获取预测,然后用于argmax
预测该类。
推荐阅读
- c++ - 复合辛普森规则代码不断得到错误的输出?
- reactjs - 如何在父级的 setInterval 中调用子级中的函数?
- sql - 基于 SQL 上面的行计算的列值
- android - 如何从 SeekBar kotlin 获取输入
- c# - Windows Form应用程序关闭或停止响应时如何自动关闭selenium chromedriver?
- authentication - 使用 URL 验证和访问 APEX 应用程序页面
- python - 如何在python中读取多个大的.jsonl文件
- bash - Bash 配置文件语法错误:文件意外结束
- android - 在创建颤振项目时,我无法启动我的项目
- ms-access - Microsoft Access:无法添加记录;“计算机”的连接键不在记录集中