「机器学习」线性回归

简介: 线性回归算法基本推导过程与正则化

Machine Learning-Linear Regression

线性回归基本推导过程

  • 基本的含义:一个样本,具有一个或者多个特征x(变量),一个预测值y(标签),研究x与y之间的线性关系。

例如下表中:根据工资以及年龄(特征),预测用户的贷款额度(标签)

工资$x_1$ 年龄$x_2$ 贷款额度y
4000 25 20000
800 30 70000
5000 28 35000
7500 33 50000
12000 40 85000

需要构造:

$$ y_{predict} = \theta_0x_0+ \theta_1x_1+\theta_2x_2\tag{1}=\theta^Tx $$

注:其中$x_0$值为1,代表常数项

使得对于对于任意i样本 $y^{(i)}_{predict}$ 与真实值$y^{(i)}$之间的误差越小越好,用数学表示,即:

$$ y^{(i)}_i = y^{(i)}_{predict} + \epsilon^{(i)}\tag{2} $$

需要假设误差项$ \epsilon^{(i)}$要符合标准正态分布,即满足期望是0,方差是$σ^2$
即:

$$ p(\epsilon^{(i)})= {1\over\sqrt{2\pi}\sigma}exp{(-{(\epsilon^{(i)})^2\over 2\sigma^2})}\tag{3} $$

将(1)式带入(2)式,再带入(3)式,对于任意i样本似然函数如下:

$$ L(\theta)_i= p(y^{(i)}|x^{(i)};\theta)=p(\epsilon^{(i)})= {1\over\sqrt{2\pi}\sigma}exp{(-{(y^{(i)}-\theta^Tx^{(i)})^2\over 2\sigma^2})} $$

解释:
似然函数是一种关于统计模型参数的函数。
给定输出y以及x时,参数$\theta$的概率「似然函数L(θ|y,x)」(在数值上)等于给定参数$\theta$的以及x后变量y的概率:L(θ|y,x)」=P(y|θ,x),我们希望似然函数越大越好,即预测值成为真实值的可能性越大。

对于m个样本而言,最大似然函数即为:

$$ L(\theta)= \Pi_{i=1}^{m}L(\theta)_i= \Pi_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta)= \Pi_{i=1}^{m}{1\over\sqrt{2\pi}\sigma}exp{(-{(y^{(i)}-\theta^Tx^{(i)})^2\over 2\sigma^2})} $$

对数变化,得到对数似然函数:

$$ \log L(\theta)=\log \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta ^{T}x^{(i)})^{2}}{2\sigma ^{2}}) $$

展开化简得:

$$ \log L(\theta)=m\log \frac{1}{\sqrt{2\lambda }\sigma }-\frac{1}{\sigma ^{2}}\cdot \frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2} $$

使得似然函数最大,即要求目标函数最小,此时目标函数为:

$$ \frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}\tag{4} $$

对(4)求偏导得(以下为最小二乘法):

$$ \theta(X^{T}X)-X^{T}y $$

令偏导数等于0,得:

$$ \theta =(X^{T}X)^{-1}X^{T}y $$

但是并不是所有的目标函数都可以这样求解,从而求得参数,往往需要用到另外一种方法,在这里,线性回归只是一种特例,求导较简单。机器学习往往需要告诉电脑需要朝着什么样的方向去学习。
对于目标函数

$$ \frac{1}{2m}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2} $$

随机梯度下降(SGD)

$\alpha$为学习率,随机采用一个样本进行迭代

$$ \theta_{j}=\theta _{j}+\alpha(y^{(i)}-\theta ^{T}x^{(i)})x_{j}^{i} $$

批量梯度下降(BATCH)

所有的样本来迭代

$$ \theta_{j}=\theta _{j}+\alpha \frac{1}{m}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})x_{j}^{i} $$

小批量梯度下降(MINI-BATCH)

部分样本来进行迭代

$$ \theta_{j}=\theta _{j}+\alpha \frac{1}{k}\sum_{i=1}^{k}(y^{(i)}-\theta ^{T}x^{(i)})x_{j}^{i} $$

防止过拟合 正则项

目标函数中加入对于参数项的惩罚,防止过拟合,提高模型的泛化能力。

  • Ridge回归 也叫岭回归 L2正则($\lambda \sum_{j=1}^{m}\theta _{j}^{2}$)

$$ J(\theta)=\frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}+\lambda \sum_{j=1}^{m}\theta _{j}^{2} $$

  • LASS0 L1 正则($\lambda \sum_{j=1}^{m}\left | \theta \right |$)

$$ J(\theta)=\frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}+\lambda \sum_{j=1}^{m}\left | \theta \right | $$

  • Elastic Net

$$ J(\theta)=\frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}+\lambda (P\sum_{j=1}^{m}\left | \theta \right |+(1-p)\sum_{j=1}^{m}\theta _{j}^{2}) $$

目录
相关文章
|
27天前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
|
2月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
8月前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
260 4
|
8月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
2月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的线性回归
【10月更文挑战第25天】本文将深入浅出地介绍线性回归模型,一个在机器学习领域中广泛使用的预测工具。我们将从理论出发,逐步引入代码示例,展示如何利用Python和scikit-learn库实现一个简单的线性回归模型。文章不仅适合初学者理解线性回归的基础概念,同时也为有一定基础的读者提供实践指导。
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
探索机器学习:从线性回归到深度学习
在这篇文章中,我们将一起踏上一场激动人心的旅程,穿越机器学习的广阔天地。我们将从最基本的线性回归开始,逐步深入到复杂的深度学习模型。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深入的理解。让我们一起探索这个充满无限可能的世界吧!
|
3月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!