千锋教育-做有情怀、有良心、有品质的职业教育机构

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

来源:千锋教育
发布时间:2023-11-12 11:29:14
分享

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

在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)

函数大概思路就是首先生成一个网格,然后计算网格中各个点到决策边界的距离,最后绘制等高线(算出的距离相等的一条线)。

以上就是SVM在python中的原理分析,大家在理解了SVM的基础使用后,可以展开对核心代码的练习,找到使用SVM画图的关键实现方法。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python中UDP编程实现通信 python中UDP编程实现通信本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、服务器端recvfrom()方法返回数据和客户端的地址与端口,这样,服务器收到数据
  • python UDP编程是什么意思? pythonUDP编程是什么意思?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念UDP是面向无连接的协议,即只需要知道对方的IP地址和端口号,就能够直接发送
  • python中TCP编程是什么? python中TCP编程是什么?在对于计算机编程的理解中,我们学习的一般是内在的知识点理论。不过计算机产生的初衷是为了信息之间的交流,那么在对外的这一点上,就产生了网络编程的概念。TCP编程是其中的一
  • python生成器的原理探究 python生成器的原理探究本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念生成器是通过使用yield语句而不是return语句定义一个普通函数来创建的。如果
  • python中如何使用numpy.zeros()函数? python中如何使用numpy.zeros()函数?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、numpy.zeros()函数可以创建指定长度或形状的全0的
  • python中numpy.concatenate()函数怎么用? python中numpy.concatenate()函数怎么用?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、numpy.concatenate函数主要作用:沿