scikit Learn: ошибка размера данных с пандами и SciKit

avatar
adrilef
8 апреля 2018 в 00:42
44
0
2

Я изучаю машинное обучение с помощью научного набора. Я использую pandas для импорта данных из двух файлов CSV.

Мой вектор X имеет 2 столбца и 100 000 строк. Мой вектор Y имеет 1 столбец и 100 000 строк.

Вот мой код:

Returns 2 arrays X et Y
def extract_data(data_set_1, data_set_2):

data_set_1 = pd.read_csv(data_set_1, header = None);
data_set_2 = pd.read_csv(data_set_2, header = None);

X = np.asarray(data_set_1)
Y = np.asarray(data_set_2)
return X,Y

X,Y = extract_data('../data_sets/data_set_4_X.csv', '../data_sets/data_set_4_Y.csv')

y = []
for i in range(len(Y)):
    y.append(Y[i][0])

Y = np.array(y)

clf = svm.SVC(kernel='rbf')
clf.kernel

clf.fit(X, Y)
r = clf.predict(X[0])

Итак, мой вектор X выглядит так:

array([[ 2.0968 ,  1.0738 ],
       [ 2.5673 , -0.89561],
       [ 0.1616 ,  0.72648],
       ...  
       [-2.4634 ,  1.6515 ],
       [ 1.8333 , -2.6854 ],
       [ 0.63995, -1.6925 ]])

И мой вектор Y:

array([ 1,  1, -1, ...   1,  1,  1], dtype=int64)

При запуске кода возникает следующая ошибка:

ValueError: Expected 2D array, got 1D array instead:
array=[ 2.0968  1.0738].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

[ 2.0968 1.0738] — это первая строка моего вектора X, я не могу понять, почему у меня эта ошибка.

Спасибо!

Источник
DYZ
8 апреля 2018 в 00:45
3

r = clf.predict(X[0]) должно быть либо r = clf.predict(X), либо r = clf.predict([X[0]]). clf.predict принимает двумерный массив.

Ответы (0)