在除了编程知识点,Python还涉及数学方法的算法,SVM是一个很好的体现。我们学习了数学中的坐标方法,点、线、面连接成图形,SVM也继承了这方面的绘图方方法。下面我们学习SVM的相关概念,然后分析其核心代码,体验SVM的使用原理。
1.概念理解
“支持向量机”(SVM)它是一种可用于分类或回归挑战的监督机器学习算法。然而,它主要用于分类问题。在这个算法中,我们将每个数据项作为n维空间中的一个点(包括n是您的特征数),每个特征值都是一个特定坐标值。然后,我们通过搜索区分这两类的超平面进行分类。
2.核心代码
模型本身并不难画出相应的图片
clf=SVC(kernel="linear").fit(X,y) print(clf.predict(X))
预测又对X自己预测了一个变化。按照核心代码延续sklearn的风格很简单。
可视化的优点可能很麻烦,需要使用以下函数。此函数只需输入clf即可。
defplot_svc_decision_function(model,ax=None): ifaxisNone: ax=plt.gca() xlim=ax.get_xlim() ylim=ax.get_ylim() x=np.linspace(xlim[0],xlim[1],30) y=np.linspace(ylim[0],ylim[1],30) Y,X=np.meshgrid(y,x) xy=np.vstack([X.ravel(),Y.ravel()]).T #decision_function这个函数可以返回给定x,y点到决策边界(即点到SVM获得划分线的距离) P=model.decision_function(xy).reshape(X.shape) ax.contour(X,Y,P,colors="k",levels=[-1,0,1],alpha=0.5,linestyles=["--","-","--"]) ax.set_xlim(xlim) ax.set_ylim(ylim)
函数的一般思路是先生成网格,然后计算网格中各点到决策边界的距离,最后绘制等高线(计算一条距离相等的线)。
以上是PythonSVM的原理分析。在了解了SVM的基本使用后,您可以实践核心代码,并找到使用SVM绘图的关键实现方法。
(推荐操作系统:windows7系统Python 3.9.1,DELL G3电脑。)