本文主要是介绍Linear Regression学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
回归主要分为线性回归和逻辑回归。线性回归主要解决连续值预测问题,逻辑回归主要解决分类问题。但逻辑回归输出的是属于某一类的概率,因此常被用来进行排序。
1. 线性回归的原理
假定输入 χ 和输出 y 之间有线性相关关系,线性回归就是学习一个映射
然后对于给定的样本 x ,预测其输出:
现假定 x=(x0,x1…xn) ,则预测值为:
在特征 x 中加上一维
2. 损失函数
为了找到最好的权重参数 θ ,令 X 到
其中
为了评价模型拟合的效果,对于一个特定的数据集 (X,y) 定义一个损失函数来计算预测值与真实值之间的误差:
即总体误差是所有样本点误差平方和的均值,其中 (x(i),y(i)) 表示的是第 i 个样本点。现在给定数据集
3. 梯度下降
假设有一堆样本点 (x1,y1)(x2,y2)…(xn,yn) ,定义函数 hθ(x) 来模拟 y 。假设最后的拟合函数为
- 首先随机初始化 θ ,例如令 θ⃗ =0⃗ 。
不断变化 θ⃗ 的值来改变 J(θ) 的值,使其越来越小。改变的规则为:
θi:=θi−α∂J(θ)∂θi
∂J(θ)∂θi=∑j=1m(hθ(x(j))−y(j))x(j)i
因此对于所有的 m 个样本点求和,有:
θi:=θi−α∑j=1m[(hθ(x(j))−y(j))⋅x(j)i]
其中 x(j),y(j) 表示第 j 个样本点,x(j) 是一个向量, x(j)i 表示第 j 个样本点x(j) 的第 i 个分量,是一个标量。不断重复上述过程,直到最后收敛(例如最后发现损失函数
Jθ(X) 基本不再变化)。
整个过程当中, θ,hθ(x),Jθ(X) 都会不断变化,但是 hθ(x) 会越来越接近 y ,因此
4. 利用最小二乘拟合的方法来计算 θ
为了计算函数 Jθ(x) 在指定的计算步骤内达到的最小值,每次我们都沿当前点下降最快的方向移动。最快的方向即梯度方向:
假设 z 是一个向量,
故
则
要求梯度,令
求得
最终 θ⃗ 是一个 m×1 的向量。这样对于简单的线性回归问题,就不需要用前面的迭代方法啦。
如果 xTx 是不可逆的,说明 x <script type="math/tex" id="MathJax-Element-67">x</script>当中有特征冗余,需要去掉某些特征。
这篇关于Linear Regression学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!