Sklearn – 线性回归

我想使用Sklearn进行线性回归分析,以下是我的代码。我收到一个错误,提示“Expected 2D array, got 1D array instead”(期望是二维数组,但得到的是一维数组)

from sklearn.linear_model import LinearRegressionimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inline# 从csv文件导入数据并存储到变量中data = pd.read_csv("Advertising.csv")x = data.iloc[:,2]y = data.iloc[:,4]reg = LinearRegression(x,y)reg.fit (x,y)

错误:

ValueError: Expected 2D array, got 1D array instead:array=[ 37.8  39.3  45.9  41.3  10.8  48.9  32.8  19.6   2.1   2.6   5.8  24.  35.1   7.6  32.9  47.7  36.6  39.6  20.5  23.9  27.7   5.1  15.9  16.9

回答:

你的代码在LinearRegression的构造函数中出现了错误。

不要这样做:

reg = LinearRegression(x,y)

应该这样做:

reg = LinearRegression()

至于你提到的错误,是因为你的X只有单列。因此当前的形状是

(n_rows,)

所有scikit估计器都要求X的形状为:

(n_rows, n_columns)

所以,你需要这样重塑你的X:

X = X.reshape(-1,1)

然后将它们传递给fit()函数

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注