线性回归算法

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

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

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

由实际值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. CZ-python01-06

    练习代码 练习代码 # Python注释 # 注释不是越多越好,对于一目了然的代码,不需要添加注释 # 对于复杂的操作,应该在操作开始填上若干行注释 # 对于不是一目了然的代码,应在其行尾添加注释(为 ...

  2. P1979 华容道 spfa题解

    题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  3. 使用css3 制作switch开关

    使用css3来实现switch开关的效果: html代码: <!--switch开关--><div class="switch-btn"> <inpu ...

  4. java课程设计全程实录——第0天

    本次课设计划在5月25日完成.目前还剩18天. 第0天主要完成事项如下: 搭建开发环境 制定开发进度规划表 阅读前人的课设 详细: 1.IDE的下载,安装,以及配合使用的阿里巴巴编程规约插件的安装与测 ...

  5. Android学习笔记--Intent

    Intent是android四大组件之间交互的一种重要方式.Intent可以指明当前要执行的动作,也可以指明要传递的数据.Intent可以用来启动活动,启动服务,发送广播. Intent分为两种:1. ...

  6. JAVA设计模式--Strategy

    策略模式就是说当我进行比较大小的时候定义一个策略的比较器Comparator,然后由具体的比较策略来决定用什么量来比较大小.

  7. 6 Specialzed layers 特殊层 第二部分 读书笔记

    CAGradientLayer   CAGradientLayer is used to generate a smooth gradient between two or more colors. ...

  8. Java遍历HashMap并修改(remove)

    遍历HashMap的方法有多种,比如通过获取map的keySet, entrySet, iterator之后,都可以实现遍历,然而如果在遍历过程中对map进行读取之外的操作则需要注意使用的遍历方式和操 ...

  9. PHP memcache扩展安装 for Windows

    一.下载并安装memcached服务器端软件    1.下载memcached软件 32位下载地址: memcached-win32-1.4.4-14.zip(直接下载),memcached-win3 ...

  10. 北京区域赛I题,Uva7676,A Boring Problem,前缀和差分

    转载自https://blog.csdn.net/weixin_37517391/article/details/83821752 题解 其实这题不难,只要想到了前缀和差分就基本OK了. 我们要求的是 ...