一、SVM 思想在解决回归问题上的体现

  • 回归问题的本质:找到一条直线或者曲线,最大程度的拟合数据点;
  • 怎么定义拟合,是不同回归算法的关键差异;
  1. 线性回归定义拟合方式:让所有数据点到直线的 MSE 的值最小;
  2. SVM 算法定义拟合的方式:在距离 Margin 的区域内,尽量多的包含样本点;
  • SVM 的思路解决回归问题:
  1. 在 Margin 区域内的样本点越多,则 Margin 区域越能够较好的表达样本数据点,此时,取 Margin 区域内中间的那条直线作为最终的模型;用该模型预测相应的样本点的 y 值;
  2. 在具体训练 SVM 算法模型解决回归问题时,提前指定 Margin 的大小,算法引入的超参数:ε,表示 Margin 区域的两条直线到区域中间的直线的距离,如图:
  • SVM 解决回归问题的思路与解决分类问题的思路相反,解决分类问题时,希望 Margin 区域内没有样本点或者样本点尽可能的少;
  • LinearSVC、SVC、LinearSVR、SVR
  1. LinearSVC:使用线性 SVM 的思路解决分类问题;
  2. SVC:使用非线性 SVM 的思路解决分类问题;(多项式核、高斯核)
  3. LinearSVR:使用线性 SVM 的思路解决回归问题;
  4. SVR:使用非线性 SVM 的思路解决回归问题;(使用不同的核函数)

二、scikit-learn 中的 SVM 算法:LinearSVR、SVR 解决回归问题

  • LinearSVR、SVR 的使用方式与 LinearSVC、SVC 一样

  • import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import datasets boston = datasets.load_boston()
    X = boston.data
    y = boston.target from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666) from sklearn.svm import LinearSVR
    from sklearn.svm import SVR
    from sklearn.preprocessing import StandardScaler
    from sklearn.pipeline import Pipeline def StandardLinearSVR(epsilon=0.1):
    return Pipeline([
    ('std_scaler', StandardScaler()),
    ('linearSVR', LinearSVR(epsilon=epsilon))
    # 此处使用超参数 C 的默认值;
    # 如果使用 SVR(),还需要调节参数 kernel;
    ]) svr = StandardLinearSVR()
    svr.fit(X_train, y_train)
    svr.score(X_test, y_test)
    # 准确率:0.6353520110647206

机器学习:SVM(SVM 思想解决回归问题)的更多相关文章

  1. 【笔记】SVM思想解决回归问题

    使用svm思想解决回归问题 使用svm思想解决是如何解决回归问题,其中回归问题的本质就是找一条线,能够最好的拟合数据点 怎么定义拟合就是回归算法的关键,线性回归算法就是让预测的直线的MSE的值最小,对 ...

  2. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...

  3. 机器学习:SVM

    SVM 前言:支持向量机(Support Vector Machine, SVM),作为最富盛名的机器学习算法之一,其本身是一个二元分类算法,为了更好的了解SVM,首先需要一些前提知识,例如:梯度下降 ...

  4. 机器学习算法--svm实战

    1.不平衡数据分类问题 对于非平衡级分类超平面,使用不平衡SVC找出最优分类超平面,基本的思想是,我们先找到一个普通的分类超平面,自动进行校正,求出最优的分类超平面 测试代码如下: import nu ...

  5. 机器学习:SVM(基础理解)

    一.基础理解 1)简介 SVM(Support Vector Machine):支撑向量机,既可以解决分类问题,又可以解决回归问题: SVM 算法可分为:Hard Margin SVM.Soft Ma ...

  6. 机器学习支持向量机SVM笔记

    SVM简述: SVM是一个线性二类分类器,当然通过选取特定的核函数也可也建立一个非线性支持向量机.SVM也可以做一些回归任务,但是它预测的时效性不是太长,他通过训练只能预测比较近的数据变化,至于再往后 ...

  7. 机器学习——支持向量机SVM

    前言 学习本章节前需要先学习: <机器学习--最优化问题:拉格朗日乘子法.KKT条件以及对偶问题> <机器学习--感知机> 1 摘要: 支持向量机(SVM)是一种二类分类模型, ...

  8. 机器学习笔记—svm算法(上)

    本文申明:本文原创,如转载请注明原文出处. 引言:上一篇我们讲到了logistic回归,今天我们来说一说与其很相似的svm算法,当然问题的讨论还是在线性可分的基础下讨论的. 很多人说svm是目前最好的 ...

  9. 机器学习:SVM(scikit-learn 中的 SVM:LinearSVC)

    一.基础理解 Hard Margin SVM 和 Soft Margin SVM 都是解决线性分类问题,无论是线性可分的问题,还是线性不可分的问题: 和 kNN 算法一样,使用 SVM 算法前,要对数 ...

随机推荐

  1. pd.read_csv的header用法

    默认Header = 0: In [3]: import pandas as pd In [4]: t_user = pd.read_csv(r'C:\Users\Song\Desktop\jdd_d ...

  2. Oracle基本概念

    1. 数据库和实例 什么是数据库,其实很简单,数据库就是存储数据的一种媒介.比如常用的文件就是一种,在Oracle10g中,数据的存储有好几种.第一种是文件形 式,也就是在你的磁盘中创建一批文件,然后 ...

  3. ubuntu中如何添加IP

    编辑网卡配置文件vi /etc/network/interfaces 在配置文件下增加新的IP配置 之后重启网络/etc/init.d/networking restart

  4. Spring Cloud Stream消息总线

    Springcloud 里面对于MQ的整合一个是前一篇的消息总线一个是本文介绍的消息驱动 大体要学习这么几个知识点: 课题:SpringCloud消息驱动Stream1.什么是SpringCloud消 ...

  5. tensorFlow 神经网络2

    learnrate 太大容易跑飞,设置激活函数 可以一定程度上增加learnrate,不跑飞 self.saver = tf.train.Saver() 和 self.init_variable = ...

  6. spring security在spring mvc的action中获取登录人信息

    @RequestMapping("/index") public ModelAndView login( @RequestParam(value = "error&quo ...

  7. 自学Hadoop

    一.Hadoop基础设施 起源于Google的三篇论文: 1. <The Google File System > 2003年 http://static.googleuserconten ...

  8. DanceLink

    DanceLink是一个可以解决精确覆盖和重复覆盖的搜索算法 重复覆盖就是在精确覆盖的remove等处做改变 都是十字循环链表 精确覆盖 给出一个01矩阵 要求选择几行 使每一列都有且仅有一个1 在求 ...

  9. 将本地jar包制作成maven依赖

    首先,需要配置maven环境,如果没配置,传送门:http://www.cnblogs.com/hyyq/p/6557683.html 然后,需要一个ben地的jar包,这里以阿里云支付宝sdk为例, ...

  10. js工厂方法

    工厂方法与简单工厂的区别在于工厂方法没有switch条件分支,实例化哪一个子类放到了客户端(可以利用反射),这样整个工厂和产品体系都没有修改的变化,而只是扩展的变化,这就完全符合了开放-封闭原则的精神 ...