0
我試圖構建一個非常簡單的SVM預測器,我可以通過基本的Python知識來理解它。由於我的代碼與這個question以及這個question看起來有很大的不同,我不知道如何在我的示例中找到SVM預測的最重要特徵。從非常簡單的scikit-learn SVM分類器中獲取最豐富的功能
我有一個包含功能和類(狀態)下面 '樣本':
A B C D E F status
1 5 2 5 1 3 1
1 2 3 2 2 1 0
3 4 2 3 5 1 1
1 2 2 1 1 4 0
我保存的功能名稱爲 '特徵':
A B C D E F
特徵 'X':
1 5 2 5 1 3
1 2 3 2 2 1
3 4 2 3 5 1
1 2 2 1 1 4
和狀態 'Y':
1
0
1
0
然後,我從樣本中構建X和y陣列,對一半樣本進行列車&測試並計算正確的預測值。
import pandas as pd
import numpy as np
from sklearn import svm
X = np.array(sample[features].values)
X = preprocessing.scale(X)
X = np.array(X)
y = sample['status'].values.tolist()
y = np.array(y)
test_size = int(X.shape[0]/2)
clf = svm.SVC(kernel="linear", C= 1)
clf.fit(X[:-test_size],y[:-test_size])
correct_count = 0
for x in range(1, test_size+1):
if clf.predict(X[-x].reshape(-1, len(features)))[0] == y[-x]:
correct_count += 1
accuracy = (float(correct_count)/test_size) * 100.00
我的問題是,現在,我不知道,我怎麼會從上面,這樣我也能看到的問題,哪些是最重要的功能實現代碼。
如果你能告訴我,我將不勝感激,如果這對我的簡單版本來說甚至是可能的?如果是的話,如何做到這一點的任何提示都會很棒。
不幸的是我真的不明白你的意思是我的問題是,我怎麼能找到這些變量? – Don
要構建訓練集X,可以針對每次迭代運行具有不同變量組合的SVM分類器迭代,並選擇產生最佳分類的X.產生最佳擬合的X,Y組合是您最佳的變量選擇。不幸的是,沒有直接的方法來確定只有SVM(或SVC) – raunakjhawar
ok的高重要性的變量集合,所以我需要做一個循環,使得以下內容:1.隨機選擇特徵2.運行svm 3。通過這些功能節省精確度。然後我循環很多次,試圖找到與最高精度相關的特徵?功能之間的相互作用是不是太高,我可以像這樣確定它? – Don