Python ValueError:找到样本数不一致的输入变量:[126004200]

Python ValueError:找到样本数不一致的输入变量:[126004200],python,scikit-learn,svm,Python,Scikit Learn,Svm,在这段代码中,我正在进行时间序列分割,然后使用scikit learn创建用于预测的SVR模型。我的代码是: from sklearn import preprocessing as pre from sklearn.preprocessing import StandardScaler from sklearn.model_selection import TimeSeriesSplit from sklearn import svm from sklearn.preprocessing i

在这段代码中,我正在进行时间序列分割,然后使用scikit learn创建用于预测的SVR模型。我的代码是:

from sklearn import preprocessing as pre 
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import TimeSeriesSplit
from sklearn import svm
from sklearn.preprocessing import MinMaxScaler



X_feature = wind_speed

X_feature = X_feature.reshape(-1, 1)## Reshaping array to be 1D from 2D

y_label = Power
y_label = y_label.reshape(-1,1)

timeseries_split = TimeSeriesSplit(n_splits=3)
for train1, test1 in timeseries_split.split(X_feature):

    print("Training data:",train1, "Testing data test:", test1)
train1 = train1.reshape(-1,1)## Reshaping array to be 1D fron 2D
test1 = test1.reshape(-1,1)

timeseries_split = TimeSeriesSplit(n_splits=3)
for train, test in timeseries_split.split(y_label):
    print("Training data_1:",train, "Testing data test_1:", test)

scaler =pre.MinMaxScaler(feature_range=(0,1)).fit(train1)


scaled_wind_speed_train = scaler.transform(train1)
print("scaler", scaled_wind_speed_train)
scaled_wind_speed_test = scaler.transform(test1)

SVR_model = svm.SVR(kernel='rbf',C=100,gamma=.001).fit(scaled_wind_speed_train,train)

y_prediction = SVR_model.predict(y_label)


    print (y_prediction)
    SVR_model.score(scaled_wind_speed_test,train)
我收到的错误是:

Training data: [   0    1    2 ... 4197 4198 4199] Testing data test: [4200 4201 4202 ... 8397 8398 8399]
Training data: [   0    1    2 ... 8397 8398 8399] Testing data test: [ 8400  8401  8402 ... 12597 12598 12599]
Training data: [    0     1     2 ... 12597 12598 12599] Testing data test: [12600 12601 12602 ... 16797 16798 16799]
Training data_1: [   0    1    2 ... 4197 4198 4199] Testing data test_1: [4200 4201 4202 ... 8397 8398 8399]
Training data_1: [   0    1    2 ... 8397 8398 8399] Testing data test_1: [ 8400  8401  8402 ... 12597 12598 12599]
Training data_1: [    0     1     2 ... 12597 12598 12599] Testing data test_1: [12600 12601 12602 ... 16797 16798 16799]
scaler [[0.00000000e+00]
 [7.93713787e-05]
 [1.58742757e-04]
 ...
 [9.99841257e-01]
 [9.99920629e-01]
 [1.00000000e+00]]
/home/nbuser/anaconda3_501/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler.
  warnings.warn(msg, DataConversionWarning)
[6153.41834275 6006.33852041 5997.57462806 ... 6569.44075144 6393.55696288
 6112.57831243]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-53-925646f8c16a> in <module>()
     43 
     44 print (y_prediction)
---> 45 SVR_model.score(scaled_wind_speed_test,train)
     46 
     47 

~/anaconda3_501/lib/python3.6/site-packages/sklearn/base.py in score(self, X, y, sample_weight)
    385         from .metrics import r2_score
    386         return r2_score(y, self.predict(X), sample_weight=sample_weight,
--> 387                         multioutput='variance_weighted')
    388 
    389 

~/anaconda3_501/lib/python3.6/site-packages/sklearn/metrics/regression.py in r2_score(y_true, y_pred, sample_weight, multioutput)
    528     """
    529     y_type, y_true, y_pred, multioutput = _check_reg_targets(
--> 530         y_true, y_pred, multioutput)
    531 
    532     if sample_weight is not None:

~/anaconda3_501/lib/python3.6/site-packages/sklearn/metrics/regression.py in _check_reg_targets(y_true, y_pred, multioutput)
     73 
     74     """
---> 75     check_consistent_length(y_true, y_pred)
     76     y_true = check_array(y_true, ensure_2d=False)
     77     y_pred = check_array(y_pred, ensure_2d=False)

~/anaconda3_501/lib/python3.6/site-packages/sklearn/utils/validation.py in check_consistent_length(*arrays)
    202     if len(uniques) > 1:
    203         raise ValueError("Found input variables with inconsistent numbers of"
--> 204                          " samples: %r" % [int(l) for l in lengths])
    205 
    206 

