线性回归, 最简单的机器学习算法, 当你看完这篇文章, 你就会发现, 线性回归是多么的简单.

首先, 什么是线性回归. 简单的说, 就是在坐标系中有很多点, 线性回归的目的就是找到一条线使得这些点都在这条直线上或者直线的周围, 这就是线性回归(Linear Regression).

是不是有画面感了? 那么我们上图片:

那么接下来, 就让我们来看看具体的线性回归吧

首先, 我们以二维数据为例:

我们有一组数据\(x\)和\(y\), 其中\(x\)是我们的特征, \(y\)就是我们的真实值(也就是每一个x对应的值), 我们需要找到一个\(w\)和\(b\)从而得到一条直线\(y=wx+b\), 而这条直线的\(w\)和\(b\)就是我们线性回归所需要求的参数

那么, \(w\)和\(b\)需要怎样求得呢? 那么我们需要先来了解一下他的机制

如我们之前所说, 我们需要这条直线使得所有的点尽可能的在直线上或者直线的两边, 也就是说, 我们这些\(x\)在我们直线上对应的值与我们真实的值的差尽可能的小, 即\(|y-(wx+b)|\)尽可能的小, 因此就有了我们的损失函数:

\[L=\frac1n\sum^n_{i=1}(y-(wx+b))^2
\]

那么我们的目标就变成了使得\(L\)尽可能的小

首先我们对损失函数求导:

\[\frac{\partial L}{\partial\omega}=2\left(\omega\sum^n_{i=1}x_i^2-\sum^n_{i=1}(y_i-b)x_i\right)=0
\]

\[\frac{\partial L}{\partial b}=2\left(nb-\sum^n_{i=1}(y_i-\omega x_i)\right)=0
\]

求解以后可得:

\[\omega=\frac{\sum^n_{i=1}y_i(x_i-\overline x)}{\sum^n_{i=1}x^2_i-\frac1m\left(\sum^m_{i=1}x_i\right)^2}
\]

\[b = \frac1m\sum^n_{i=1}(y_i-\omega x_i)
\]

其中\(\overline x=\frac1n\sum^n_{i=1}x_i\)即\(\overline x\)是\(x\)的均值

而这就是我们的最小二乘法, 求解得到的\(w\)和\(b\)就是我们拟合出来的直线的参数.

那么就下来, 我们来看一看当\(X\)为多维的情况, 也就是多元线性回归

与上面的一样, 我们需要拟合一个直线\(w^TX+b\)使得大多数的点在直线上或者在直线周围, 不同的是, 现在我们的\(w\)是多维的, 而我们的损失函数也就变成了

\[L=\frac1n\sum^n_{i=1}(y-(w^TX+b))^2
\]

根据上面的经验, 我们需要对损失函数求偏导, 在这里就不赘述了, 大家可以参考https://xiaoxiablogs.top/index.php/机器学习/least-square-method.html

以上, 就是我们的线性回归以及使用最小二乘法求线性回归了

本人博客https://xiaoxiablogs.top

通俗理解线性回归(Linear Regression)的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. ML 线性回归Linear Regression

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

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

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

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

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

随机推荐

  1. C# ASP JS引用路径不正确导致的错误

    假设JS包放在根目录下的Scripts文件夹下 当前页的路径在另一个文件夹下,那么他引用JS应该:<script src="../Scripts/jquery-1.4.1.min.js ...

  2. CentOS7基于ss5搭建Socks5代理服务器

    简介 环境 节点名 IP 软件版本 硬件 网络 说明 falcon-binary 172.19.0.6 list 里面都有 2C4G Nat,内网 测试环境 部署 准备编译环境和依赖 #安装编译环境和 ...

  3. C#图解教程(第四版)—03—类和继承

    1 使用基类的引用 派生类的实例由  基类的实例   加上  派生类 新增的成员 组成. 派生类的  引用   指向整个类对象,包括基类部分 重点:使用对象的  基类部分的引用  来访问对象   (父 ...

  4. SpringBoot整合Spring Security

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 Spring Securi ...

  5. Hydra's plan

    省选前的计划,实时更新(不知道能不能把挖的坑填完呢qwq) 链接

  6. 金题大战Vol.0 C、树上的等差数列

    金题大战Vol.0 C.树上的等差数列 题目描述 给定一棵包含\(N\)个节点的无根树,节点编号\(1-N\).其中每个节点都具有一个权值,第\(i\)个节点的权值是\(A_i\). 小\(Hi\)希 ...

  7. vue.extend和vue.component的区别

    vue.extend 使用基础 Vue 构造器函数,通过原型继承,(返回)创建一个"子类"(构造器).参数是一个包含组件选项的对象. const Sub = function Vu ...

  8. Salesforce学习笔记之lwc

    1.在Flow中使用Lightning Web Component(lwc)时,发现一个问题.给这个组件设置了一个输入参数,其值取自前一个Screen.第一次运行时,参数的值正确,但是如果这时退回前一 ...

  9. 笔记:Xshell、更新源、安装软件

    一.Xshell首次连接kali系统中的ssh 1.Xshell :帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp). 2.步骤: step1:开启kali中的ssh ...

  10. 用终端命令行(BASH)将本地项目上传到Github并提交代码

    第一步: 在Github上创建自己的repository 第二步:建立本地仓库cd到你的本地项目根目录下,执行git命令 1:$ cd 到你的项目目录下 2:$ git init 第三步:将本地项目工 ...