Python 我一直得到这样的错误:“引用;ValueError:应为2D数组,但改为1D数组:";对于线性回归过程

Python 我一直得到这样的错误:“引用;ValueError:应为2D数组,但改为1D数组:";对于线性回归过程,python,machine-learning,linear-regression,Python,Machine Learning,Linear Regression,我有两个阵列,它们是真应力和真应变。我想对他们的log10版本做一个线性回归,但我一直得到所说的错误 from sklearn.linear_model import LinearRegression log_tStress = np.log10(true_stress) log_tStrain = np.log10(true_strain) regressor = LinearRegression() regressor.fit(log_tStrain, log_tStress) predi

我有两个阵列,它们是真应力和真应变。我想对他们的log10版本做一个线性回归,但我一直得到所说的错误

from sklearn.linear_model import LinearRegression
log_tStress = np.log10(true_stress)
log_tStrain = np.log10(true_strain)

regressor = LinearRegression()
regressor.fit(log_tStrain, log_tStress)
predict = regressor.predict(log_tStrain)

ValueError:预期为2D数组,但实际为1D数组:

好吧,它就是它所说的。您正在输入一个1D数组,而您需要一个2D数组

log10为您提供一个数组,其中每个值都是您馈送的内容的日志(如果为负,则返回Nan检查),其形状与您馈送的内容相同

你不太清楚你想预测什么,所以我假设你想在这样的矩阵上做线性再网格[log_tStress,log_tStrain],这样你就可以预测log_tStrain上的log_tStress(反之亦然)

我不能帮你很多,因为我不知道日志是什么或者它看起来是什么样子。我可以假设log_tStrain是您的培训数据。如果你想单独预测训练数据,你必须给它的矩阵另一个维度(与训练数据相关的东西),但是如果你没有关于该索引的任何东西,那么也可能会起作用

.Fit需要以下参数:

X-训练数据[nr_样本,nr_特征]

y-所述目标的阵列形状


在这里,我将链接文档,以便您可以查看:

查看错误跟踪,查看您在哪个数组上出错,然后使用数组对其进行整形。整形[第一维度值,第二维度值]如果您粘贴错误跟踪,我会更具体。

您的
真实应力
真实应变
阵列的形状是什么?可能的重复项将在答案上展开。如果您只有一个功能,您可以将
log\u tStress
转换为2D数组,如下所示:
log\u tStress[:,None]
非常感谢您的回答。两个向量都是行向量。当我把一个向量转换成一个列向量时,它起作用了。是的,当我把一个向量重塑成一个列向量时,它起作用了;log_tStrain=log_tStrain.重塑(len(log_tStrain),1)非常感谢。