ValueError: Found input variables with inconsistent numbers of samples: [12600, 4200]
培训数据:[0 1 2…4197 4198 4199]测试数据测试:[4200 4201 4202…8397 8398 8399]
培训数据:[0 1 2…8397 8398 8399]测试数据测试:[8400 8401 8402…12597 12598 12599]
培训数据:[0 1 2…12597 12598 12599]测试数据测试:[12600 12601 12602…16797 16798 16799]
培训数据_1:[0 1 2…4197 4198 4199]测试数据测试_1:[4200 4201 4202…8397 8398 8399]
培训数据_1:[0 1 2…8397 8398 8399]测试数据测试_1:[8400 8401 8402…12597 12598 12599]
培训数据_1:[0 1 2…12597 12598 12599]测试数据测试_1:[12600 12601 12602…16797 16798 16799]
缩放器[[0.00000000 E+00]
[7.93713787e-05]
[1.58742757e-04]
...
[9.99841257e-01]
[9.99920629e-01]
[1.00000000 E+00]]
/home/nbuser/anaconda3_501/lib/python3.6/site packages/sklearn/utils/validation.py:475:DataConversionWarning:MinMaxScaler将输入数据类型为int64的数据转换为float64。
警告。警告(消息,数据转换警告)
[6153.41834275 6006.33852041 5997.57462806 ... 6569.44075144 6393.55696288
6112.57831243]
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
43
44打印(y_预测)
--->45 SVR\U模型评分(按比例的风速测试,列车)
46
47
得分中的~/anaconda3_501/lib/python3.6/site-packages/sklearn/base.py(自我、X、y、样本重量)
385来自。指标导入r2_分数
386返回r2评分(y,自我预测(X),样本权重=样本权重,
-->387多输出(方差加权)
388
389
r2_分数中的~/anaconda3_501/lib/python3.6/site-packages/sklearn/metrics/regression.py(y_真、y_pred、样本重量、多重输出)
528     """
529 y_type,y_true,y_pred,多输出=\u check\u reg\u targets(
-->530 y_true,y_pred,多输出)
531
532如果样品重量不是无:
~/anaconda3_501/lib/python3.6/site-packages/sklearn/metrics/regression.py in_check_reg_目标(y_真、y_pred、多重输出)
73
74     """
--->75检查长度是否一致(y_true,y_pred)
76 y_真=检查数组(y_真,确保2d=假)
77 y_pred=检查_数组(y_pred,确保_2d=False)
检查中的~/anaconda3\u 501/lib/python3.6/site-packages/sklearn/utils/validation.py一致长度(*数组)
202如果len(uniques)>1:
203 raise VALUETERROR(“找到的输入变量的数量不一致”)
-->204“样本:%r”%[int(l)表示长度为l的样本])
205
206
ValueError:找到样本数不一致的输入变量:[126004200]

我相信我的错误在:
SVR\u model.score(按比例的风速测试,火车)
但我不知道如何解决这个问题。我已将缩进编辑为原稿,但不确定是否有任何无意的缩进会导致错误

假设我正确理解了您的代码,那么下面这行应该可以修复错误

SVR_model.score(scaled_wind_speed_test,test)

假设我正确理解了您的代码,下面这行应该可以修复错误

SVR_model.score(scaled_wind_speed_test,test)

你好你能缩进问题中的代码使它更可读吗?此外,显然还有一些新词缺失,添加它们将有助于人们理解和回答。此外,是否存在问题线路
SVR\u模型得分(按比例的风速测试,列车)
?这应该可以从错误消息中的详细信息中读取:指定从何处获得该错误也将有助于人们回答您@MohammedKashif Hi,我已经添加了完整的错误trace@DavideFiocco我不确定哪些新行可能会丢失?我没有更新这个,因为我不确定?如果可以的话,我可以添加这些?您在问题中发布的缩进是否正确,我的意思是它与我们系统上的缩进完全相同?@Asif.Khan您确定形状兼容吗?您可以使用
np.shape(按比例的风速测试)
进行检查,对于
列车
也是如此。一般来说,
score
需要一个样本X和真值y的数组(参见文档),因此您可以使用它来比较同一组中的风力和功率,即不在
score
的参数中混合训练和测试。嗨!你能缩进问题中的代码使它更可读吗?此外,显然还有一些新词缺失,添加它们将有助于人们理解和回答。此外,是否存在问题线路
SVR\u模型得分(按比例的风速测试,列车)
?这应该可以从错误消息中的详细信息中读取:指定从何处获得该错误也将有助于人们回答您@MohammedKashif Hi,我已经添加了完整的错误trace@DavideFiocco我不确定哪些新行可能会丢失?我没有更新这个,因为我不确定?如果可以的话,我可以添加这些?您在问题中发布的缩进是否正确,我的意思是它与我们系统上的缩进完全相同?@Asif.Khan您确定形状兼容吗?您可以使用
np.shape(按比例的风速测试)
进行检查,对于
列车
也是如此。一般来说,
score
需要一个样本X和真值y的数组(见文档),因此您可以使用它在同一组中比较风力和功率,即在
score
的参数中不混合训练和测试。非常感谢!它给了我一个输出!我还想问,我怎样才能在一张图上同时绘制y_预测和y_标签?非常感谢!它给了我一个输出!我还想问,我怎样才能在一张图上同时绘制y_预测和y_标签?