【发布时间】:2016-12-29 22:11:39
【问题描述】:
我尝试构建一个非常简单的 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
我现在的问题是,我不知道如何实现上述问题中的代码,以便我也可以看到哪些是最重要的功能。
如果您能告诉我,我的简单版本是否可以实现,我将不胜感激?如果是的话,任何关于如何做到这一点的提示都会很棒。
【问题讨论】:
标签: python scikit-learn svm