线性回归——最小二乘法(一)

相信学过数理统计的都学过线性回归(linear regression),本篇文章详细将讲解单变量线性回归并写出使用最小二乘法(least squares method)来求线性回归损失函数最优解的完整过程,首先推导出最小二乘法,后用最小二乘法对一个简单数据集进行线性回归拟合

线性回归

  线性回归假设数据集中特征与结果存在着线性关系;

  等式:y = mx + c

  y为结果,x为特征,m为系数,c为误差 在数学中m为梯度c为截距

  这个等式为我们假设的,我们需要找到m、c使得mx+c得到的结果与真实的y误差最小,这里使用平方差来衡量估计值与真实值得误差(如果只用差值就可能会存在负数); 用于计算真实值与预测值的误差的函数称为:平方损失函数(squard loss function);这里用L表示损失函数,所以有:

  整个数据集上的平均损失为:

  我们要求得最匹配的m与c使得L最小;
数学表达式可以表示为:

  最小二乘法用于求目标函数的最优值,它通过最小化误差的平方和寻找匹配项所以又称为:最小平方法;这里将用最小二乘法用于求得线性回归的最优解;

最小二乘法

  为了方便讲清楚最小二乘法推导过程这里使用,数据集有1…N个数据组成,每个数据由、构成,x表示特征,y为结果;这里将线性回归模型定义为:

平均损失函数定义有:


  要求得L的最小,其关于c与m的偏导数定为0,所以求偏导数,得出后让导数等于0,并对c与m求解便能得到最小的L此时的c与m便是最匹配该模型的;

关于c偏导数:

因为求得是关于c的偏导数,因此把L的等式中不包含c的项去掉得:

整理式子把不包含下标n的往累加和外移得到:

对c求偏导数得:

关于m的偏导数:

求关于m的偏导数,因此把L等式中不包含项去掉得:


  整理式子把不包含下标n的往累加和外移得到:

对m求偏导数得:

令关于c的偏导数等于0,求解:

从上求解得到的值可以看出,上面式子中存在两个平均值,因此该等式也可以改写成:

令关于m的偏导数等于0,求解:
  关于m的偏导数依赖于c,又因为已经求得了关于c偏导数的解,因此把求关于c偏导数的解代数关于m的偏导数式子得:


合并含有m的项化简:


求解:


为了简化式子,再定义出:

示例:

这里使用上面得到的最小二乘法公式对以下数据集进行线性拟合:

n x y xy x^2
1 2 4 8 4
2 6 8 48 36
3 9 12 108 81
4 13 21 273 169
平均值 7.5 11.25 109.25 72.5

数据点分布情况:

根据上诉最小二乘法公式计算出当前数据集最优:m与c

c = 11.25 - 1.5307 * 7.5 = -0.23

最后得出当前线性函数为:

y = 1.5307x - 0.23

计算出每个节点的预测值:

y1 = 1.5307 * 2 - 0.23 = 2.83
y2 = 1.5307 * 6 - 0.23 = 8.9542
y3 = 1.5307 * 9 - 0.23 = 13.5463
y4 = 1.5307 * 13- 0.23 = 19.6691

拟合结果:

参考资料:
https://zh.wikipedia.org/zh/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
a first course in machine learning

文章首发地址:Solinx
http://www.solinx.co/archives/648

时间: 2024-10-26 06:17:14

线性回归——最小二乘法(一)的相关文章

线性回归——最小二乘法(二)

