[ML学习笔记] 回归分析(Regression Analysis)

回归分析:在一系列已知自变量与因变量之间相关关系的基础上,建立变量之间的回归方程,把回归方程作为算法模型,实现对新自变量得出因变量的关系。

回归与分类的区别:回归预测的是连续变量(数值),分类预测的是离散变量(类别)。

线性回归

线性回归通过大量的训练出一个与数据拟合效果最好的模型,实质就是求解出每个特征自变量的权值θ。

设有特征值x1、x2(二维),预测值 $ h_\theta(x)=\theta_0 + \theta_1x_1 + \theta_2x_2 $。将其写为矩阵形式:令x0为全为1的向量,则预测值 $ h_\theta(x)=\sum_{i=0}^n\theta_i x_i =\theta^T x$。

真实值和预测值之间的偏差用 \(\varepsilon\) 表示,则有预测值 $ y^{(i)} = \theta^Tx^{(i)} + \varepsilon^{(i)}$。

假设误差\(\varepsilon^{(i)}\)是独立同分布的(通常认为服从均值为 \(0\) 方差为 \(\sigma^2\) 的正态分布),有:

\[ \begin{split} &p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}e^{-\dfrac{(\epsilon^{(i)})^2}{2\sigma^2}} \\ 代入则有&p(y^{(i)}\mid x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\dfrac{( y^{(i)}-\theta^Tx^{(i)} )^2}{2\sigma^2}} \\ \end{split} \]

符号解释
p(x|theta)表示条件概率,是随机变量
p(x;theta)表示待估参数(固定的,只是当前未知),可直接认为是p(x),加了分号是为了说明这里有个theta参数

上式用语言描述就是,要取一个怎样的\(\theta\),能够使得在\(x^{(i)}\)的条件下最有可能取到\(y^{(i)}\)。

可用极大似然估计求解,
\[ L(\theta)=\prod_{i=1}^mp(y^{(i)}\mid x^{(i)};\theta)=\prod_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}e^{-\dfrac{( y^{(i)}-\theta^Tx^{(i)} )^2}{2\sigma^2}} \]
\[ \begin{split} l(\theta)&=\log L(\theta)\\ &=\log\prod_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}e^{-\dfrac{( y^{(i)}-\theta^Tx^{(i)} )^2}{2\sigma^2}} \\ &= \sum_{i=1}^m\log\frac{1}{\sqrt{2\pi}\sigma}e^{-\dfrac{( y^{(i)}-\theta^Tx^{(i)} )^2}{2\sigma^2}} \\ &= m\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2\sigma^2}\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2\\ \end{split} \]

化为求目标函数\(J(\theta)=\dfrac{1}{2}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{i})^2\)的最小值。

最小二乘法求解

用矩阵形式表示:
\[ J(\theta)=\frac{1}{2}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{i})^2 =\frac{1}{2}(X\theta-y)^T(X\theta-y) \]
然后对\(\theta\)求导:
\[ \begin{split} \triangledown_\theta J(\theta)&=\triangledown_\theta(\frac{1}{2}(X\theta-y)^T(X\theta-y))\\ &=\triangledown_\theta(\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y))\\ &=\triangledown_\theta(\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty))\\ &=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)\\ &=X^TX\theta-X^Ty \end{split} \]

令 \(X^TX\theta-X^Ty=0\),则有最终结果 \(\theta = (X^TX)^{-1}X^Ty\)

梯度下降法求解

上述方法有时候会出现不能直接求出极值的情况,比如矩阵不可逆,只能通过不断优化的过程求解。梯度下降顾名思义,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度,然后朝着梯度相反的方向,就能让函数值下降的最快。

设 \(h_\theta(x)=\theta_1x+\theta_0\),

\[ \begin{split} J(\theta_0,\theta_1)&=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{i})^2\\ \frac{\partial J(\theta_0,\theta_1)}{\partial \theta_0} &= \frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{i})\\ \frac{\partial J(\theta_0,\theta_1)}{\partial \theta_1} &= \frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{i})x_i\\ \end{split} \]

更新后的\(\theta_0,\theta_1\)(选取合适的\(\alpha\)做步长):

\[ \begin{split} \theta_0:=\theta_0-\alpha*\frac{\partial J(\theta_0,\theta_1)}{\partial \theta_0}\\ \theta_1:=\theta_1-\alpha*\frac{\partial J(\theta_0,\theta_1)}{\partial \theta_1} \end{split} \]

逻辑回归(二分类问题)

