【问题标题】:Python Sklearn Linear Regression Value ErrorPython Sklearn 线性回归值错误
【发布时间】:2017-10-13 18:31:47
【问题描述】:

我一直在尝试使用 sklearn 进行线性回归。有时我得到一个值错误,有时它工作正常。我不确定使用哪种方法。 错误信息如下:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/linear_model/base.py", line 512, in fit
    y_numeric=True, multi_output=True)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/validation.py", line 531, in check_X_y
    check_consistent_length(X, y)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/validation.py", line 181, in check_consistent_length
    " samples: %r" % [int(l) for l in lengths])
ValueError: Found input variables with inconsistent numbers of samples: [1, 200]

代码是这样的:

import pandas as pd
from sklearn.linear_model import LinearRegression
data = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0);
x = data['TV']
y = data['Sales']
lm = LinearRegression()
lm.fit(x,y)

请帮帮我。我是一名学生,正在努力学习机器学习基础知识。

【问题讨论】:

    标签: python pandas machine-learning linear-regression sklearn-pandas


    【解决方案1】:

    将您的 X 作为数据框而不是系列传递,您可以使用 [[]] “双括号”或 to_frame() 来表示单个功能:

    import pandas as pd
    from sklearn.linear_model import LinearRegression
    data = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0);
    x = data[['TV']]
    

    或者

    x = data['TV'].to_frame()
    y = data['Sales']
    lm = LinearRegression()
    lm.fit(x,y)
    

    输出:

    LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
    

    【讨论】:

    • 谢谢!效果很好
    【解决方案2】:

    lm.fit 期望 X 是一个

    numpy 数组或形状为 [n_samples,n_features] 的稀疏矩阵

    你的x 有形状:

    In [6]: x.shape
    Out[6]: (200,)
    

    只需使用:

    lm.fit(x.reshape(-1,1) ,y)
    

    【讨论】:

    • 谢谢!效果很好
    猜你喜欢
    • 2021-01-12
    • 2018-05-16
    • 2020-07-08
    • 2018-06-25
    • 1970-01-01
    • 2021-08-01
    • 2021-02-20
    • 2023-03-30
    • 2021-06-19
    相关资源
    最近更新 更多