赞
踩
线性模型很大程度上是非线性网络,深度学习的基础~
主要有三个内容
1 线性回归(又分为一元线性回归和多元线性回归)
2 对数几率回归(也称为逻辑回归)
3 线性判别分析
线性回归的原理很简单,数学表达式为
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 ——对数线性回归,所以线性模型也不一定严格线性哦!
当然,我们通过一个生活中的例子来形象地理解线性回归。
假设你想要预测不同地区的房屋价格。你手头有一些历史数据,包括房屋的大小(平方米)、卧室数量、浴室数量以及它们的售价。我们的目标是建立一个模型,以便在给定新房屋的特征时,能够预测其可能的市场售价。
数据准备
首先,你需要收集数据。这些数据可能包括:
建立模型
接下来,你可以使用多元线性回归来建立一个模型。这个模型可能会是这样的:
[ 售价 = + ω 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是斜率,可以直观理解为表示房屋大小、卧室数量和浴室数量每增加一个单位,房屋售价平均增加的金额,同时这三个斜率里面越大的就越重要~
模型优化拟合
通过最小二乘法,你可以找到最佳的值,使得模型预测的售价与实际售价之间的误差最小。
逻辑回归,又叫对数几率回归(注意,这里虽然叫回归(往往是连续型),但是是解决分类的离散型问题)
怎么实现的?
就是在线性回归的基础上,加一个单调可微函数将输出 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
优化用极大似然进行优化
让我们通过一个生动的例子来理解对数几率回归:假设你是一家银行的风险管理分析师,你的任务是评估贷款申请者违约的风险。在这个问题中,你的目标是预测申请者是否会违约(是或否),这是一个典型的二分类问题。
数据收集
首先,你需要收集贷款申请者的数据,这些数据可能包括:
模型建立
接下来,你可以使用对数几率回归来建立一个模型。这个模型会尝试学习每个特征与违约概率之间的关系。模型的形式可能是这样的:
$ 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%),银行可能会决定拒绝贷款申请,以降低风险。
线性判别分析(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} $
其中:
LDA通过求解这个目标函数来找到最佳的权重向量( W )。
下面是一个简化的例子来说明LDA如何进行二分类:
假设我们有一个数据集,其中包含两个类别的样本,每个样本有两个特征(维度)。我们的目标是找到一个直线(在二维空间中)来区分这两个类别。
数据准备
假设我们有以下四个样本点,其中类别标签为1和-1:
(1, 2), 类别: 1
(2, 3), 类别: 1
(4, 5), 类别: -1
(5, 6), 类别: -1
模型决策
计算类内和类间散度矩阵: LDA需要计算每个类别的均值向量(类中心),以及类内散度矩阵(类内协方差)和类间散度矩阵(类间协方差)。
求解LDA方程: 使用类间散度矩阵和类内散度矩阵,我们可以构建一个LDA方程,然后求解这个方程以找到最佳的投影方向(即判别函数的权重)。
应用判别函数: 一旦我们得到了判别函数的权重,我们就可以将其应用于新的样本点,通过计算加权特征值来预测其类别。
分类决策: 对于新的样本点,我们将其特征值代入判别函数,然后根据函数值的正负来决定其类别。如果判别函数的值大于0,我们将其分类为正类(例如类别1),否则为负类(例如类别-1)。
二分类问题是指将样本划分为两个类别的问题,而多分类问题则是指将样本划分为多个类别的问题。在处理多分类问题时,我们通常会将二分类算法进行扩展,以处理多个类别。其中,OvO(One-Versus-One)、OvR(One-Versus-Rest)和MvM(Many-Versus-Many)是三种常见的策略。
总之,OvO、OvR和MvM是处理多分类问题的三种常见策略。每种策略都有其优缺点,具体选择哪种策略取决于实际需求和问题特点。
当然,以下是对OvO、OvR和MvM策略的一些具体例子说明:
假设我们有一个数据集,其中包含三个类别:猫、狗和鸟。在OvO策略下,我们需要为每一对不同的类别训练一个二分类器。因此,我们将训练以下三个二分类器:
当我们有一个新的样本(例如,一只猫)时,我们会将其输入到这三个二分类器中进行预测。每个二分类器都会给出一个预测结果(例如,“是猫”或“不是猫”)。然后,我们通过投票来确定最终的类别。在这个例子中,由于有两个分类器预测样本是猫,而只有一个分类器预测样本不是猫,因此最终我们将样本分类为猫。
继续使用上面的三个类别的例子,在OvR策略下,我们将为每个类别训练一个二分类器:
当我们有一个新的样本时,例如一只猫,我们会将其输入到这三个二分类器中进行预测。每个二分类器都会给出一个预测结果,例如“是猫”或“不是猫”。我们选择预测概率最高的类别作为最终的类别。在这个例子中,如果“猫 vs 狗和鸟”的分类器给出了很高的预测概率,那么我们将样本分类为猫。
在MvM策略下,我们可以根据实际需求将多个类别组合成一个新的类别。例如,我们可以将猫和狗组合成一个新的类别“陆地动物”,然后将鸟作为另一个类别。这样,我们就只需要训练一个二分类器:“陆地动物” vs 鸟。
当我们有一个新的样本时,例如一只猫,我们会将其输入到这个二分类器中进行预测。分类器会给出两个预测结果:“是陆地动物”或“是鸟”。根据这个预测结果,我们可以将样本分类为猫(因为它属于“陆地动物”类别)。
需要注意的是,MvM策略的具体实现方式可以有很多变种,取决于如何组合类别以及如何选择训练哪些二分类器。上面的例子只是一种简单的示意,实际应用中可能会有更复杂和灵活的组合方式。
线性模型在处理分类任务时,可能会遇到类别不平衡问题。类别不平衡是指不同类别的训练样例数目相差很大,例如电力盗窃、银行的欺诈交易、罕见疾病识别等场景中,正常样本的数量往往远远大于异常样本的数量。这种情况下,传统的机器学习算法,包括线性模型,可能会偏向于数量多的类别,导致对数量少的类别的预测性能不佳。
具体来说,线性模型(如逻辑回归)在训练时,通常会通过最大化似然函数来求解参数。然而,当类别不平衡时,数量多的类别的样本会占据主导地位,使得模型在训练过程中更倾向于将这些样本分类正确,而忽略了对数量少的类别的分类性能。这就导致了模型的预测结果往往偏向于数量多的类别,对数量少的类别的识别能力下降,即所谓的“偏斜”现象。
为了解决类别不平衡问题,可以采取以下几种策略:
线性回归、对数几率回归(也称为逻辑回归)和线性判别分析(LDA)是统计学和机器学习中常用的三种预测模型,它们各自有不同的特点和应用场景。
线性回归(Linear Regression):
线性回归是一种连续性预测模型。线性回归优化方式是——找到一组参数,使得预测值和实际值之间的残差平方和最小,即最小二乘法。
对数几率回归(Logistic Regression):
对数几率回归是一种广义线性模型,是一种离散型分类模型。它通过逻辑函数(通常是Sigmoid函数)将线性回归的输出映射到0和1之间,这样就可以将其解释为概率。对数几率回归优化方式是——最大化观测样本的条件对数似然函数。它在处理分类问题,尤其是二分类问题时非常有用。
线性判别分析(Linear Discriminant Analysis, LDA):
线性判别分析是一种分类方法,它旨在找到一个线性组合的系数,使得不同类别之间的距离最大化,同时类内的数据尽可能紧凑。LDA假设不同类别的数据具有相同的协方差矩阵,这在实际应用中可能不总是成立。
总结:
这三种方法在数学形式上有一定的相似性,但它们的目标和应用场景有明显区别。在实际应用中,选择哪种方法取决于数据的特性和问题的需求。
机器学习之线性回归算法Linear Regression(python代码实现)_python linearregression-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。