逻辑回归本质不是回归,而是分类。可用Sigmoid函数 \(g(x) = \dfrac{1}{1+e^{-x}}\)将任意实数x映射到(0,1)区间从而进行类别划分,一般默认概率大于等于0.5则为1,小于0.5则为0,也可以自行设置阈值。

用一句话来说就是:逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数得出分类概率,通过阈值过滤来达到将数据二分类的目的。

转载于:https://www.cnblogs.com/thousfeet/p/9830258.html

[ML学习笔记] 回归分析(Regression Analysis)相关推荐

  1. 【沃顿商学院学习笔记】商业分析——Customer Analytics:02 预测分析一:回归分析 Regression Analysis

    商业进阶--预测分析一:回归分析 本章主要是从数据分析的短期预测方法:回归分析的角度进行学习. 回归分析 Regression Analysis 回归的目的是什么? 回归分析是量化两个或多个变量之间的 ...

  2. 回归分析regression analysis

    在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.回归分析按照涉及的变量的多少,分为一元回归和多元回归分析:按照因变量的 ...

  3. cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...

  4. 统计学 回归分析( Regression Analysis)

    Regression Analysis 是一种用来估算两个或者多个变量之间关系. 它有两个明显的好处: 1.能显示自变量和因变量之间的关系 2.能显示自变量和因变量之间的关系的强弱 有多少种: 1. ...

  5. 迁移学习笔记——Adapting Component Analysis

    <Adapting Component Analysis>文章学习 2012 IEEE 12th International Conference on Data Mining 文章目录 ...

  6. python机器学习算法(赵志勇)学习笔记( Logistic Regression,LR模型)

    Logistic Regression(逻辑回归) 分类算法是典型的监督学习,分类算法通过对训练样本的学习,得到从样本特征到样本的标签之间的映射关系,也被称为假设函数,之后可利用该假设函数对新数据进行 ...

  7. python学习笔记(Data Analysis)

    Python for Data Analysis numpy基础 嗯 调整了一些顺序 1 ndarray(n维数组) 导入数据.基本运算和数组生成 import numpy as np #矢量化 将数 ...

  8. ML学习笔记- 神经网络

    神经网络 有的模型可以有多种算法.而有的算法可能可用于多种模型.在神经网络中,对外部环境提供的模式样本进行学习训练,并能存储这种模式,则称为感知器;对外部环境有适应能力,能自动提取外部环境变化特征,则 ...

  9. 【ML学习笔记】8:PAC可能近似正确

    简述 PAC的意思 Probably Approximate Correct直译过来就是"可能近似正确",这里面用了两个描述"正确"的词,可能和近似. &quo ...

最新文章

  1. mysql8.0连接jdbc url_mysql8.0 jdbc连接注意事项
  2. html css文本框按钮,css样式之区分input是按钮还是文本框的方法
  3. matlab 学习之常用函数2
  4. 几何着色器与细分(镶嵌)着色器
  5. robot wireless communication
  6. mysql order by 运算_在MySQL中具有ORDER BY的多个LIKE运算符?
  7. 德国汽车厂发生机器人杀人事件 人机协作是大势所趋
  8. 大牛深入讲解!9次Java面试经验总结
  9. excel冻结窗口_excel成绩表怎么固定表头或者某一行?
  10. java 保存 设置_java – 保存设置的实现
  11. 计算机网络第七版总结报告,计算机网络(第七版)第一章总结(超详细!)
  12. Firefox Test Pilot 计划正式关闭
  13. java中使用nextLine(); 没有输入就自动跳过的问题?
  14. HTML5定稿一周年,你必须要重新认识HTML5了
  15. 计算机技术为我们带来的影响,计算机技术对社会发展的影响探析
  16. 4399小游戏怎样下载到本地玩
  17. Ubuntu/CentOS查看系统启动项
  18. 17.scrapy框架简例使用
  19. java窗体jmeun刷新,java – JME 3 Swing,多幅画布
  20. 生成两组相互独立服从标准正态分布的随机数(推导过程)

热门文章

  1. 大数据工程师的简易解释
  2. 设计模式学习笔记------简单工厂
  3. AngularJS学习笔记之二:开发、调试和测试工具
  4. C++ 无限for循环的bug
  5. 适用于IE浏览器及非IE浏览器的xmlhttp脚本
  6. Linux下使用源码安装出现的坑
  7. L3-002. 堆栈-PAT团体程序设计天梯赛GPLT(树状数组)
  8. 【C++ 与 STL】集合:set
  9. 判断用户 小程序_解读微信小程序用户运营四部曲
  10. apache hbase的region 分割与合并