当前位置: 首页 > 图灵资讯 > 行业资讯> SVM在python中的原理如何理解?

SVM在python中的原理如何理解?

来源:图灵python
时间: 2024-09-12 10:09:50

除了编程知识点,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电脑。)