码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 机器学习实战-系列教程8:SVM分类实战3非线性SVM(鸢尾花数据集/软间隔/线性SVM/非线性SVM/scikit-learn框架)项目实战、代码解读


    🌈🌈🌈机器学习 实战系列 总目录

    本篇文章的代码运行界面均在Pycharm中进行
    本篇文章配套的代码资源已经上传

    SVM分类实战1之简单SVM分类
    SVM分类实战2线性SVM
    SVM分类实战3非线性SVM

    4、非线性SVM

    4.1 创建非线性数据

    from sklearn.datasets import make_moons 
    X, y = make_moons(n_samples=100, noise=0.15, random_state=42)
    
    def plot_dataset(X, y, axes):
        plt.plot(X[:, 0][y==0], X[:, 1][y==0], "bs")
        plt.plot(X[:, 0][y==1], X[:, 1][y==1], "g^")
        plt.axis(axes)
        plt.grid(True, which='both')
        plt.xlabel(r"$x_1$", fontsize=20)
        plt.ylabel(r"$x_2$", fontsize=20, rotation=0)
    
    plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    4.2 分类预测

    from sklearn.datasets import make_moons
    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import PolynomialFeatures
    polynomial_svm_clf=Pipeline((("poly_features",PolynomialFeatures(degree=3)),
                                ("scaler",StandardScaler()),
                                ("svm_clf",LinearSVC(C=10,loss="hinge"))
                                ))
    polynomial_svm_clf.fit(X,y)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    1. 使用PolynomialFeatures模块进行预处理,使用这个可以增加数据维度
    2. polynomial_svm_clf.fit(X,y)对当前进行训练传进去X和y数据
    def plot_predictions(clf,axes):
        x0s = np.linspace(axes[0],axes[1],100)
        x1s = np.linspace(axes[2],axes[3],100)
        x0,x1 = np.meshgrid(x0s,x1s)
        X = np.c_[x0.ravel(),x1.ravel()]
        y_pred = clf.predict(X).reshape(x0.shape)
        plt.contourf(x0,x1,y_pred,cmap=plt.cm.brg,alpha=0.2)
    
    plot_predictions(polynomial_svm_clf,[-1.5,2.5,-1,1.5])
    plot_dataset(X,y,[-1.5,2.5,-1,1.5])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    5、核函数

    5.1 核函数

    from sklearn.svm import SVC
    
    poly_kernel_svm_clf = Pipeline([
            ("scaler", StandardScaler()),
            ("svm_clf", SVC(kernel="poly", degree=3, coef0=1, C=5))
        ])
    
    poly_kernel_svm_clf.fit(X, y)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    poly100_kernel_svm_clf = Pipeline([
            ("scaler", StandardScaler()),
            ("svm_clf", SVC(kernel="poly", degree=10, coef0=100, C=5))
        ])
    
    poly100_kernel_svm_clf.fit(X, y)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    plt.figure(figsize=(11, 4))
    
    plt.subplot(121)
    plot_predictions(poly_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])
    plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])
    plt.title(r"$d=3, r=1, C=5$", fontsize=18)
    
    plt.subplot(122)
    plot_predictions(poly100_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])
    plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])
    plt.title(r"$d=10, r=100, C=5$", fontsize=18)
    
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    5.2 高斯核函数

    SVM分类实战1之简单SVM分类
    SVM分类实战2线性SVM
    SVM分类实战3非线性SVM

  • 相关阅读:
    【java】4-线程的状态
    牛市源码定制,抖音矩阵系统源头开发,here
    matplotlib笔记分享之基础设置(二)
    Android 9.0 网络之netd详解
    【在clion中配置使用和调试ros工程】
    Linux 常用命令
    Mac 本地部署thinkphp8【配置环境】
    跨境电商首选腾讯云轻量应用服务器Lighthouse!
    “中国法研杯”司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+
    AcWing 801. 二进制中1的个数——算法基础课题解
  • 原文地址:https://blog.csdn.net/weixin_50592077/article/details/132795423
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号