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】:使用LogisticRegression
和penalty='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 - 如何预测类的主要内容,如果未能解决你的问题,请参考以下文章