欢迎关注,敬请点赞!

台湾何时归——几种常用回归算法

  • 线性回归LR(Linear Regression)
    • 代码展示(加噪声的正旋函数,狭义线性回归)
  • 支持向量机回归SVR(Support Vector Regression)
    • 代码展示(加噪声的正旋函数,支持向量机回归)
  • KNN回归(KNeighborsRegressor)
    • 代码展示(加噪声的正旋函数,KNN回归)
  • 对比总结:

线性回归LR(Linear Regression)

传统的多变量线性回归可以表示成下面的形式:——狭义的线性回归
f(X,θ)=Xθ=θ0+x1θ1+x2θ2+……+xnθn(公式1)f(X, \theta) = X \theta = \theta_0 + x_1 \theta_1 + x_2 \theta_2 + …… + x_n \theta_n \tag{公式1} f(X,θ)=Xθ=θ0​+x1​θ1​+x2​θ2​+……+xn​θn​(公式1)
这个模型的自变量是一次的,能解决的问题有很大的局限性,如果数据具有非线性的趋势,便不能得到很好的表达。将自变量扩展到高次的情况,便得到了多项式回归(拟合)。
f(X,θ)=Xθ=θ0+θ1x+θ2x2+……+θnxn=ϕ(X)θ(公式2)f(X, \theta) = X \theta = \theta_0 + \theta_1 x + \theta_2 x^2 + …… + \theta_n x^n = \phi (X) \theta \tag{公式2} f(X,θ)=Xθ=θ0​+θ1​x+θ2​x2+……+θn​xn=ϕ(X)θ(公式2)
其中ϕ(X)=[1,x,x2,……,xn],θ=[θ0,θ1,θ2,……,θn]T\phi(X) = [1, x, x^2, ……, x^n], \theta = [\theta_0, \theta_1, \theta_2, ……, \theta_n]^Tϕ(X)=[1,x,x2,……,xn],θ=[θ0​,θ1​,θ2​,……,θn​]T,将ϕ(X)\phi (X)ϕ(X)称为基函数,这里我们选用了多项式基函数。选用不同的基函数能解决更为广泛的问题。——广义的线性回归

代码展示(加噪声的正旋函数,狭义线性回归)

from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import numpy as npX = np.linspace(0, 2 * np.pi, 50)
y = np.sin(X) + np.random.random(size=(50,))lr = LinearRegression()
lr.fit(X.reshape(-1, 1), y)
y_pred_lr = lr.predict(X.reshape(-1, 1))plt.scatter(X, y)
plt.plot(X, y_pred_lr)
plt.show()

支持向量机回归SVR(Support Vector Regression)

返回顶部
支持向量机里面有核函数的概念,把数据映射到高维空间,隐式地应用了多项式,支持向量机回归能很好拟合非线性趋势。

代码展示(加噪声的正旋函数,支持向量机回归)

from sklearn.svm import SVR
import matplotlib.pyplot as plt
import numpy as npX = np.linspace(0, 2 * np.pi, 50)
y = np.sin(X) + np.random.random(size=(50,))svr = SVR()
svr.fit(X.reshape(-1, 1), y)
y_pred_svr = svr.predict(X.reshape(-1, 1))plt.scatter(X, y)
plt.plot(X, y_pred_svr)
plt.show()

KNN回归(KNeighborsRegressor)

返回顶部
非参数方法。

周围数据的平均值,默认用minkowski距离来选择最近的点。邻居数(n-neighbors)越大,越平滑(bias);越小,越过拟合(vias)

代码展示(加噪声的正旋函数,KNN回归)

from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt
import numpy as npX = np.linspace(0, 2 * np.pi, 50)
y = np.sin(X) + np.random.random(size=(50,))knnr = KNeighborsRegressor()
knnr.fit(X.reshape(-1, 1), y)
y_pred_knnr = knnr.predict(X.reshape(-1, 1))plt.scatter(X, y)
plt.plot(X, y_pred_knnr)
plt.show()

对比总结:

