Python - 分类套索 sklearn - 如何预测类

Posted

技术标签:

【中文标题】Python - 分类套索 sklearn - 如何预测类【英文标题】:Python - Classification Lasso sklearn - How to predict classes 【发布时间】:2016-08-10 09:17:03 【问题描述】:

如下示例: http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html

from sklearn import linear_model
clf = linear_model.Lasso(alpha=0.1)
clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])

clf.predict(np.array([0,0]).reshape(1,-1))
Out[13]: array([ 0.15])

我可以让预测成为分类而不是回归。换句话说,当我给它一个输入时,我想要一个分类的输出。

【问题讨论】:

你不能在回归后添加一些“if”语句吗?大多数分类器都基于将空间划分为子空间以便对它们进行标记。基本上,它只是在将您的数据映射到所需空间(通常是允许线性分类的空间)之后添加“if”语句。 我真的不确定。我想可能是四舍五入? 您可以使用带有 'l1' 惩罚的 sklearn.linear_model.LogisticRegression 模型。 【参考方案1】:

您可以使用 Lasso 对预测结果进行降序排序,所以前 50% 为 1,最后一个为 0。

【讨论】:

【参考方案2】:

使用LogisticRegressionpenalty='l1'。 本质上,它是 Lasso 回归,但具有将类别分数转换为“获胜”类别输出标签的附加层。 正则化强度由C 定义,它是alpha 的INVERSE,由Lasso 使用。 Scikit-learn 对线性模型有一个非常好的简要概述:https://scikit-learn.org/stable/modules/linear_model.html

【讨论】:

我相信penalty='l2' 不会导致 Lasso 回归。这是岭回归/分类。一个人想指定penalty='l1' 是的,@diadochos,你是对的 - LASSO(最小绝对收缩和选择运算符)使用权重向量的'l1' 范数。 'l2' 用于 Ridge/Tikhonov 正则化。我的滑倒。谢谢你指出。答案已更正。

以上是关于Python - 分类套索 sklearn - 如何预测类的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中调整 ElasticNet 参数 sklearn 包

[机器学习python实践]Sklearn实现集成

Python数模笔记-Sklearn支持向量机

Python数模笔记-Sklearn支持向量机

运行套索回归方法时出错

Sklearn:如何获得对训练数据进行分类的均方误差