【问题标题】:TypeError: an integer is required in sklearn Lasso model [closed]TypeError:sklearn Lasso模型中需要一个整数[关闭]
【发布时间】:2019-12-13 16:49:13
【问题描述】:

我真的不知道我的代码出了什么问题。我的数据 X 和 y 看起来像这样。

from sklearn.linear_model import Lasso
X = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

y = [11775,  3132,  8173,  5911]
lambda_val = 1.0023052380778996

lr = Lasso(alpha = lambda_val, fit_intercept=True, normalize=False, precompute=False,copy_X=True, max_iter=None, tol=0.0001, warm_start=False, positive=False,random_state=0, selection='cyclic')

lr.fit(X, y)

收到错误消息 TypeError:需要一个整数

【问题讨论】:

  • 错误信息肯定比这更有用吗?
  • 拿出max_iter=None,你就可以走了
  • 谢谢,克里斯小而愚蠢的错误 :)
  • @AKash_KUmar 如果问题解决,请将问题标记为“已关闭”

标签: python scikit-learn lasso-regression


【解决方案1】:

对于Lasso 模型,您需要指定输入参数max_iter。这需要是一个整数。

默认值为max_iter=1000,基于documentation

就用这个吧:

lambda_val = 1.0023052380778996
max_iter = 10 # or whatever integer you want

lr = Lasso(alpha = lambda_val, fit_intercept=True, normalize=False, precompute=False,copy_X=True, max_iter=max_iter, tol=0.0001, warm_start=False, positive=False,random_state=0, selection='cyclic')

lr.fit(X, y)

【讨论】:

    猜你喜欢
    • 2013-02-16
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多