一、Multiple Features

这节课主要引入了一些记号,假设现在有n个特征,那么:



为了便于用矩阵处理,令\(x_0=1\):



参数\(\theta\)是一个(n+1)*1维的向量,任一个训练样本也是(n+1)*1维的向量,故对于每个训练样本:\(h_\theta(x)=\theta^Tx\)。

二、Gradient Decent for Multiple Variables

类似地,定义代价函数:



同时更新参数直到\(J\)收敛:

\[\theta_j:=\theta_j-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
\]

三、Feature Scaling

这些特征的值如果有着近似的尺度,那么梯度下降会收敛得更快,其实就是归一化。

Andrew建议将特征的值缩放到[-1,1]之间:

\[x_i=\frac{x_i-u_i}{s_i},u_i是平均值,s_i可以取max-min或者取标准差
\]

四、Learning Rate

1、梯度下降收敛所需的迭代次数是不确定的,可以通过绘制迭代次数与\(J\)的图来预测何时收敛;也可以通过代价函数的变化是否小于某个阈值来判断。

2、学习率一般可以尝试0.001,0.003,0.01,0.03,0.1,0.3,1...

五、Features and Polynomial Regression

线性回归有时候并不适用,有时需要多项式回归。

多项式回归可以转化为线性回归。

六、Normal Equation

正规方程通过直接求导,使得导数为0,进而求得\(\theta\)的解析解,使得\(J\)最小,而不需要像梯度下降那样迭代。



X是m*(n+1)特征矩阵,y是m*1向量,由图容易得出:

\(y=X\theta\)(这公式显然是错的。。。\(y\)只是采集到的标签),解出\(\theta=X^{-1}y\)(所以结论也是错的),这样得到的\(\theta\)显然不能使得损失函数最小。

课程里写成了\(\theta=(X^TX)^{-1}X^Ty\),详细推导是通过对代价函数求导得到的。这个公式不能化简为\(\theta=X^{-1}y\),因为只有\(X^T\)和\(X\)都可逆,才有\((X^TX)^{-1}=X^{-1}(X^T)^{-1}\)。

两种算法的比较:



正规方程只适用于线性模型,而且不需要Feature Scaling。

#Week3 Linear Regression with Multiple Variables的更多相关文章

  1. Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)

    ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...

  2. Machine Learning – 第2周(Linear Regression with Multiple Variables、Octave/Matlab Tutorial)

    Machine Learning – Coursera Octave for Microsoft Windows GNU Octave官网 GNU Octave帮助文档 (有900页的pdf版本) O ...

  3. 机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)

    机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables) 同样是预测房价问题  如果有多个特征值 那么这种情况下  假设h表示 ...

  4. 【原】Coursera—Andrew Ng机器学习—Week 2 习题—Linear Regression with Multiple Variables 多变量线性回归

    Gradient Descent for Multiple Variables [1]多变量线性模型  代价函数 Answer:AB [2]Feature Scaling 特征缩放 Answer:D ...

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

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

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

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

  7. ML:多变量代价函数和梯度下降(Linear Regression with Multiple Variables)

    代价函数cost function 公式: 其中,变量θ(Rn+1或者R(n+1)*1) 向量化: Octave实现: function J = computeCost(X, y, theta) %C ...

  8. 机器学习笔记-1 Linear Regression with Multiple Variables(week 2)

    1. Multiple Features note:X0 is equal to 1 2. Feature Scaling Idea: make sure features are on a simi ...

  9. 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables

    相比于week1中讨论的单变量的线性回归,多元线性回归更具有一般性,应用范围也更大,更贴近实际. Multiple Features 上面就是接上次的例子,将房价预测问题进行扩充,添加多个特征(fea ...

随机推荐

  1. MyBatis(四):SqlSession及其工厂类的作用域和生命周期

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...

  2. Redis对象——集合(Set)

    集合类型 (Set) 是一个无序并唯一的键值集合.它的存储顺序不会按照插入的先后顺序进行存储. 集合类型和列表类型的区别如下: 列表可以存储重复元素,集合只能存储非重复元素: 列表是按照元素的先后顺序 ...

  3. ADB教程

    ADB教程 查看当前pc端连接多少设备 adb devices  adb连接android设备  adb connect  [192.168.3.113]  断开连接  adb disconnect  ...

  4. ArrayList、LinkedList和Vector源码分析

    ArrayList.LinkedList和Vector源码分析 ArrayList ArrayList是一个底层使用数组来存储对象,但不是线程安全的集合类 ArrayList的类结构关系 public ...

  5. 使用VirtualBox+Vagrant快速搭建Linux虚拟机环境

    1. 软件准备 下载.安装Virtual Box https://www.virtualbox.org/wiki/Downloads 下载.安装Vagrant https://www.vagrantu ...

  6. Python设计模式(9)-外观模式

    # /*外观模式:为外界调用提供一个统一的接口,把其他类中需要用到的方法提取# * 出来,由外观类进行调用.然后在调用段实例化外观类,以间接调用需要的# * 方法.这种方式和代理模式有异曲同工之妙.然 ...

  7. 通过STC15F2K60S2控制SIM900A发中英文短信,打电话

    本文通过串口通信,使用STC15系列单片机实现发短信打电话功能. 一. 注意事项 1. 首先要确定手机卡已经注册到网络,具备打电话发短信功能 2. 正确的硬件连接: P3.0-----STXD或者5V ...

  8. 微服务框架-Spring Cloud

    Spring Cloud入门 微服务与微服务架构 微服务架构是一种新型的系统架构.其设计思路是,将单体架构系统拆分为多个可以相互调用.配合的独立运行的小程序.这每个小程序对整体系统所提供的功能就称为微 ...

  9. [算法总结]康托展开Cantor Expansion

    目录 一.关于康托展开 1.什么是康托展开 2.康托展开实现原理 二.具体实施 1.模板 一.关于康托展开 1.什么是康托展开 求出给定一个由1n个整数组成的任意排列在1n的全排列中的位置. 解决这样 ...

  10. 遇到自己喜欢的视频无法下载,python帮你解决

    问题描述 python是一种非常好用的爬虫工具.对于大多数的爬虫小白来说,python是更加简洁,高效的代码.今天就用实际案例讲解如何爬取动态的网站视频. 环境配置:python3:爬虫库reques ...