Я изучаю машинное обучение с помощью научного набора. Я использую 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, я не могу понять, почему у меня эта ошибка.
Спасибо!
r = clf.predict(X[0])
должно быть либоr = clf.predict(X)
, либоr = clf.predict([X[0]])
.clf.predict
принимает двумерный массив.