发现隔一段时间,忘记了好多知识点,这里认为重要的知识点记录下来,作为笔记,方便以后回顾。

From “李航- 统计学习方法” 统计学习方法的三要素: 模型,策略, 算法

对于线性回归

-----------------------------------------------------模型-----------------------------------------------------

利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归.

-----------------------------------------------------策略-----------------------------------------------------

线性回归模型经常用最小二乘逼近来拟合

对于只包含一个x自变量,可得出如下公式。 多个变量线性函数为 H(x) = Φ0 + Φ1*X1 + Φ2*X2 + ... + Φn*Xn

X, Y 值已知, J(Φ) 转化为 Φ0 和 Φ1的函数。 问题从选择最优的H(Φ)转化为求解 minJ(Φ)。因为H(Φ) 为线性函数,因此J(Φ) 为如下形态, 具有唯一最优解。

-----------------------------------------------------算法-----------------------------------------------------

将上图投射到平面上,形成的等高线(应该术语称为等高线), 问题进一步变为如何求得中间红星位置的Φ0 和 Φ1 是的J(Φ) 最小

Gradient Descent 算法: 从某一特定的值开始修改Φ0 和 Φ1 直到J(Φ) 最小。(此方法为机器学习中一种通用的算法,不仅限于线性回归)

对于偏导数Φ := Φ - a * (dJ(Φ))/dΦ, Φ 将向极值收敛, a 控制收敛的速度。

将偏导数带入得到线性回归的迭代方法, 如图所示:

--------------------------------------------------------------------------------------------------------------------

在实践过程中需要注意的一些技巧和方法(也合适于其他机器学习算法)

(1)学习速度的控制和取值:太小则会导致收敛较慢,太大可能会越过极值,从而无法到达收敛点

可供借鉴的方法如下,取各个数量级的a 来观测函数J(Φ)的收敛情况,每次收敛的变化>= 0.001

(2)feature scaling

对多个自变量,如果某个自变量的取值相对于其他自变量的数值较大,则需要规格化。否则其他自变量对于J(Φ)的影响和变化就很小。

可通过如下方法,将每个自变量规格化到[-0.5, 0.5]的区间内,再进行求解。

(3) 对feature X1, X2, ..., XN的选择。将一个或者多个自变量的多次项的值引入做个一个线性自变量。

PS:记得在NG之前的公开课(163上有), 介绍过Newton 迭代法,是另一种高效的快速迭代算法。

机器学习-review-1 线性回归的更多相关文章

  1. Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)

    title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...

  2. 机器学习:单元线性回归(python简单实现)

    文章简介 使用python简单实现机器学习中单元线性回归算法. 算法目的 该算法核心目的是为了求出假设函数h中多个theta的值,使得代入数据集合中的每个x,求得的h(x)与每个数据集合中的y的差值的 ...

  3. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  4. 机器学习之多变量线性回归(Linear Regression with multiple variables)

    1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...

  5. [机器学习Lesson4]多元线性回归

    1. 多元线性回归定义 多元线性回归也被称为多元线性回归. 我们现在介绍方程的符号,我们可以有任意数量的输入变量. 这些多个特征的假设函数的多变量形式如下: hθ(x)=θ0+θ1x1+θ2x2+θ3 ...

  6. 【TensorFlow篇】--Tensorflow框架初始,实现机器学习中多元线性回归

    一.前述 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,T ...

  7. 使用sklearn机器学习库实现线性回归

    import numpy as np  # 导入科学技术框架import matplotlib.pyplot as plt  # 导入画图工具from sklearn.linear_model imp ...

  8. Python机器学习/LinearRegression(线性回归模型)(附源码)

    LinearRegression(线性回归) 2019-02-20  20:25:47 1.线性回归简介 线性回归定义: 百科中解释 我个人的理解就是:线性回归算法就是一个使用线性函数作为模型框架($ ...

  9. 机器学习 (二) 多变量线性回归 Linear Regression with Multiple Variables

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  10. 机器学习:衡量线性回归法的指标(MSE、RMSE、MAE、R Squared)

    一.MSE.RMSE.MAE 思路:测试数据集中的点,距离模型的平均距离越小,该模型越精确 # 注:使用平均距离,而不是所有测试样本的距离和,因为距离和受样本数量的影响 1)公式: MSE:均方误差 ...

随机推荐

  1. Swift小功能点积累

    label字符加删除线 let label = UILabel(frame: CGRectMake(, , , )) let attr = NSMutableAttributedString(&quo ...

  2. linux/win7下安装websphere application server

    说明: 1.参考网址:http://www.ibm.com/developerworks/cn/aix/library/au-wasonlinux/ 2.在ibm官网上下载websphere appl ...

  3. thinkphp ajax检测是否数据可用

    模板文件:如 index.html 模板文件如:(index.html) <form><input type="text" name="username ...

  4. 【转】oracle PLSQL常用方法汇总

    原文:http://www.cnblogs.com/luluping/archive/2010/03/10/1682885.html 在SQLPLUS下,实现中-英字符集转换alter session ...

  5. document.getElementById获取不到标签值

    var apliay=document.getElementById('apliay_ok'); 代码里指定有id="apliay_ok"的标签,但是获取不到,折腾半天原来是因为在 ...

  6. PHP PhantomJs中文文档(翻译)

    介绍 PHP PhantomJS 是一个灵活的 PHP 库加载页面通过 PhantomJS 无头浏览器并将返回页面响应.这是方便于需要JavaScript的支持,同时还支持截屏测试网站.功能列表通过 ...

  7. struts2整合jfreechart

    需要的包: struts2-jfreechart-plugin-2.2.1.1.jar jfreechart-1.0.13.jar jcommon-1.0.17.jar 前台jsp页面中可以使用ifr ...

  8. 跨线程操作UI控件

    写程序的时候经常会遇到跨线程访问控件的问题,看到不少人去设置Control.CheckForIllegalCrossThreadCalls = false;这句话是告诉编译器不要对跨线程访问作检查,可 ...

  9. C++引用之声明方法

    引用就是某一变量的一个别名,对引用的操作就是对目标的操作. 引用的声明方法: 类型标识符 &引用名=目标变量名: 如: int a; int &ra=a; //定义引用ra,他是变量a ...

  10. 算法练习之:Biorhythms

    Biorhythms Time Limit: 1000MS Memory Limit: 10000KB  Problem Description Some people believe that th ...