从非常简单的scikit-learn SVM分类器中获取最丰富的功能

时间:2016-08-23 07:38:08

标签: python scikit-learn svm

我尝试构建一个非常简单的SVM预测器,我会用我的基本python知识来理解它。由于我的代码与此question以及question看起来如此不同,我不知道如何在我的示例中找到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

我现在的问题是,我不知道如何实现上述问题的代码,以便我也可以看到哪些是最重要的功能。

如果你能告诉我,如果我的简单版本甚至可能,我将不胜感激?如果是的话,任何关于如何做的窍门都会很棒。

1 个答案:

答案 0 :(得分:0)

从所有特征集中,必须选择产生矢量范数平方最小值的变量集,作为

的高重要性变量。