欢迎关注,敬请点赞!

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

  • 线性回归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. Java移位运算之算术右移位
  2. Linux内核学习笔记
  3. oracle如何启动和停止服务,CentOS启动和停止服务详解
  4. 派生类的构造【C++继承】
  5. vue - blog开发学习3
  6. SM66 does not have debug button in Q system
  7. CVPR!你凭什么收录我3篇论文!? 1
  8. mysql中更新的命令是,mysql命令总结(陆续更新中)
  9. VS Code 1.37 发布,多个图标迎来全新设计
  10. c防止随机数重复_铝及铝模板等焊接常见缺陷、和防止措施12招
  11. spring 安全模块在jsp中误用引起的问题
  12. 系统限制,JDK也没有什么好办法
  13. 微信小程序----评价系统中的评星
  14. Cadence软件包集成了那么多软件,傻傻分不清?
  15. Hexo 好看的主题推荐
  16. MATLABs函数构建增量式PI控制器(文末有仿真模型及C代码)
  17. 安装JDK并配置环境变量(详细图文介绍)
  18. 复印机扫描显示服务器链接错误代码,如何开启扫描失败后显示网络错误代码
  19. [转载]物理大神的八卦完整版——大爱物理
  20. 浙江大学黄杨思博计算机学院,竺可桢学院2010-2011学年荣誉称号发文名单

热门文章

  1. mysql结束事务语句_事务通常以什么语句结束
  2. Nesting Depth
  3. DH密钥交换和ECDH原理
  4. JavaScript控制台打印单词
  5. 计算机显示用户文件夹,移动Win7用户文件夹(我的文档)默认位置至D盘
  6. 全国计算机等级考试网怎么注册
  7. Js对比常用JSON数据差异
  8. 新闻 | 华院计算入选中国科技产业智库AIGC产业图谱
  9. 2019年最受欢迎的手机App
  10. 机器学习小石子--数据处理之matplotlib