支持向量机
在2012年以前,SVM被认为机器学习中近十几年最成功表现最好的。SVM算法起源于感知机模型,感知机模型只可解决线性可分的数据集分类问题(线性可分:正负样本点集的凸包彼此不交)
支持向量机可以应用于统计分类和回归分析。SVM分类:(1)线性可分SVM(2)线性不可分SVM(3)非线性SVM。
例子:识别手写数字
import matplotlib.pyplot as plt
# Import datasets, classifiers and performance metrics
from sklearn import datasets, svm, metrics
# The digits dataset
digits = datasets.load_digits()
images_and_labels = list(zip(digits.images, digits.target))
for index, (image, label) in enumerate(images_and_labels[:4]):
plt.subplot(2, 4, index + 1)
plt.axis('off')
plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
plt.title('Training: %i' % label)
# fit model
n_samples = len(digits.images)
data = di