上篇文章中介绍了单变量线性回归,为什么说时单变量呢,因为它只有单个特征,其实在很多场景中只有单各特征时远远不够的,当存在多个特征时,我们再使用之前的方法来求特征系数时是非常麻烦的,需要一个特征系数一个偏导式,而却最要命的时特性的增长时及其迅猛的,几十.几百.几千-- 单变量线性回归:多变量线性回归: 所以从这里我们开始将介绍线性回归的另一种更方便求解多变量线性回归的方式:最小二乘法矩阵形式: 模型变换 线性回归的标量形式: 这里把上诉式子中的系数m与误差c转换为向量(为了统一从下面开始使用表示c

机器学习--线性回归 最小二乘法

机器学习第1天 欢迎转载,请标明出处(http://blog.csdn.net/tonyshengtan),尊重劳动,尊重知识,欢迎讨论. 开篇废话 话说在高中数学统计的部分就有学过最小二乘法,现在想想,当时没有严格的推倒和实用背景,单纯的给了公式然后做应用题,不过也印证了乔布斯的一句话,不管你现在在做什么,你都无法预料到这对你以后是否有影响,你只能看到过去,无法看到未来. 最小二乘法(Least squares) 为什么叫最小二乘法,首先最小明确的告诉你,俺们求出来的是全局的最值,不是极值,就

线性回归——最小二乘法_实例(二)

上篇文章介绍了最小二乘法矩阵形式的理论与证明.计算过程,这里使用程序代码的方式计算出矩阵形式的解,并给出线性拟合: Octave代码 clear all;close all; % 拟合的数据集 x = [1,2;1,6;1,9;1,13]; y = [4;8;12;21]; % 根据公式 w = (x'*x)^-1 * x' * y % 与上篇文章一样一步步分解如下,其实这里可以不用分解,上篇文章分解时为了好计算 x_t =x'*x; %% (x'*x)^-1或inv(x' * x) x_i =

线性回归——最小二乘法_实例(一)

上篇文章介绍了最小二乘法的理论与证明.计算过程,这里给出两个最小二乘法的计算程序代码: Octave代码 clear all;close all; % 拟合的数据集 x = [2;6;9;13]; y = [4;8;12;21]; % 数据长度 N = length(x); % 3 %% 计算x平均值 m_x = sum(x)/N; %% % 计算t的平均值 m_t = sum(y)/N; %% % 计算t*x的平均值 m_xt = sum(y.*x)/N; %% % 计算x平方的平均值 m_x

python机器学习之线性回归

#线性回归最小二乘法 from sklearn import linear_model import sys import tushare as ts import matplotlib.pyplot as plt import pandas as pd import sklearn.metrics as sm sh=ts.get_hist_data('sh').sort_index()#获取上证指数每日数据,并按时间索引排序 pf=ts.get_hist_data('600000').sort

逻辑回归模型分析

本文主要分两个部分进行讨论,首先介绍最简单的线性回归模型:接着对逻辑回归进行分析 1.线性回归-->最小二乘法 对于线性回归问题,我们根据自变量的个数将其分为一元线性回归和多元线性回归,本部分先详细介绍一元线性模型,然后将其推广到多元线性模型 1)一元线性模型 当输入只有一个自变量时,我们称之为一元线性模型.(最简单) 设样本集合为:(xi,yi),i=1,2,…,m. 目标为:在平面上找出一条线,使得样本点尽可能多的在这条直线上. 设一元线性模型为:h(x)=ax+b,输出误差为:Si=yi-

[Example of Sklearn] - Example

reference : http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码数据集(digits datasets) 学习和预测 分类 K最近邻(KNN)分类器 训练集和测试集 分类支持向量机(SVMs) 线性支持向量机 使用核 聚类:将观测值聚合 k均值聚类 应用到图像压缩 用主成分分析降维 将一切放在一起:人脸识别 线性模型:从回归到稀疏 稀疏模型 同

【基础知识三】线性模型

一.基本形式 通过属性的线性组合来进行预测, 许多非线性模型可以在线性模型的基础上,引入层级结构或高维映射而得. 二.线性回归 最小二乘法:求解ω和b: 多元线性回归:样本由多个属性描述,即x为多维向量: 若矩阵不满秩产生多个解,解决方法:引入正则化项: 三.对数/逻辑线性回归 广义线性模型: g(.)条件:连续且充分光滑(单调可微) 为了预测值连续,引入Sigmoid函数 得到, 极大似然估计:求解ω和b 四.线性判别分析LDA 也叫"Fisher判别" 将样例投影到一条直线上,使同

计算机图形学(二)输出图元_6_OpenGL曲线函数_5_其他曲线

其他曲线 许多曲线函数在对象建模.动画轨迹的描述.数据和函数的图形化以及其他图形应用中是十分有用的.常见的曲线包括圆锥曲线.三角和指数函数.概率分布.通用多项式和样条函数.这些曲线的显示可采用类似于前面讨论的圆和椭圆函数来生成.沿曲线轨迹的位置可直接从表达式y =f (x)或参数方程中得到.此外,还可以使用增量中点算法绘制用隐式函数f(x,y) = 0描述的曲线. 显示一指定的曲线函数的简单方法是使用直线段来逼近曲线.这时,对于要得到沿曲线轨迹的等距线段的端点位置,则可以使用参数表达式.也可以按