【问题标题】:Python - Classification Lasso sklearn - How to predict classesPython - 分类套索 sklearn - 如何预测类
【发布时间】: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 模型。

标签: python scikit-learn classification


【解决方案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 正则化。我的滑倒。谢谢你指出。答案已更正。
    猜你喜欢
    • 2022-06-28
    • 1970-01-01
    • 2014-02-01
    • 2020-01-18
    • 2021-07-19
    • 1970-01-01
    • 2016-03-15
    • 2018-09-12
    • 2015-09-16
    相关资源
    最近更新 更多