SVM→8.SVM实战→2.引入核函数的SVM

《SVM→8.SVM实战→2.引入核函数的SVM》


描述 代码
  1. 导入模块
1
2
3
4
from sklearn.datasets.samples_generator import make_circles
import matplotlib.pyplot as plt
from sklearn.svm import SVC # "Support vector classifier"
import numpy as np
  1. 生成数据集
    1. 使用make_circles函数生成用于一个大圈和一个小圈的数据,用于聚类或分类可视化,主要参数有:
      1. n_samples:样本个数
      2. random_state:随机种子(被指定后,每次构造数据相同)
      3. factor:内圈相对外圈的缩放系数,值越小,内圈越小
      4. noise:给数据添加的高斯噪声,越大数据分散得越开,小圈和大圈数据交集越多
    2. 返回值有样本数据集X只能是2个特征和标签y,且都是ndarray对象
1
2
3
4
In[3]: type(make_circles)
Out[3]: function
In[4]: X, y = make_circles(n_samples=100,random_state=10,factor=.1, noise=.1)
In[5]: plt.scatter(X[:, 0], X[:, 1], c=y,  s=50, cmap='autumn')
  1. 模型选择
    1. 使用svm.SVC(C=1.0, kernel=’rbf’)分别创建线性核和高斯核SVC对象,并绘制图像绘图函数参考见扩展
  • liear核函数
  • rbf核函数
  • liear核函数
1
2
3
4
In[35]: plt.scatter(X[:, 0], X[:, 1], c=y,  s=50, cmap='autumn')
In[33]: clf = SVC(kernel='linear', C=1E6)
   ...: clf.fit(X, y)
In[34]: plot_svc_decision_function(clf)
  • rbf核函数
1
2
3
4
In[35]: plt.scatter(X[:, 0], X[:, 1], c=y,  s=50, cmap='autumn')
In[31]: clf = SVC(kernel='rbf', C=1E6)
   ...: clf.fit(X, y)
In[34]: plot_svc_decision_function(clf)




Show 拓展

猜你喜欢

转载自www.cnblogs.com/LeisureZhao/p/9752653.html
svm
今日推荐