线性回归算法

  • 解决回归问题
  • 思想简单,容易实现
  • 是许多强大的非线性模型的基础
  • 结果具有很好的可解释性
  • 蕴含机器学习中的很多重要思想

基本思想:寻找一条直线,最大程度的“拟合”样本特征和样本输出标记之间的关系

如横轴房屋面积,纵轴房屋价格

由实际值x(i)代入到拟合直线方程中得到的y_hat, 即y的预测值

假设找到最佳拟合的直线方程:y = ax + b, 则对于每一个样本点x(i),根据直线方程其预测值为:真值为y(i)

因此,我们当然希望y(i)和y_hat(i)的差距尽量小。其差距可表示为:

(用绝对值表示的话,它不是一个处处可导的表达式,不便于后续计算)

考虑所有样本,其总差距为:

理所当然,我们希望其总差距尽可能小,将代入上式可得:

------------------------(1)

(在(1)式中,只有a,b两个未知数,监督学习中x(i)和y(i)都是已知数。)

损失函数: 度量出模型没有拟合住的那一部分

效用函数:度量拟合的程度

一类机器学习算法的基本思路:

通过分析问题,确定问题的损失函数或效用函数;通过最优化损失函数或效用函数,获得机器学习的模型。近乎所有参数学习的算法都是这样的套路。

如线性回归,多项式回归,逻辑回归,SVM,神经网络,...

它们都是学习相应参数来最优化其目标函数。其区别在于他们的模型不同,建立的目标函数不同,优化的方式不同。

P.S.

对于分类问题(左图),横纵坐标都是样本的特征,输出标记由点是红色还是蓝色表示。而对于回归问题(右图),纵轴是样本的输出标记。

因为在回归问题中,我们需要预测的是连续的值,而不是简单的用红色蓝色就可以表示。因此当要表示两个特征的回归问题时,就需要在三维空间中进行数据可视化。

样本特征只有一个,称为:简单线性回归

样本特征多个,多元线性回归

多元线性回归

数据有多少个特征,相应前面就有多少个系数(西塔1到西塔n,西塔0是截距),对比简单线性回归,a是西塔1,b就是西塔0,区别就是特征数从1拓展到了n

其中,

(写出列向量的形式,所以加了一个转置)--------(1)

为了使式子看起来更一致,方便后续推导,我们加上第0个特征,其值恒等于1,

(行向量的形式。对于X来说,每一行代表一个样本,每一列代表一个特征。X(i)代表从X中抽出一行)----------(2)

结合(1)(2),可将 y 的预测值写成,

(相乘再相加->点乘)

推广到所有样本,

Xb (m*(n+1)) 与 X (m*n) 区分开,区别在于多了第一列我们虚拟出来的列,值全部为1。西塔为有n+1个元素的列向量。其中 西塔0 是截距,剩下的 西塔1 到西塔n 是系数coefficients. 西塔0 与数据特征无关,其只表示偏移,剩下的西塔与数据特征相关。

综上,

(y_hat 得到的值是一个列向量,其有m个元素,每个元素对应原来的大X中每一个样本经过西塔后得到的预测值)

目标,

平方的和的形式可表示成两个向量点乘的形式,因此目标可写成,

本来是列向量(m * 1),转置完成了行向量(1*m)。相乘的结果是一个值。

总结

看起来这个式子很好,给Xb和y就能求出西塔,但为问题是其实现时间复杂度高: O(n^3),即使优化了,复杂度也有n^2.4。

优点是不需要对数据做归一化处理,它没有量纲的问题。直接将数据通过数学公式的运算就可以得到系数的值。这点与KNN不同。

=====>解决方案

线性回归算法总结

  • 典型参数学习

    • 对比KNN:非参数学习
  • 只能解决回归问题
    •   虽然很多分类方法中线性回归是基础(如逻辑回归)
    • 对比KNN:既可解决分类问题,也可解决回归问题
  • 对数据有假设:线性
    •   对比KNN对数据没有假设
  • 优点:对数据具有强解释性。(白盒)

线性回归Linear regression的更多相关文章

  1. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

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

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

  3. Ng第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下 ...

  4. 斯坦福第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 I 2.4  代价函数的直观理解 I ...

  5. 机器学习方法:回归(一):线性回归Linear regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 开一个机器学习方法科普系列:做基础回顾之用,学而时习之:也拿出来与大家分享.数学水平有限,只求易懂,学习与工 ...

  6. 斯坦福CS229机器学习课程笔记 Part1:线性回归 Linear Regression

    机器学习三要素 机器学习的三要素为:模型.策略.算法. 模型:就是所要学习的条件概率分布或决策函数.线性回归模型 策略:按照什么样的准则学习或选择最优的模型.最小化均方误差,即所谓的 least-sq ...

  7. 机器学习 (一) 单变量线性回归 Linear Regression with One Variable

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

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

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

  9. ML 线性回归Linear Regression

    线性回归 Linear Regression MOOC机器学习课程学习笔记 1 单变量线性回归Linear Regression with One Variable 1.1 模型表达Model Rep ...

  10. TensorFlow 学习笔记(1)----线性回归(linear regression)的TensorFlow实现

    此系列将会每日持续更新,欢迎关注 线性回归(linear regression)的TensorFlow实现 #这里是基于python 3.7版本的TensorFlow TensorFlow是一个机器学 ...

随机推荐

  1. 怎么查看这个历史最大连接session数

    select * from dba_high_water_mark_statistics;

  2. AWK整理

    处理模式: awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作.如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如 ...

  3. sleep与wait的对比

    链接:https://www.nowcoder.com/questionTerminal/eeff0fdb43034ee7b43838fb9de4519e来源:牛客网 sleep是线程类(Thread ...

  4. spring boot druid mybatis多数据源

    一.关闭数据源自动配置(很关键) @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) 如果不关闭会报异常:o ...

  5. 2019/05/13 JAVA虚拟机堆内存调优

    -Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...

  6. AJPFX关于Swing组件的总结

    默认布局管理器是流式布局(FlowLayout) 按钮的建立: jb1=new JButton("香蕉") 面板的建立:jp1=new JPanel(); 设置JFrame的标题: ...

  7. 【转】java编程思想第20章的注解例子用到的com.sun.mirror的jar包

    Java編程思想>中的注解代码中引入过这么一个包(com.sun.mirror),书上说的是在Jdk中有个tools.jar中,引入这个包就每这个问题了,但是笔者用的是JDK 1.8,把这个包i ...

  8. iOS 随笔 允许所有不安全网络访问项目

    允许任意请求访问app   App Transport Security Settings -> Allow Arbitrary Loads  YES

  9. 毕业设计:HomeFragment(二)

    一.长按item时的响应 在长按item时,我希望能让CheckBox显示出来,并且呼出全选.反选.取消菜单,以及下载.删除.移动.复制操作菜单. 我在具体实现的时候发现处理item布局是一个很大的问 ...

  10. PMP项目管理学习笔记(6)——整合管理之制订项目管理计划

    制订项目管理计划 输入:项目章程.组织过程资产.企业环境要素.计划过程的输出(): 工具:专家判断 输出:项目管理计划 项目管理计划使你在问题发生之前做出规划 你要在计划过程组中明确如何完成项目——因 ...