• 技术文章 >Python技术 >Python基础教程

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

    小妮浅浅小妮浅浅2021-04-28 10:26:20原创3735

    python中除了编程化的知识点外,对于数学方法的算法也有所涉及,SVM就是一种很好地体现。我们学习过数学中的坐标方法,分别是点、线、面连接成图形,SVM也继承了这方面的画图方法。下面我们学习SVM的有关概念,然后就其核心代码进行分析,体会SVM的使用原理。

    1.概念理解

    “支持向量机”(SVM)是一种监督机器学习算法,可用于分类或回归挑战。然而,它主要用于分类问题。在这个算法中,我们将每一个数据项作为一个点在n维空间中(其中n是你拥有的特征数)作为一个点,每一个特征值都是一个特定坐标的值。然后,我们通过查找区分这两个类的超平面来进行分类。

    2.核心代码

    模型本身并不难,就是要画出相应的图

    clf = SVC(kernel = "linear").fit(X,y)
    print(clf.predict(X))

    预测又对X自己预测了一变。按照核心代码依旧延续sklearn的风格,十分简单。

    可视化可能优点麻烦,需要用到下面这个函数。这个函数只需输入clf即可。

    def plot_svc_decision_function(model,ax=None):
        if ax is None:
            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画图的关键实现方法。

    (推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)

    专题推荐:python svm
    上一篇:python使用第三方模块进行连接 下一篇:python中Cartopy是什么

    相关文章推荐

    • Python:支持向量机SVM的使用• 如何下载libsvm python• python里SVM算法是什么?• Python中SVM算法介绍及使用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网