Python 使用数组重塑数据。如果数据具有单个特征或数组,则重塑(-1,1)。如果数据包含单个样本,则重塑(1,-1)

Python 使用数组重塑数据。如果数据具有单个特征或数组,则重塑(-1,1)。如果数据包含单个样本,则重塑(1,-1),python,scikit-learn,linear-regression,Python,Scikit Learn,Linear Regression,当我从我的数据中预测一个样本时,它给出了重塑误差,但我的模型有相等的行数,问题是什么,伙计们,发现了类似的问题,但不同的无法解释 import pandas as pd from sklearn.linear_model import LinearRegression import numpy as np x = np.array([2.0 , 2.4, 1.5, 3.5, 3.5, 3.5, 3.5, 3.7, 3.7]) y = np.array([196, 221, 136, 255, 2

当我从我的数据中预测一个样本时,它给出了重塑误差,但我的模型有相等的行数,问题是什么,伙计们,发现了类似的问题,但不同的无法解释

import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np
x = np.array([2.0 , 2.4, 1.5, 3.5, 3.5, 3.5, 3.5, 3.7, 3.7])
y = np.array([196, 221, 136, 255, 244, 230, 232, 255, 267])

lr = LinearRegression()
lr.fit(x,y)

print(lr.predict(2.4))
错误是

“如果它包含单个样本。”。格式(数组)) ValueError:应为2D数组,但改为标量数组: 数组=2.4。
使用数组重塑数据。如果数据具有单个特征或数组,则重塑(-1,1)。如果数据包含单个样本,则重塑(1,-1)。

应将X重塑为二维数组,而不是一维数组。拟合模型需要二维阵列<代码>即(n个样本,n个特征)


谢谢你,伙计。但重塑的作用是什么?为什么不使用它会导致错误。@razzOn2bull在拟合模型时,您的X需要是二维阵列。i、 e(n个样本,n个特征)。使用
时,重塑(1,-1)
会向数据添加一个维度。有关此问题的详细信息,请参见此问题(')。
x = np.array([2.0 , 2.4, 1.5, 3.5, 3.5, 3.5, 3.5, 3.7, 3.7])
y = np.array([196, 221, 136, 255, 244, 230, 232, 255, 267])

lr = LinearRegression()
lr.fit(x.reshape(-1, 1), y)

print(lr.predict([[2.4]]))