为什么 sklearn LinearRegression 模型不接受一维数据?
why sklearn LinearRegression model does not accept one dimensional data?
我正在尝试学习线性回归的基础知识。
我尝试用最简单的数据为入门者构建最简单的模型。
我拥有的数据:
## Data (Apple stock prices)
apple = np.array([155, 160, 165])
days = np.array([1, 2, 3])
X 是天数,y 是苹果股票价格。
我尝试用单线构建模型:
model = LinearRegression().fit(X=days,y=apple)
然后我收到错误消息,该模型需要 2d 数据作为输入。
但为什么” ? X 和 y(在本例中为苹果的天数和股票价格)都是一维的。为什么要转换成二维数组?
输入是一个大小为 (nxm) 的数组,其中 m 是 x 变量的数量。
在您的情况下 m=1,因此您需要一个 (3x1) 数组。您当前的输入是 (3,)。
尝试:
days = np.array([1, 2, 3]).reshape(-1,1)
创建模型以同时支持一维和二维数据,如果输入形状为一维,则不支持二维,但当输入形状为二维时,只需重塑一维即可同时支持二维和一维数组到二维数组。这就是构建模型以接受二维数组以提高灵活性的原因。因此,只需重塑您的数据,您的模型就会正常运行。试试这个:
apple = np.array([155, 160, 165]).reshape(-1,1)
days = np.array([1, 2, 3]).reshape(-1,1)
model = LinearRegression().fit(X=days,y=apple)
我正在尝试学习线性回归的基础知识。
我尝试用最简单的数据为入门者构建最简单的模型。
我拥有的数据:
## Data (Apple stock prices)
apple = np.array([155, 160, 165])
days = np.array([1, 2, 3])
X 是天数,y 是苹果股票价格。
我尝试用单线构建模型:
model = LinearRegression().fit(X=days,y=apple)
然后我收到错误消息,该模型需要 2d 数据作为输入。 但为什么” ? X 和 y(在本例中为苹果的天数和股票价格)都是一维的。为什么要转换成二维数组?
输入是一个大小为 (nxm) 的数组,其中 m 是 x 变量的数量。 在您的情况下 m=1,因此您需要一个 (3x1) 数组。您当前的输入是 (3,)。 尝试:
days = np.array([1, 2, 3]).reshape(-1,1)
创建模型以同时支持一维和二维数据,如果输入形状为一维,则不支持二维,但当输入形状为二维时,只需重塑一维即可同时支持二维和一维数组到二维数组。这就是构建模型以接受二维数组以提高灵活性的原因。因此,只需重塑您的数据,您的模型就会正常运行。试试这个:
apple = np.array([155, 160, 165]).reshape(-1,1)
days = np.array([1, 2, 3]).reshape(-1,1)
model = LinearRegression().fit(X=days,y=apple)