机器学习-review-1 线性回归
发现隔一段时间,忘记了好多知识点,这里认为重要的知识点记录下来,作为笔记,方便以后回顾。
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 线性回归的更多相关文章
- Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)
title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...
- 机器学习:单元线性回归(python简单实现)
文章简介 使用python简单实现机器学习中单元线性回归算法. 算法目的 该算法核心目的是为了求出假设函数h中多个theta的值,使得代入数据集合中的每个x,求得的h(x)与每个数据集合中的y的差值的 ...
- coursera机器学习笔记-多元线性回归,normal equation
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- 机器学习之多变量线性回归(Linear Regression with multiple variables)
1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...
- [机器学习Lesson4]多元线性回归
1. 多元线性回归定义 多元线性回归也被称为多元线性回归. 我们现在介绍方程的符号,我们可以有任意数量的输入变量. 这些多个特征的假设函数的多变量形式如下: hθ(x)=θ0+θ1x1+θ2x2+θ3 ...
- 【TensorFlow篇】--Tensorflow框架初始,实现机器学习中多元线性回归
一.前述 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,T ...
- 使用sklearn机器学习库实现线性回归
import numpy as np # 导入科学技术框架import matplotlib.pyplot as plt # 导入画图工具from sklearn.linear_model imp ...
- Python机器学习/LinearRegression(线性回归模型)(附源码)
LinearRegression(线性回归) 2019-02-20 20:25:47 1.线性回归简介 线性回归定义: 百科中解释 我个人的理解就是:线性回归算法就是一个使用线性函数作为模型框架($ ...
- 机器学习 (二) 多变量线性回归 Linear Regression with Multiple Variables
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...
- 机器学习:衡量线性回归法的指标(MSE、RMSE、MAE、R Squared)
一.MSE.RMSE.MAE 思路:测试数据集中的点,距离模型的平均距离越小,该模型越精确 # 注:使用平均距离,而不是所有测试样本的距离和,因为距离和受样本数量的影响 1)公式: MSE:均方误差 ...
随机推荐
- Check Mysql Database Size
SELECT ROUND( SUM(data_length + index_length) / 1024 / 1024 ) TOTAL_MB, ROUND(SUM(data_length) / 102 ...
- 【转】PFILE和SPFILE介绍
原文:http://blog.sina.com.cn/s/blog_77bba23901017xcl.html 一.PFILE Pfile(Parameter File,参数文件)是基于文本格式的参数 ...
- Linux crontab定时执行任务 命令格式与详细例子
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...
- 上传文件格式控制的困惑(application/octet-stream 限制不了BAT等格式上传)问题解决
允许上传类型部分代码 $uptypes=array( //上传文件类型列表 'image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image ...
- Omnithreadlibary学习(2)-IOmniTask异步执行
1.使用 procedure Parallel.Async(task: TProc; taskConfig: IOmniTaskConfig); 匿名委托访问网站 program main; {$AP ...
- Python全栈开发之MySQL(二)------navicate和python操作MySQL
一:Navicate的安装 1.什么是navicate? Navicat是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小 ...
- REST API之前端跨域访问
关键字:跨域访问,cross-origin, NodeJS, REST API, JavaScript, Access-Control-Allow-Origin 1.新建并运行一个 NodeJS的se ...
- java中抽象类与接口的区别
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系.但是,一个类却可以实现多个interface. 2.在abstract class 中可以有自己 ...
- 使用WMI监控进程启动与结束
需要添加引用System.Management 代码: static void Main(string[] args) { //创建WQL事件查询,监视进程开启 var qCreate = new W ...
- C# dataGridView不显示默认行的解决办法
当页面只有一个dataGirdView时,调用From的Activated函数,在Activated函数里调用以下两个函数,可清除默认选择行 private void From_Activated(o ...