支持向量机算法除了能对线性问题进行分类之外,还可以对非线性可分的问题进行分类,我们可以很容易的使用“核技巧”来解决非线性可分问题。
一、非线性问题
在非线性的问题中,最经典的非线性问题,莫过于对于异或问题的分类了。下面,我们通过python来生成一个异或的数据集,代码如下
if __name__ == "__main__":
#随机生成200个点
x_xor = np.random.randn(200,2)
#将数据集变成一个异或的数据集
#都满足或者都不满足条件返回False,否则返回True
y_xor = np.logical_xor(x_xor[:,0] > 0,x_xor[:,1] > 0)
#三元运算符,为True返回1或者返回-1
y_xor = np.where(y_xor,1,-1)
#描点
#绘制标签为1的点
plt