欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第24课:直观认识 SVM 和 SVR

程序员文章站 2022-05-02 17:42:25
...

SVM 实例

前面我们学习了 SVM 的理论,讲了线性可分 SVM、线性 SVM、非线性 SVM 和核函数。

在本文,我们将通过几个例子,来直观了解一下这些概念。

我们采用一维特征,这样可以将样本直接对应到直角坐标中的点,看起来非常直观,便于理解。

线性可分 SVM

先来看一个最简单的例子:线性可分 SVM

    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.svm import SVC # "Support vector classifier"

    # 定义函数plot_svc_decision_function用于绘制分割超平面和其两侧的辅助超平面
    def plot_svc_decision_function(model, ax=None, plot_support=True):
        """Plot the decision function for a 2D SVC"""
        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
        P = model.decision_fu