2015-08-21 66 views
0

我有以下數據框:如何在Python中使用scikit來訓練SVM?

  A B 
40  25 95 
40  25 171 
40  25 109 
... 

我想運行在這個SVM分類。我想預測AB。下面是我做了什麼:

我創建了火車/試臺:

a_train, a_test, b_train, b_test = train_test_split(df.A,df.B, test_size=0.33) 

到那麼(嘗試)訓練SVM,就像這樣:

classifier = svm.SVC(kernel='linear') 
y_pred = classifier.fit(a_train, b_train).predict(b_test) 

我也得到以下錯誤。

ValueError: X and y have incompatible shapes. 
X has 1 samples, but y has 27766. 

任何人都可以幫助我調試我做錯了什麼?

回答

2

你的特徵向量df.A是一維的,但scikit總是需要用於X的二維矩陣,矩陣改型嘗試:

a_train, a_test, b_train, b_test = train_test_split(df.A.reshape(-1,1),df.B, test_size=0.33)