机器学习系列06——线性回归

本文介绍线性回归的基本原理及其应用实例,包括如何利用梯度下降法寻找最佳拟合直线,同时讨论了损失函数的概念及最小二乘法。
  1. 线性回归(linear regression

    1. 回归(regression)与梯度下降(gradient descend)

回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等。

  1. 线性回归定义——房屋售价预测系统

做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积、房间的数量(几室几厅)、地段、朝向等等,这些影响房屋价值的变量被称为特征(feature),feature在机器学习中是一个很重要的概念,有很多的论文专门探讨这个东西。在此处,为了简单,假设我们的房屋就是一个变量影响的,就是房屋的面积。

假设有一个房屋销售的数据如下:

面积(m^2) 销售价钱(万元)

123 250

150 320

87 160

102 220

… …

我们可以做出一个图,x轴是房屋的面积。y轴是房屋的售价,如下:

如果来了一个新的面积,假设在销售价钱的记录中没有的,我们怎么办呢?

我们可以用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:

绿色的点就是我们想要预测的点。

首先给出一些概念和常用的符号,在不同的机器学习书籍中可能有一定的差别。

房屋销售记录表 - 训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为x

房屋销售价钱 - 输出数据,一般称为y

拟合的函数(或者称为假设或者模型),一般写做 y = h(x)

训练数据的条目数(#training set), 一条训练数据是由一对输入数据和输出数据组成的

输入数据的维度(特征的个数,#features),n

下面是一个典型的机器学习的过程,首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型。就如同上面的线性回归函数。

我们用X1,X2..Xn 去描述feature里面的分量,比如x1=房间的面积,x2=房间的朝向,等等,我们可以做出一个估计函数:

θ在这儿称为参数,在这儿的意思是调整feature中每个分量的影响力,就是到底是房屋的面积更重要还是房屋的地段更重要。为了如果我们令X0 = 1,就可以用向量的方式来表示了:

我们程序也需要一个机制去评估我们θ是否比较好,所以说需要对我们做出的h函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function),描述h函数不好的程度,在下面,我们称这个函数为J函数

在这儿我们可以做出下面的一个错误函数:

这个错误估计函数是去对x(i)的估计值与真实值y(i)差的平方和作为错误估计函数,前面乘上的1/2是为了在求导的时候,这个系数就不见了。

如何调整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一种完全是数学描述的方法,在stanford机器学习开放课最后的部分会推导最小二乘法的公式的来源,这个来很多的机器学习和数学书上都可以找到,这里就不提最小二乘法,而谈谈梯度下降法。

  1. 最小二乘法

"最小二乘法"的核心就是保证所有数据偏差的平方和最小。("平方"的在古时侯的称谓为"二乘")

假设我们收集到一些战舰的长度与宽度数据

假如我们取前两个点(238,32.4)(152, 15.5)就可以得到两个方程

152*a+b=15.5

328*a+b=32.4

解这两个方程得a=0.197,b=-14.48

那样的话,这样的a,b是不是最优解呢?用专业的说法就是:a,b是不是模型的最优化参数?在回答这个问题之前,我们先解决另外一个问题:a,b满足什么条件才是最好的?答案是:保证所有数据偏差的平方和最小

  1. 直接求最优解

要求最优解,即要让预测的结果和真是的结果的误差和最小:

即求使得M最小的参数a和b;就是求这个方程的极小值。

那么利用求偏导数的方式求参数a和b:

令偏导数=0即可求出极值,也能求出参数a和b。

  1. 解析式求解最优解

定义矩阵X为(特征属性)样本矩阵,y为样本的观测结果向量

那么,

损失函数

求偏导数,并令之为0

最终结果:

 

  1. 梯度下降法

    1. 梯度

在向量微积分中,标量场的梯度是一个向量场。标量场中某一点的梯度指向该点标量场增长最快的方向。或者说,梯度的绝对值是长度为1的方向中函数最大的增长率,也就是其中代表方向导数。

    对于单变量的函数来说,梯度就是导数,线性函数就是指的线的斜率。

【理解】假设有一个房间,房间内所有点的温度由一个标量场给出,即点(x,y,z)的温度为,假设温度不随时间改变,然后,在房间的每一点,该点的梯度将显示变热最快的方向。梯度的大小将表示在该方向上变热的速度。

  1. 梯度的形式化定义

一个变量函数的梯度记为:

(其中表示向量微分算子)

在三维直角坐标系中表示为:

【例子】

函数的梯度为:

  1. 梯度下降法

梯度下降法,也称为最速下降法,是一种迭代的搜索方法。朝着"最快下降"的方向进行搜索。首先确定一个初始位置,然后沿着下降最快的方向调整,在若干次迭代后找到局部最小值。

  1. 梯度下降法缺点

  • 靠近极小值时速度减慢
  • 直线搜索可能出现一些问题
  • 可能会"之字型"地下降
  1. 梯度下降法使用的一般步骤

求代价函数的最小值:

步骤如下:

(1)随机初始化参数:

(2)迭代更新参数θ,直到J(θ)收敛到最小

其中,是步长(或称学习率)

 

对训练集中的某个单独的样本,代价函数

梯度求解:

是第i个样本对应的第j个特征

对训练集中的m个样本,代价函数

梯度求解:

求代价函数的最小值

步骤如下:

(1)随机初始化参数

(2)迭代更新参数θ,直到J(θ)收敛到最小:

  1. 随机梯度下降法

随机梯度下降法每次迭代只带入单个样本,迭代一次计算量为,当样本数综述m很大的时候,随机梯度下降法迭代一次的速度要远小于梯度下降法,随机梯度下降法迭代公式如下:

随机梯度下降法每次只带入一个样本进行计算,虽然每次迭代误差准则函数都不一定是向着全局最优方向,但是大的整体方向是向着全局最优方向的,最终得到的结果往往在全局最优解附近。

  1. 梯度下降法考虑因素

梯度下降法主要考虑两个方面问题:一是方向,二是步长。方向决定是否走在最优化的道路上,而步长决定了要多久才能到达最优的地方。

对于第一方面,就是求梯度,多元函数求相应变量的偏导数;对于第二方面,如果步子太少,则需要很长的时间才能达到目的地,如果步子过大,可能导致在目的地周围来回震荡,所以步长选择比较关键。

  1. 求最优解

1、如果优化函数存在解析解。例如我们求最值一般是对优化函数求导,找到导数为0的点。如果代价函数能简单求导,并且求导后为0的式子存在解析解,那么我们就可以直接得到最优的参数。

2、如果式子很难求导,例如函数里面存在隐含的变量或者变量相互间存在耦合,互相依赖的情况。或者求导后式子得不到解释解,或者未知参数的个数大于方程组的个数等。这时候使用迭代算法来一步一步找到最优解。

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值