使用sklearn中make_circles模块构建环形数据
环形数据属于非线性数据:非线性数据,如月亮型数据,环形数据等
from sklearn.datasets import make_circles
x,y = make_circles(100,factor=0.1,noise=.1)
import matplotlib.pyplot as plt
plt.scatter(x[:,0],x[:,1],c = y,s = 50,cmap = "rainbow")
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/64b50ab1968938dd3f7c5d43880e8977.png)
使用svc对决策边界进行划分
from sklearn.svm import SVC
clf = SVC(kernel="linear").fit(x,y)
plt.scatter(x[:,0],x[:,1],c = y,s = 50,cmap = "rainbow")
plt_svc_decision_function(clf)
可以看出svm在环形数据的表现一般时候,可以增加数据维度,通过绘制高维决策边界进行划分,效果更好
import numpy as np
r = np.exp(-(x**2).sum(1)) #定义一个x计算出来的新维度
rlim = np.linspace(min(r),max(r),100)
svm对于非线性数据,效果不好时,可以通过增加维度训练</