原创文章,如需转载请保留出处
本博客为唐宇迪老师python数据分析与机器学习实战课程学习笔记
一.支持向量机
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
import seaborn as sns; sns.set()
二.支持向量机基本原理
#随机来点数据
from sklearn.datasets.samples_generator import make_blobs
X, y = make_blobs(n_samples=50,centers=2,
random_state=0,cluster_std=0.60)
plt.scatter(X[:, 0],X[:, 1],c=y,s=50,cmap='autumn')
三. 解决方式
xfit = np.linspace(-1,3,5)
plt.scatter(X[:, 0],X[:, 1],c=y,s=50,cmap='autumn')
plt.plot([0.6], [2.1],'x', color='red',markeredgewidth=2,markersize=10)
for m,b in [(1, 0.65),(0.5, 1.6),(-0.2,2.9)]:
plt.plot(xfit, m * xfit + b, '-k')
plt.xlim(-1, 3.5)
(-1, 3.5)
#最小化雷区
xfit = np.linspace(-1, 3.5)
plt.scatter(X[:, 0],X[:, 1],c=y,s=50,cmap='autumn')
for m,b,d in [(1, 0.65, 0.33),(0.5, 1.6, 0.55),(-0.2, 2.9, 0.2)]:
yfit = m * xfit + b
plt.plot(xfit, yfit, '-k')
plt.fill_between(xfit, yfit - d, yfit + d, edgecolor='none',
color='#AAAAAA',alpha=0.4)
plt.xlim(-1,3.5)