对于上面的肿瘤预测,可以有多个不同的直线用于分类。支持向量机会根据训练样本的分布,搜索所有可能的线性分类器中最佳的一个。这里使用支持向量机处理手写体数字图片。
加载手写体数据集
from sklearn.datasets import load_digits
digits = load_digits()
digits.data.shape
分割数据集
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.25, random_state=33)
对训练数据和测试数据标准化
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)
训练、预测
from sklearn.svm import LinearSVC
lsvc = LinearSVC()
lsvc.fit(X_train, y_train)
y_predict = lsvc.predict(X_test)
使用模型自带的评估函数进行准确性测评
print('The Accuracy of Linear SVC is', lsvc.score(X_test, y_test))
对预测结果做更详细的分析
from sklearn.metrics import classification_report
print(classification_report(y_test, y_predict, target_names=digits.target_names.astype(str)))