【机器学习】 第二章 线性模型

目录

一、什么是线性回归?

1.1定义

1.2分类

二、线性回归的数学原理

2.1数学模型

2.2 假设函数(Hypothesis function)

2.3成本函数(Cost function)

三、实现线性回归

3.1数据预处理

3.1.1 数据集的划分

3.1.2特征缩放(Feature Scaling)

3.2选择优化算法

梯度下降法(Gradient Descent)

3.3模型评估与优化


一、什么是线性回归?

1.1定义

线性回归是一种用于建立变量之间线性关系的统计模型,通常用于预测或解释因变量(目标变量)与一个或多个自变量(特征)之间的关系。
简单说,线性回归尝试找到自变量和因变量之间的最佳线性关系,即找到一条直线(二维空间)或超平面(多维空间),使得这条直线或超平面能够最好地拟合数据点。

1.2分类

  • 单变量线性回归
  • 多变量线性回归

二、线性回归的数学原理

注:以下内容以单变量线性回归为例进行分析

2.1数学模型

y = \beta_0 x +\beta_1+ \epsilon

其中

  • y 是目标变量
  • x 是特征变量(输入变量)
  • \epsilon 是误差项,表示模型无法完全解释的因素

2.2 假设函数(Hypothesis function)

假设函数 表示了模型对目标变量 ( y ) 和特征变量 ( x ) 之间关系的估计

h_\theta(x) = \theta_0 + \theta_1 x

2.3成本函数(Cost function)

成本函数用于衡量模型预测值与实际观测值之间的差异。

对于线性回归,通常选择均方误差(Mean Squared Error,MSE)作为成本函数:

J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2

其中

  • m 是训练样本的数量
  • (x^{(i)}, y^{(i)}) 是第 i 个样本  

三、实现线性回归

3.1数据预处理

3.1.1 数据集的划分

按照一定比例,将数据集划分为训练集和测试集。

3.1.2特征缩放(Feature Scaling)

如果特征在不同的尺度上,可以进行特征缩放

常用的方法有标准化(Standardization)和归一化(Normalization)

  • 标准化(Standardization)

标准化是将数据按其特征的均值(mean)和标准差(standard deviation)进行缩放,使得特征的取值符合标准正态分布(即均值为0,标准差为1),并且可以使不同特征具有可比性。

x_{\text{std}} = \frac{x - \text{mean}(x)}{\text{std}(x)}

    其中

  • \text{mean}(x) = \frac{1}{m} \sum_{i=1}^{m} x_i(m指样本数量)
  • \text{std}(x) = \sqrt{\frac{1}{m} \sum_{i=1}^{m} (x_i - \text{mean}(x))^2}(m指样本数量)
  • 归一化(Normalization)

归一化的目的是将特征缩放到一个固定的范围,通常是[0, 1]或者[-1, 1]之间。

常见的归一化方法有 最小-最大归一化,小数定标标准化

下面给出最小-最大归一化简单介绍:

x_{\text{norm}} = \frac{x - \text{min}(x)}{\text{max}(x) - \text{min}(x)}

其中

  • x 是原始特征数据
  • \text{min}(x) 是特征 x 的最小值
  •  \text{max}(x) )是特征 x  的最大值

如何选择?选择标准化 or 归一化?

  • 标准化 更适合处理那些特征的分布不明确,或者存在异常值的情况。例如,某些特征可能服从正态分布或者近似正态分布。

  • 归一化 更适合处理那些特征的取值范围较为离散,需要映射到一个统一的区间范围进行比较的情况。例如,房屋占地的范围通常是[100, 1000],需要归一化到(0, 1]范围内。

3.2选择优化算法

梯度下降法(Gradient Descent)

梯度下降法是一种常用的优化算法,用于最小化成本函数。

成本函数:J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2

目标:寻找合适的\theta_0, \theta_1使得成本函数达到极小值

方式:

目标函数:J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (y^{(i)}-h_\theta(x^{(i)}) )^2

  • 批量梯度下降

  \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{i}

  \theta_j = \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta)   注:\alpha是学习率,用来控制每次参数更新的步长

优点:易找到最优解

缺点:每次都考虑所有样本,实现速度慢

  • 随机梯度下降 

 \theta_j = \theta_j+(y^{(i)}-h_\theta(x^{(i)})x_j^{i}   

优点:每次找一个样本,迭代速度快
缺点:不确定大,不一定每次都朝着收敛的方向

  • 小批量梯度下降

\theta = \theta - \alpha \cdot \frac{1}{m'+1} \sum_{i=k}^{k+m'} (h_\theta(x^{(i)}) - y^{(i)})x_j^{i}注:\alpha是学习率,用来控制每次参数更新的步长

优点:每次更新选择一小部分数据来算,计算效率高

缺点:可能陷入局部最优

3.3模型评估与优化

  • 使用训练集数据,通过选择合适的优化算法来训练线性回归模型。
  • 根据训练集上的成本函数表现,调整学习率 ,以优化模型性能。
  • 计算均方误差、决定系数等评估模型性能

  • 25
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值