Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中sklearn的线性回归中,出现了无法解释的维度不匹配错误_Python_Arrays_Scikit Learn - Fatal编程技术网

在Python中sklearn的线性回归中,出现了无法解释的维度不匹配错误

在Python中sklearn的线性回归中,出现了无法解释的维度不匹配错误,python,arrays,scikit-learn,Python,Arrays,Scikit Learn,在sklearn中,我想从一维输入训练线性模型。但是,当我将[100 x 1]输入向量和[100 x 1]输出向量输入到linear_model.LinearRegression()的拟合函数中时,我得到了错误“ValueError:找到了样本数不一致的数组:[1 100]”。它可以与[7791 x 39]维度的训练输入和[7791 x 1]训练输出配合使用 starting regression training (7791, 39) (7791,) done with regression

在sklearn中,我想从一维输入训练线性模型。但是,当我将[100 x 1]输入向量和[100 x 1]输出向量输入到linear_model.LinearRegression()的拟合函数中时,我得到了错误
“ValueError:找到了样本数不一致的数组:[1 100]”
。它可以与[7791 x 39]维度的训练输入和[7791 x 1]训练输出配合使用

starting regression training
(7791, 39)
(7791,)
done with regression training; starting probabilities converter training
(100,)
(100,)
Traceback (most recent call last):
  File "makePickles.py", line 19, in <module>
    train_probabilities_converter(scoresToProbabilities[:,1], scoresToProbabilities[:,2])
  File "trainProbabilitiesConverter.py", line 18, in train_probabilities_converter
    regr.fit(rawScores, empiricalProbability)
  File "//anaconda/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 376, in fit
    y_numeric=True, multi_output=True)
  File "//anaconda/lib/python2.7/site-packages/sklearn/utils/validation.py", line 454, in check_X_y
    check_consistent_length(X, y)
  File "//anaconda/lib/python2.7/site-packages/sklearn/utils/validation.py", line 174, in check_consistent_length
    "%s" % str(uniques))
ValueError: Found arrays with inconsistent numbers of samples: [  1 100]
开始回归训练
(7791, 39)
(7791,)
进行回归训练;起动概率变换器训练
(100,)
(100,)
回溯(最近一次呼叫最后一次):
文件“makePickles.py”,第19行,在
列车概率转换器(得分概率[:,1],得分概率[:,2])
列车概率转换器第18行“trainProbabilitiesConverter.py”文件
重新拟合(原始分数、经验概率)
文件“//anaconda/lib/python2.7/site packages/sklearn/linear_model/base.py”,第376行,适合
y_数值=真,多输出=真)
文件“//anaconda/lib/python2.7/site packages/sklearn/utils/validation.py”,第454行,检查
检查长度(X,y)是否一致
文件“//anaconda/lib/python2.7/site packages/sklearn/utils/validation.py”,第174行,检查长度是否一致
%s“%str(唯一性))
ValueError:找到样本数不一致的数组:[1 100]

您是否尝试过将输入数据(100,1)替换为(100,1)?我知道sklearn有时会有问题(因为它可能是维度1中的100个观察值,或者维度100中的1个观察值)

您可以执行
X_test=X_test[:,None]
添加新轴
np.newaxis
也可以使用,是一个较长但更明确的名称。顺便说一下,它只是
None
的别名(它们指的是同一个对象):


欢迎来到StackOverflow。请在此阅读如何正确格式化您发布的代码:您应该发布用于准备数据的实际代码,并将其提供给线性回归。这将有助于人们准确定位问题。
>>> import numpy as np
>>> np.newaxis is None
True