此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。

力求简洁,仅代表本人观点,不足之处希望大家探讨。

课程网址:https://www.coursera.org/learn/machine-learning/home/welcome

Week 3: Logistic Regression & Regularization 笔记:http://blog.csdn.net/ironyoung/article/details/47398843

Week 2:Linear Regression with Multiple Variables

  1. Multivariate Linear Regression

    1. Week 1 讨论仅一个特征,即仅有一个未知量x 影响了目标y 的取值。

      假设如今有非常多特征?如今我们有x 1 ,x 2 ...x n  影响了目标y 的取值。

    2. 此时须要区分的是变量标记规则:
      • x i  表示的是第i 个特征
      • x (i)  表示的是第i 个样本,一个样本是由多个特征组成的向量
      • 比如:x (2) =[x (2) 1 ,x (2) 2 ,x (2) 3 ,...,x (2) n ] T
      • 综上,我们有h θ (x)=θ 0 +θ 1 ∗x 1 +θ 2 ∗x 2 +...+θ n ∗x n  。能够视为。每一个样本都多出一个特征:x 0 =1 ,这样表示有利于之后的矩阵表示
  2. 多变量梯度下降法:

    样本一共同拥有m个

    cost function:J(θ 0 ,θ 1 )=12m ∑ i=1 m (h θ (x (i) )−y (i) ) 2  

    update:θ j :=θ j −α1m ∑ i=1 m ((h θ (x (i) )−y (i) )∗x (i) j )

  3. Feature Scaling(特征缩放)

    • 非常easy。就是将每种特征的数据范围限定在同一个数量级。比如x 1 ∈[0,2000],x 2 ∈[1,5] ,这样会导致迭代次数过多。这时候,假设我们找到一种mapping方式,使得两者属于同一个数量级的范围内,能够有效减少迭代次数
    • 注意:无法减少单次的迭代时间。可是却能有效地减少迭代次数
    • 事实上方法非常多,这有一种:x=x−mean(x)max(x)−min(x)  。当中,mean(x) 表示向量每一个元素的平均值。max(x) 表示向量中最大元素,min(x) 表示向量中最小元素
  4. Learning Rate
    • learning rate 是机器学习中的一个不稳定因素,怎样推断选取的 learning rate 是合适的?我们能够看看下面这幅图:

    • 假设以迭代次数为横坐标,cost function 结果为纵坐标。绘制的图像是递减的,说明 learning rate 选择的是恰当的。假设碰到下图所显示的三种情况。那就仅仅有一条路:减小 learning rate

    • 可是 learning rate 太小相同会导致一个问题:学习过慢。所以,仅仅能靠试:0.001。0.003,0.01,0.03,0.1,0.3……
  5. Polynomial Regression(多项式回归。不同于多变量线性回归)
    • 有时候。我们须要自己创造一些“特征”,来拟合一些非线性分布情况
    • 比如:h θ (x)=θ 0 +θ 1 ∗x 2 +θ 2 ∗x  √  ,看上去仅仅有一个特征x ,但我们全然能够理解为x 2  和x  √  都是单独的新特征
    • 以后的课程会详细讲述怎样选择这些特征
  6. Normal Equation
    • 梯度下降法能够用于寻找函数(cost function)的最小值。想一想,初高中的时候我们使用的是什么方法?最小值点的导数为零,然后解方程
    • 将导数置为零这样的方法即 Normal Equation。if θ∈R n+1 ,∂∂θ i  J(θ)= set 0 for every i .
    • 上文提过,添加一个全1分量x 0  后得到x=[x 0 ,x 1 ,x 2 ,x 3 ,...,x n ] T
    • 能够得到:xθ=y⇛x T xθ=x T y⇛θ=(x T x) −1 x T y
    • matlab编程十分简单:theta=pinv(X ′ ∗X)∗X ′ ∗y;
    • Normal Equation 有下面优缺点:
      1. 不须要 learning rate,也就不须要选择。
      2. 不须要迭代,不须要考虑收敛的问题;
      3. 当特征非常多的时候。由于涉及求逆操作,会非常慢(注:方阵才有逆矩阵)
  7. Octave Tutorial

    这一部分十分简单。事实上就是MATLAB的用法。建议不论是否刚開始学习的人都去看看,会有收获。

    谈到一个问题:假设现有的样本数,小于每一个样本全部的特征数怎么办?去除多余的特征(PCA?)。特征过多,也可能会导致矩阵不可逆的情况(不甚理解)。

    下面记录一些认为挺有趣的命令:

    1. ~=:不等于号
    2. xor(0, 1):异或操作
    3. rand(m, n):0~1之间的大小为m*n的随机数矩阵;randn:产生均值为0,方差为1的符合正态分布的随机数(有负数)
    4. length(A):返回A中行、列中更大值
    5. A(:):将矩阵A变为列向量形式。不论A是向量还是矩阵
    6. sum(A,1):每列求和得到一个行向量;sum(A,2):每行求和得到一个列向量
    7. pinv:伪求逆;inv:求逆
    8. imagesc(A):帅爆!依据矩阵中每一个值绘制各种颜色的方块
    9. A.^2 ~= A^2,后者是两个矩阵相乘
  8. Submitting Programming Assignments

    事实上看看视频即可了。主要要注意,submit() 时输入的Token,不是Coursera 的password,而是作业的password,在这里:



    编程作业答案:https://github.com/cnauroth/machine-learning-class

