理论推导

  机器学习所针对的问题有两种:一种是回归,一种是分类。回归是解决连续数据的预测问题,而分类是解决离散数据的预测问题。线性回归是一个典型的回归问题。其实我们在中学时期就接触过,叫最小二乘法。

  线性回归试图学得一个线性模型以尽可能准确地预测输出结果。
  先从简单的模型看起:
  首先,我们只考虑单组变量的情况,有:
使得
  假设有m个数据,我们希望通过x预测的结果f(x)来估计y。其中w和b都是线性回归模型的参数。
  为了能更好地预测出结果,我们希望自己预测的结果f(x)与y的差值尽可能地小,所以我们可以写出代价函数(cost function)如下:

  接着代入f(x)的公式可以得到:

  不难看出,这里的代价函数表示的是预测值f(x)与实际值y之间的误差的平方。它对应了常用的欧几里得距离简称“欧氏距离”。基于均方误差最小化来求解模型的方法我们叫做“最小二乘法”。在线性回归中,最小二乘法实质上就是找到一条直线,使所有样本数据到该直线的欧式距离之和最小,即误差最小。
  我们希望这个代价函数能有最小值,那么就分别对其求w和b的偏导,使其等于0,求解方程。
  先求偏导,得到下面两个式子:


  很明显,公式中的参数m,b,w都与i无关,简化时可以直接提出来。
  另这两个偏导等于0:
  求解方程组,解得:


  这样根据数据集中给出的x和y,我们可以求出w和b来构建简单的线性模型来预测结果。

  接下来,推广到更一般的情况:
  我们假设数据集中共有m个样本,每个样本有n个特征,用X矩阵表示样本和特征,是一个m×n的矩阵:

  用Y矩阵表示标签,是一个m×1的矩阵:

  为了构建线性模型,我们还需要假设一些参数:

(有时还要加一个偏差(bias)也就是, 为了推导方便没加,实际上结果是一样的)

  好了,我们可以表示出线性模型了:

  h(x)表示假设,即hypothesis。通过矩阵乘法,我们知道结果是一个n×1的矩阵。
  跟前面推导单变量的线性回归模型时一样,列出代价函数:

  这里的1/2并无太大意义,只是为了求导时能将参数正好消掉而加上。
  代价函数代表了误差,我们希望它尽可能地小,所以要对它求偏导并令偏导数为0,求解方程。
  在求偏导之前先展开一下:

  接下来对 求导,先给出几个矩阵求导的公式:

  对代价函数 求关于 的偏导,并令其等于0。

  求偏导。

  套用前面给出的矩阵求导公式。

  最后化简得到:

  好了,另这个偏导数等于0:

  解得:

OK,推导完毕。
把知识点梳理一遍发现清楚了很多。写公式真的很累,明天再把线性回归的代码补上。
(ง •̀_•́)ง

机器学习入门学习笔记:(2.1)线性回归理论推导相关推荐

  1. 机器学习入门学习笔记:(2.2)线性回归python程序实现

      上一篇博客中,推导了线性回归的公式,这次试着编程来实现它.(机器学习入门学习笔记:(2.1)线性回归理论推导 )   我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式:另一 ...

  2. 机器学习入门学习笔记:(2.3)对数几率回归推导

    理论推导   在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型.   将线性回归模型简写为:y=ωTx+by = \omega^Tx+b:   ...

  3. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  4. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  5. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  6. Kaggle教程 机器学习入门学习笔记

    机器学习入门学习笔记 [跳转]<Kaggle教程 机器学习入门>系列课程目录 >> 决策树 简介:是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零 ...

  7. 机器学习入门学习笔记:(1)BP神经网络原理推导及程序实现

    机器学习中,神经网络算法可以说是当下使用的最广泛的算法.神经网络的结构模仿自生物神经网络,生物神经网络中的每个神经元与其他神经元相连,当它"兴奋"时,想下一级相连的神经元发送化学物 ...

  8. 机器学习入门学习笔记:(2.4)线性判别分析理论推导

    LDA   线性判别分析(Linear Discriminant Analysis, 简称LDA),最早由Fisher提出,也叫"Fisher判别分析".   线性判别分析的思想: ...

  9. 机器学习入门学习笔记:(4.1)SVM算法

    前言 支持向量机(Support Vector Machine,简称SVM)可以说是最经典的机器学习算法之一了.这几天再看SVM,参考了一些书籍和博客,这里把自己的笔记记录下来,以便以后复习查看. 间 ...

最新文章

  1. 1、时间、FHS 学习笔记
  2. UA MATH566 统计理论 概念与定理总结
  3. Ubuntu16.04+ROS+ORB-SLAM2测试(转载)
  4. python 发布啦!!
  5. CodeActivity基本使用
  6. C++关键字速查手册
  7. php 判断函数禁用,php禁用函数设置及查看方法的介绍(附示例)
  8. 一个Repeater排序用的控件
  9. java助教的工作内容_2017-2018-2 165X 『Java程序设计』课程 助教总结
  10. mysql查询年龄段多少人_mysql中一张(居民)表按年龄段查询数据
  11. dns解析失败故障问题解决两例
  12. 基于java的个人日程管理系统mysql
  13. hadoop3.X 和 Hadoop 2.X的web端口号访问
  14. 等额本息和等额本金计算
  15. ORACLE11g R2 for Linux 下载地址
  16. Cesium鼠标事件汇总
  17. vscode 取色器插件
  18. 深度学习准备之安装双系统
  19. HAL库之SYSTICK时钟频率探究-F407
  20. FLink聚合性能优化--MiniBatch分析

热门文章

  1. 面试题整理3 大数的表示及加减法问题
  2. Mat 显示到MFC中Pictrue Control的问题
  3. OpenCV学习笔记大集锦
  4. Java I/O系统学习系列一:File和RandomAccessFile
  5. 分布式事务 常见方法
  6. Android 学习指南(2017版)
  7. 从传统操作系统角度理解Hadoop YARN
  8. 图像检索系统 Image Retrieval Systems
  9. Shell教程(三):数组/Arrays、基本运算符
  10. Stanford UFLDL教程 主成分分析(PCA)