文章目录
线性模型我们主要讲解几个经典的线性模型
线性模型很大程度上是非线性网络,深度学习的基础~
主要有三个内容
-
1 线性回归(又分为一元线性回归和多元线性回归)
-
2 对数几率回归(也称为逻辑回归)
-
3 线性判别分析
1 经典线性模型
2.1 线性回归——线性模型解决回归问题(连续型)
2.1.1 基本原理
线性回归的原理很简单,数学表达式为
f ( x ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + . . . w n x n f(x)=w_1x_1+w_2x_2+w_3x_3+...w_nx_n f(x)=w1x1+w2x2+w3x3+...wnxn(1)
其中,x是特征, x 1 , x 2 . . . x n x_1,x_2...x_n x1,x2...xn代表n个属性,每个属性前面有一个系数 w i w_i wi
优化的时候我们最小化 f ( x ) f(x) f(x)和真实标记 y i y_i yi的差的平方(即最小二乘法)=》 m i n ( f ( x i ) − y i ) 2 min(f(x_i)-y_i)^2 min(f(xi)−yi)2
我们见到的(1)往往是一个矩阵形式的运算
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
如果我们假设f(x)输出是在指数尺度上变换的,那么我们可以得到
l n f ( x ) = w T x + b lnf(x)=w^Tx+b lnf(x)=wTx+b ——对数线性回归,所以线性模型也不一定严格线性哦!
当然,我们通过一个生活中的例子来形象地理解线性回归。
2.1.2 使用示例–房价预测
假设你想要预测不同地区的房屋价格。你手头有一些历史数据,包括房屋的大小(平方米)、卧室数量、浴室数量以及它们的售价。我们的目标是建立一个模型,以便在给定新房屋的特征时,能够预测其可能的市场售价。
数据准备
首先,你需要收集数据。这些数据可能包括:
- 自变量(解释变量):房屋的大小、卧室数量、浴室数量。
- 因变量(响应变量):房屋的售价。
建立模型
接下来,你可以使用多元线性回归来建立一个模型。这个模型可能会是这样的:
[ 售价 = + ω 1 × 房屋大小 + ω 2 × 卧室数量 + ω 3 × 浴室数量 + b ] [ \text{售价} = + \omega_1\times \text{房屋大小} + \omega_2 \times \text{卧室数量} + \omega_3 \times \text{浴室数量} + b ] [售价=+ω1×房屋大小+ω2×卧室数量+ω3×浴室数量+b]
在这个模型中, b b b是截距,表示在没有卧室和浴室的情况下的基准价格。 ω 1 , ω 2 , ω 3 \omega_1,\omega_2,\omega_3 ω1,ω2,ω3是斜率,可以直观理解为表示房屋大小、卧室数量和浴室数量每增加一个单位,房屋售价平均增加的金额,同时这三个斜率里面越大的就越重要~
模型优化拟合
通过最小二乘法,你可以找到最佳的值,使得模型预测的售价与实际售价之间的误差最小。
2.2 逻辑回归——线性模型解决二分类问题(离散型)
2.2.1 基本原理
逻辑回归,又叫对数几率回归(注意,这里虽然叫回归(往往是连续型),但是是解决分类的离散型问题)
怎么实现的?
就是在线性回归的基础上,加一个单调可微函数将输出 f ( x ) f(x) f(x) 变换为真实值预测类别z,加的往往是一个对数几率函数
z = 1 1 + e f ( x ) z=\frac{1}{1+e^{f(x)}} z=1+ef(x)1
优化用极大似然进行优化
2.2.2 使用示例——是否违约判断
让我们通过一个生动的例子来理解对数几率回归:假设你是一家银行的风险管理分析师,你的任务是评估贷款申请者违约的风险。在这个问题中,你的目标是预测申请者是否会违约(是或否),这是一个典型的二分类问题。
数据收集
首先,你需要收集贷款申请者的数据,这些数据可能包括:
- 年龄
- 职业
- 信用分数
- 月收入
- 负债比例(总负债/总收入)
- 贷款金额
- 房产情况(是否有房产)
- 以往的信用记录(是否有违约历史)
模型建立
接下来,你可以使用对数几率回归来建立一个模型。这个模型会尝试学习每个特征与违约概率之间的关系。模型的形式可能是这样的:
$ P(\text{违约} | \text{特征}) = \frac{1}{1 + e^{-(b + \omega \times \text{年龄} + \omega_2 \times \text{职业} + \ldots + \omega_n \times \text{负债比例})}}$
在这个模型中,$( P(\text{违约} | \text{特征}) $ 是给定申请者特征的情况下违约的概率,而 ( b , ω 1 , … , ω n ) ( b, \omega_1, \ldots, \omega_n ) (b,ω1,…,ωn) 是模型参数,它们代表了每个特征对违约概率的影响。
模型训练
使用银行的历史贷款数据(包括申请者的特征和违约结果),你可以训练对数几率回归模型。模型会尝试找到最佳的参数值,使得预测的违约概率与实际违约情况尽可能一致。用极大似然进行优化
应用模型
现在,当新的贷款申请到来时,你可以使用训练好的模型来评估每个申请者的违约概率。如果模型预测的违约概率超过了某个阈值(比如70%),银行可能会决定拒绝贷款申请,以降低风险。
2.3 线性判别分析——线性模型解决二分类问题(离散型)
2.3.1 基本原理
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的统计学方法,用于分类和降维。它的目标是找到一个线性组合的系数,使得不同类别之间的距离最大化,同时类内的数据尽可能紧凑
LDA通过最大化类间散布(类间方差)与类内散布(类内方差)的比值来寻找最佳的线性组合。这个比值被称为费舍尔准则(Fisher’s Criterion)。
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的统计学方法,用于分类和降维。它的目标是找到一个线性组合的系数,使得不同类别之间的距离最大化,同时类内的数据尽可能紧凑。LDA通常用于多分类问题,并且是一种监督学习算法。
LDA的优化主要 通过最大化类间散布(类间方差)与类内散布(类内方差)的比值来寻找最佳的线性组合。这个比值被称为费舍尔准则(Fisher’s Criterion)。
LDA的目标函数可以表示为:
$ J(W) = \frac{W^T(S_B - S_W)W}{W^T(S_W)W} $
其中:
- ( W ) 是线性判别函数的权重向量。
- ( S_B ) 是类间散布矩阵。
- ( S_W ) 是类内散布矩阵。
LDA通过求解这个目标函数来找到最佳的权重向量( W )。
2.3.2 使用示例–正负类判断
下面是一个简化的例子来说明LDA如何进行二分类:
假设我们有一个数据集,其中包含两个类别的样本,每个样本有两个特征(维度)。我们的目标是找到一个直线(在二维空间中)来区分这两个类别。
数据准备
假设我们有以下四个样本点,其中类别标签为1和-1:
(1, 2), 类别: 1
(2, 3), 类别: 1
(4, 5), 类别: -1
(5, 6), 类别: -1
模型决策
计算类内和类间散度矩阵: LDA需要计算每个类别的均值向量(类中心),以及类内散度矩阵(类内协方差)和类间散度矩阵(类间协方差)。
求解LDA方程: 使用类间散度矩阵和类内散度矩阵,我们可以构建一个LDA方程,然后求解这个方程以找到最佳的投影方向(即判别函数的权重)。
应用判别函数: 一旦我们得到了判别函数的权重,我们就可以将其应用于新的样本点,通过计算加权特征值来预测其类别。
分类决策: 对于新的样本点,我们将其特征值代入判别函数,然后根据函数值的正负来决定其类别。如果判别函数的值大于0,我们将其分类为正类(例如类别1),否则为负类(例如类别-1)。
2 线性模型拓展——二分类迁移到多分类
2.1 原理
二分类问题是指将样本划分为两个类别的问题,而多分类问题则是指将样本划分为多个类别的问题。在处理多分类问题时,我们通常会将二分类算法进行扩展,以处理多个类别。其中,OvO(One-Versus-One)、OvR(One-Versus-Rest)和MvM(Many-Versus-Many)是三种常见的策略。
- OvO(One-Versus-One):
OvO策略的基本思想是为每对不同的类别训练一个二分类器。假设有N个类别,那么需要训练的二分类器数量为 C ( N , 2 ) = N ∗ ( N − 1 ) / 2 C(N, 2) = N*(N-1)/2 C(N,2)=N∗(N−1)/2,其中C(N, 2)表示从N个类别中选取2个类别的组合数。对于一个新的样本,将其输入到所有二分类器中进行预测,得到N*(N-1)/2个预测结果。然后,根据这些预测结果,通过投票或者其他策略确定最终的类别。OvO策略的优点是训练简单,因为每个二分类器只涉及两个类别的样本。但是,当类别数量很多时,需要训练的二分类器数量会急剧增加,导致计算量大且存储成本高。 - OvR(One-Versus-Rest):
OvR策略的基本思想是为每个类别训练一个二分类器,将该类别作为正类,其他所有类别作为负类。对于N个类别,需要训练N个二分类器。对于一个新的样本,将其输入到所有二分类器中进行预测,得到N个预测结果。然后,选择预测概率最高的类别作为最终的类别。OvR策略的优点是只需训练N个二分类器,相对于OvO策略来说计算量较小。但是,当类别之间存在不平衡时,负类样本数量过多可能导致分类器偏向于负类,从而影响分类性能。 - MvM(Many-Versus-Many):
MvM策略是OvO和OvR的折中方案,旨在减少需要训练的二分类器数量。MvM策略的基本思想是将多个类别组合成一个新的类别,然后为这些新的类别训练二分类器。具体的组合方式可以根据实际情况进行选择,例如基于类别之间的相似性进行组合。MvM策略的优点是可以根据实际需求调整二分类器的数量,以平衡计算量和分类性能。然而,如何选择合适的组合方式以及如何确定组合的数量是MvM策略需要解决的关键问题。
总之,OvO、OvR和MvM是处理多分类问题的三种常见策略。每种策略都有其优缺点,具体选择哪种策略取决于实际需求和问题特点。
2.2 示例
当然,以下是对OvO、OvR和MvM策略的一些具体例子说明:
- OvO(One-Versus-One)
假设我们有一个数据集,其中包含三个类别:猫、狗和鸟。在OvO策略下,我们需要为每一对不同的类别训练一个二分类器。因此,我们将训练以下三个二分类器:
- 猫 vs 狗
- 猫 vs 鸟
- 狗 vs 鸟
当我们有一个新的样本(例如,一只猫)时,我们会将其输入到这三个二分类器中进行预测。每个二分类器都会给出一个预测结果(例如,“是猫”或“不是猫”)。然后,我们通过投票来确定最终的类别。在这个例子中,由于有两个分类器预测样本是猫,而只有一个分类器预测样本不是猫,因此最终我们将样本分类为猫。
- OvR(One-Versus-Rest)
继续使用上面的三个类别的例子,在OvR策略下,我们将为每个类别训练一个二分类器:
- 猫 vs 狗和鸟
- 狗 vs 猫和鸟
- 鸟 vs 狗和猫
当我们有一个新的样本时,例如一只猫,我们会将其输入到这三个二分类器中进行预测。每个二分类器都会给出一个预测结果,例如“是猫”或“不是猫”。我们选择预测概率最高的类别作为最终的类别。在这个例子中,如果“猫 vs 狗和鸟”的分类器给出了很高的预测概率,那么我们将样本分类为猫。
- MvM(Many-Versus-Many)
在MvM策略下,我们可以根据实际需求将多个类别组合成一个新的类别。例如,我们可以将猫和狗组合成一个新的类别“陆地动物”,然后将鸟作为另一个类别。这样,我们就只需要训练一个二分类器:“陆地动物” vs 鸟。
当我们有一个新的样本时,例如一只猫,我们会将其输入到这个二分类器中进行预测。分类器会给出两个预测结果:“是陆地动物”或“是鸟”。根据这个预测结果,我们可以将样本分类为猫(因为它属于“陆地动物”类别)。
需要注意的是,MvM策略的具体实现方式可以有很多变种,取决于如何组合类别以及如何选择训练哪些二分类器。上面的例子只是一种简单的示意,实际应用中可能会有更复杂和灵活的组合方式。
3 线性模型可能遇到的问题
线性模型在处理分类任务时,可能会遇到类别不平衡问题。类别不平衡是指不同类别的训练样例数目相差很大,例如电力盗窃、银行的欺诈交易、罕见疾病识别等场景中,正常样本的数量往往远远大于异常样本的数量。这种情况下,传统的机器学习算法,包括线性模型,可能会偏向于数量多的类别,导致对数量少的类别的预测性能不佳。
具体来说,线性模型(如逻辑回归)在训练时,通常会通过最大化似然函数来求解参数。然而,当类别不平衡时,数量多的类别的样本会占据主导地位,使得模型在训练过程中更倾向于将这些样本分类正确,而忽略了对数量少的类别的分类性能。这就导致了模型的预测结果往往偏向于数量多的类别,对数量少的类别的识别能力下降,即所谓的“偏斜”现象。
为了解决类别不平衡问题,可以采取以下几种策略:
- 重采样:通过对数量多的类别进行欠采样(undersampling)或对数量少的类别进行过采样(oversampling)来调整样本的分布,使得不同类别的样本数量接近平衡。需要注意的是,过采样可能会导致模型过拟合,因此需要对生成的额外样本进行适当的处理,如SMOTE算法通过插值生成额外的样本。
- 调整权重:在训练过程中,给数量少的类别赋予更高的权重,使得模型在训练时更加关注这些类别。这样可以在一定程度上缓解类别不平衡问题。
- 阈值移动:对于二分类任务,可以通过调整决策阈值来改变模型的预测结果。具体来说,可以将决策阈值向数量少的类别移动,使得模型更倾向于将这些样本分类为该类别。这种方法在类别不平衡问题较为严重时比较有效。
4 各个线性模型的比较
线性回归、对数几率回归(也称为逻辑回归)和线性判别分析(LDA)是统计学和机器学习中常用的三种预测模型,它们各自有不同的特点和应用场景。
-
线性回归(Linear Regression):
线性回归是一种连续性预测模型。线性回归优化方式是——找到一组参数,使得预测值和实际值之间的残差平方和最小,即最小二乘法。 -
对数几率回归(Logistic Regression):
对数几率回归是一种广义线性模型,是一种离散型分类模型。它通过逻辑函数(通常是Sigmoid函数)将线性回归的输出映射到0和1之间,这样就可以将其解释为概率。对数几率回归优化方式是——最大化观测样本的条件对数似然函数。它在处理分类问题,尤其是二分类问题时非常有用。 -
线性判别分析(Linear Discriminant Analysis, LDA):
线性判别分析是一种分类方法,它旨在找到一个线性组合的系数,使得不同类别之间的距离最大化,同时类内的数据尽可能紧凑。LDA假设不同类别的数据具有相同的协方差矩阵,这在实际应用中可能不总是成立。
总结:
- 线性回归用于预测连续值,关注最小化误差。
- 对数几率回归用于分类问题,关注最大化似然函数。
- 线性判别分析用于分类问题,关注类别间距离最大化和类内紧凑性。
这三种方法在数学形式上有一定的相似性,但它们的目标和应用场景有明显区别。在实际应用中,选择哪种方法取决于数据的特性和问题的需求。
机器学习之线性回归算法Linear Regression(python代码实现)_python linearregression-CSDN博客