1. 狭义的线性回归不拟合非线性;
2. 支持向量机回归很好拟合非线性;
3. KNN可以拟合非线性(但不够平滑)。

写代码不忘国事!
欢迎关注,敬请点赞!
返回顶部

几种常用回归算法——线性回归、支持向量机回归和KNN回归相关推荐

  1. Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS

    Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...

  2. 回归算法 - 线性回归求解 θ(最大似然估计求解)

    回顾线性回归的公式:θ是系数,X是特征,h(x) 是预测值. h(x) = θ0 + θ1x1 + θ2x2 + - + θnxn h(x) = Σ θixi( i=0~n ) h(x) = θTX ...

  3. Machine Learning | (9) 回归算法-线性回归

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  4. 回归分析详解:一文说清回归、线性回归、非线性回归、Logistic回归

    回归分析详解:一文说清回归.线性回归.非线性回归.Logistic回归 文章大纲 回归分析是什么? 回归.线性回归.非线性回归.Logistic回归的不同? 实际例子解释不同回归方法的应用场景 文章大 ...

  5. [转载] java实现四种常用排序算法

    参考链接: 用Java排序 四种常用排序算法 ##注:从小到大排 ##冒泡排序## 特点:效率低,实现简单 思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有 ...

  6. Python机器学习--回归算法--线性回归

    线性回归算法的类型 有监督学习的回归算法[标签是连续数据类型] 线性回归基础 研究父子身高关系 研究父辈身高(自变量x)如何决定子辈身高(因变量y) 建立方程表征关系:y = kx+b-------- ...

  7. Python机器学习--回归算法--线性回归算法

    线性回归算法 线性回归算法类型: 线性回归算法属于有监督学习的回归算法,可以处理标签为连续数据类型的数据. 线性回归算法原理: 通过寻找特征和标签之间的关系,生成一个线性方程,通过线性方程预测未知标签 ...

  8. python回归算法_基于Python的函数回归算法验证

    看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归 回归方法就是寻找方差的最小值 y = kx + b xi, ...

  9. 视觉直观感受7种常用排序算法

    视觉直观感受若干常用排序算法 1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状 ...

最新文章

  1. win10突然只剩下c盘和d盘了_电脑C盘爆满飘红?系统卡?试试这两种解决办法
  2. 微软官方Windows Server 2008实战攻略系列
  3. 实验0-Hive配置与启动
  4. 表格长度_知道你的成绩单是怎么打印的吗?超长Excel表格1页打印,拯救A4纸
  5. Windows Phone 实用开发技巧(18):使用SystemTray显示全局消息提醒
  6. android 功能清单文件夹,全新Android L大小全部功能清单整理
  7. 【英语学习】 - 君若不离不弃,吾当生死相依
  8. 浅谈C++中的资源管理
  9. 你的IE一路顺风吗?
  10. 【预测模型】基于天牛须算法优化ELman神经网络实现数据预测matlab代码
  11. 安装教程 | 在谷歌安装印象笔记插件(实用,在谷歌浏览器添加印象笔记插件,整理遇到bug,收藏解决bug的文章)
  12. 解决 Eclipse不支持tomcat9
  13. excel常用函数大全及示例(一)
  14. Office2016 Excel 快捷键备忘录
  15. 动手写操作系统9----键盘鼠标中断实现
  16. 大力普及“他妈的”有助于语言交流
  17. JAVA的发展方向以及前辈的一些看法
  18. 前端上传图片添加水印
  19. 期刊论文需要查重吗?
  20. 防止私自接交换机_【s5700交换机】防止用户私设IP

热门文章

  1. Hive常见查询操作与函数汇总
  2. 1052 Linked List Sorting (25 分)
  3. ORM框架简介及优缺点
  4. 查看PostgreSQL的端口,并修改
  5. markdown写法-删除线、强调
  6. swagger接口文档分组
  7. SpringBoot 获取 Get 请求参数详解
  8. 利用Scrapy框架爬取前途无忧招聘信息
  9. 1014 福尔摩斯的约会 (20 分) Python和C++版本
  10. 华中科技大学,您是我胸口上永远的痛