Andrew Ng Machine Learning 专题【Linear Regression】的更多相关文章

  1. Andrew Ng Machine Learning 专题【Logistic Regression & Regularization】

    此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记. 力求简洁,仅代表本人观点,不足之处希望大家探 ...

  2. [C2P2] Andrew Ng - Machine Learning

    ##Linear Regression with One Variable Linear regression predicts a real-valued output based on an in ...

  3. Machine Learning #Lab1# Linear Regression

    Machine Learning Lab1 打算把Andrew Ng教授的#Machine Learning#相关的6个实验一一实现了贴出来- 预计时间长度战线会拉的比較长(毕竟JOS的7级浮屠还没搞 ...

  4. [C2P3] Andrew Ng - Machine Learning

    ##Advice for Applying Machine Learning Applying machine learning in practice is not always straightf ...

  5. CheeseZH: Stanford University: Machine Learning Ex1:Linear Regression

    (1) How to comput the Cost function in Univirate/Multivariate Linear Regression; (2) How to comput t ...

  6. [C2P1] Andrew Ng - Machine Learning

    About this Course Machine learning is the science of getting computers to act without being explicit ...

  7. Andrew Ng机器学习 一: Linear Regression

    一:单变量线性回归(Linear regression with one variable) 背景:在某城市开办饭馆,我们有这样的数据集ex1data1.txt,第一列代表某个城市的人口,第二列代表在 ...

  8. machine learning (2)-linear regression with one variable

    machine learning- linear regression with one variable(2) Linear regression with one variable = univa ...

  9. Andrew Ng Machine learning Introduction

    1. 机器学习的定义:Machine learning is programming computers to optimize a performance criterion(优化性能标准) usi ...

随机推荐

  1. C# 字符串处理小工具

    之前刚上大学时沉迷于安全方面,当时一直想写一个处理字符串的小程序. 无奈当时没有太多时间,一直拖延到这寒假. 寒假闲来无事,所以就写写小程序来练手,顺便复习一下窗体和基础. 实现的功能有以下: 转换为 ...

  2. BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记看另一篇吧】

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3975  Solved: 2421[Submit][Stat ...

  3. luogu P2439 [SDOI2005]阶梯教室设备利用

    题目链接 luogu P2439 [SDOI2005]阶梯教室设备利用 题解 dp 代码 #include<vector> #include<cstdio> #include& ...

  4. linux中的文件编码及编码修改

    查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想 ...

  5. hdu 2962 最短路+二分

    题意:最短路上有一条高度限制,给起点和最大高度,求满足高度最大情况下,最短路的距离 不明白为什么枚举所有高度就不对 #include<cstdio> #include<cstring ...

  6. HDU 5137 How Many Maos Does the Guanxi Worth 最短路 dijkstra

    How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/5 ...

  7. 使用命令行编译和运行 c、Java和python程序

    集成开发环境已经非常方便,从编写程序到执行程序看到结果,让我们不用关心中间的过程.但是使用原始的.命令的方式来将程序编译运行有的时候可能有些用,比如写个简答的程序,或者是身边没有集成工具的时候. C语 ...

  8. Java的Spi机制心得

    Java spi : 是Java EE 给服务供应商提供的接口,供应商遵循接口契约提供自己的实现.. 简单来讲就是为某个接口寻找服务实现的机制. 在看JDBC源码当看到DriverManage.get ...

  9. VB.NET章鱼哥出品—怎样解决MDI子窗口被父窗口中的控件覆盖的问题

    近期有个网友问我这个问题,我就上网搜了下,结果非常失望.有几个在CSDN上发的求助帖.看到最后都没有找到明白的答案. 这里笔者在网上找到了API函数SetParent(),并对网上的错误进行了改动,并 ...

  10. [Node.js]Express web框架

    摘要 Express是一个简洁灵活的node.js web应用框架,提供了一系列强大特性帮助你创建各种web应用和丰富的http工具.使用express可以快速创建一个完整功能的网站. Express ...