引例:以房价和房屋面积作为训练集,学习如何预测房价
房屋面积 | 房价($1000) |
2104 | 460 |
1416 | 232 |
1534 | 315 |
852 | 178 |
- m代表训练集(样本)的数量
- x代表输入变量或者自变量(特征), 这里代表房屋面积
- y代表输出变量或者因变量(标签),这里代表房价
- (x, y)表示一个训练样本,(x(i), y(i))表示第i个训练样本
单变量线性回归算法的实现过程
- 训练集(房屋面积x, 房价y)-->学习算法-->h(x)假设函数
- 房屋面积(x)-->h(x)假设函数-->预测房价(y)
- 假设函数:h(x) =θ1x +θ0 (θ1权重,θ0偏差)
单变量线性回归最常用的损失函数:均方误差MSE
假设函数和房屋价格的实际价格的差值,差值越小损失越小
均方误差MSE = ∑(h(x)-y)2/m
= ∑(θ1x+θ0-y)2/m
= J(θ1, θ0) 【x∈(1, m)】
要使MSE最小,即求一组(θ1, θ0)使J(θ1, θ0)最小【θ1代表权重,θ0代表偏差(y抽截距)】
假设函数和损失函数
- h(x) = θ1x + θ0 【x是输入变量】
- J(θ1, θ0) = ∑(θ1x+θ0-y)2/m 【θ1, θ0是输入变量】
梯度下降Gradient descent
梯度下降是求J(θ1, θ0)函数对最小值:初始化任意(θ1, θ0),梯度下降慢慢改变(θ1, θ0)的值,使得J(θ1, θ0)取得最小值或者局部最小值
梯度下降慢慢改变(θ1, θ0)是按照:θ1:=θ1-aJ(θ1, θ0)', 当J(θ1, θ0)'=0时, 下一个w1不变,即找到最小值或者局部最小值
【 :=代表赋值,a代表学习速率learning rate , J(θ1, θ0)'代表函数J(θ1, θ0)在点(θ1, θ0)的导数】
学习速率learning rate
学习速率过小
学习速率过大
线性回归算法实现
结合假函数h(x) = θ1x+θ0、损失函数J(θ1, θ0) = ∑(θ1x+θ0-y)2/m、梯度下降函数θ1:=θ1-aJ(θ1, θ0)',得出线性回归算法:
- θ1:= θ1-2a∑(θ1x+θ0-y)/m
- θ0 := θ0-2a∑(θ1x+θ0-y)/m
【θ1和θ0同时更新】