【问题标题】:Pandas and scikit-learn - train_test_split dimensions of X, yPandas 和 scikit-learn - x, y 的 train_test_split 维度
【发布时间】:2018-09-30 13:01:27
【问题描述】:

我有一个带有以下信息的熊猫数据框:

RangeIndex:920 个条目,0 到 919 个数据列(共 41 列)

X = df[df.columns[:-1]]
Y = df['my_Target']   
train_X,train_y,test_X, test_y =train_test_split(X,Y,test_size=0.33,shuffle = True, random_state=45)

最后一列是目标,其余的是数据。 形状如下:

print(train_X.shape,train_y.shape,test_X.shape, test_y.shape)

(616, 40) (304, 40) (616,) (304,)

但是当我训练模型时:

model=svm.SVC(kernel='linear',C=0.1,gamma=0.1)
model.fit(train_X,train_Y)
prediction2=model.predict(test_X)
print('Accuracy for linear SVM is',metrics.accuracy_score(prediction2,test_Y))

它给出了以下错误:

model.fit(train_X,train_Y)

ValueError:发现输入变量的数量不一致 样本:[616, 2]

有人知道发生了什么吗?

【问题讨论】:

    标签: python pandas scikit-learn svm


    【解决方案1】:

    您的变量顺序错误:

    X_train, X_test, y_train, y_test = train_test_split(
    ...     X, y, test_size=0.33, random_state=42)
    

    Per docs
    X_train 然后 X_test 然后 y_train 然后 y_test

    你有:

    train_X,train_y,test_X, test_y

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 2020-07-14
      • 2015-07-14
      • 2018-05-18
      • 2023-03-06
      • 2016-04-22
      • 1970-01-01
      相关资源
      最近更新 更多