ValueError: неправильная форма ввода при оценке производительности с использованием 1 функции с 3 столбцами в качестве цели в наборе данных - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь внедрить SVR в наборе данных linnerud, где я хочу использовать только одну функцию из набора данных, т. Е. Chinup и целевые данные, которые должны рассматриваться со всеми столбцами. Но когда я пытаюсь реализовать приведенный ниже код, он дает мне valueError. Если бы кто-то мог помочь мне определить и исправить ошибку, это было бы заметно. Спасибо

Вот что я попробовал ниже:

from sklearn import datasets
from sklearn import svm
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split

import numpy as np


def loadDataset():
    ds = datasets.load_linnerud()
    X,y = ds.data, ds.target
    return X,y

def svmReg(data_list, y_list):
    data_list=data_list[:, np.newaxis, 0] #use chinup as feature
    X_train, X_test, y_train, y_test=train_test_split(data_list, y_list, test_size=0.30, random_state=42)
    model=svm.SVR()
    model.fit(X_train,y_train)
    y_pred = model.predict(X_test)
    print("SVM Mean squared error: %.2f"
          % mean_squared_error(y_test, y_pred))
    mse = mean_squared_error(y_test, y_pred)
    return mse

data_list,y_list = loadDataset()
#print(data_list)
mse = svmReg(data_list, y_list)


Я хочу оценить производительность, поэтому я вычисляю среднеквадратическую ошибку. Пожалуйста, исправьте меня, если это неправильный способ оценки производительности.

См. Ошибку, которую я получаю:

enter image description here

...