我尝试构建一个非常简单的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
我现在的问题是,我不知道如何实现上述问题的代码,以便我也可以看到哪些是最重要的功能。
如果你能告诉我,如果我的简单版本甚至可能,我将不胜感激?如果是的话,任何关于如何做的窍门都会很棒。
答案 0 :(得分:0)
从所有特征集中,必须选择产生矢量范数平方最小值的变量集,作为
的高重要性变量。