深度学习500问——Chapter02:机器学习基础(1)

文章目录

前言

2.1 基本概念

2.1.1 大话理解机器学习本质

2.1.2 什么是神经网络

2.1.3 各种常见算法图示

2.1.4 计算图的导数计算

2.1.5 理解局部最优与全局最优

2.1.5 大数据与深度学习之间的关系

2.2 机器学习学习方式

2.2.1 监督学习

2.2.2 非监督式学习

2.2.3 半监督式学习

2.2.4 弱监督学习

2.2.5 监督学习有哪些步骤

2.3 分类算法

2.3.1 常用分类算法的优缺点

2.3.2 分类算法的评估方法

2.3.3 正确率能很好的评估分类算法吗

2.3.4 什么样的分类器是最好的

2.4 逻辑回归

2.4.1 回归划分

2.4.2 逻辑回归适用性

2.4.3 生成模型和判别模型的区别

2.4.4 逻辑回归与朴素贝叶斯有什么区别

2.4.5 线性回归与逻辑回归的区别


前言

机器学习起源于上世纪50年代,1959年在IBM工作的Arthur Samuel设计了一个下棋程序,这个程序具有学习的能力,它可以在不断的对弈中提高自己。由此提出了“机器学习”这个概念,它是一个结合了多个学科,如概率论、优化理论、统计等,最终在计算机上实现自我获取新知识,学习改善自己的这样一个研究领域。机器学习是人工智能的一个子集,目前已经发展处许多有用的方法,比如支持向量机,回归,决策树,随机森林,强化学习,集成学习,深度学习等等,一定程度上可以帮助人们完成一些数据预测,自动化,自动决策,最优化等初步替代脑力的任务。本章我们主要介绍下机器学习的基本概念、监督学习、分类算法、逻辑回归、代价函数、损失函数、LDA、PCA、决策树、支持向量机、EM算法、聚类和降维以及模型评估有哪些方法、指标等等。


2.1 基本概念

2.1.1 大话理解机器学习本质

机器学习(Machine Learning,ML),顾名思义,让机器去学习。这里,机器指的是计算机,是算法运行的物理载体,你也可以把各种算法本身当作一个有输入和输出的机器。那么到底让计算机去学习什么呢?对于一个任务及其表现的度量方法,设计一种算法,让算法能够提取中数据所蕴含的规律,这就叫机器学习。如果输入机器的数据是带有标签的,就称作有监督学习。如果数据是无标签的,就是无监督学习。

2.1.2 什么是神经网络

神经网络就是按照一定规则将多个神经元连接起来的网络。不同的神经网络,具有不同的连接规则。例如全连接(Full Connected,FC)神经网络,它的规则包括:

  1. 有三种层:输入层,输出层,隐藏层;
  2. 同一层的神经元之间没有连接;
  3. fully connected的含义:第N层的每个神经元和第N-1层的所有神经元相连,第N-1层神经元的输出就是第N层神经元的输入;
  4. 每个连接都有一个权值。

神经网络架构

图2-1就是一个神经网络系统,它由很多层组成。输入层负责接收信息,比如一只猫的图片。输出层是计算机对这个输入信息的判断结果,它是不是猫。隐藏层就是对输入信息的传递和加工处理。

图2-1 神经网络系统

2.1.3 各种常见算法图示

日常使用机器学习的任务中,我们经常会遇见各种算法,图2-2是各种常见算法的图示。

回归算法聚类算法
正则化方法决策树学习
贝叶斯方法基于核的算法
聚类算法关联规则学习
人工神经网络深度学习
降低维度算法集成算法

图2-2 各种算法图示

2.1.4 计算图的导数计算

计算图导数计算是反向传播,利用链式法则核隐式函数求导。

假设z=f(u,v)在点(u,v)处偏导连续,(u,v)是关于t的函数,在t点可导,求zt点的导数。

根据链式法则有:\frac{dz}{dt}=\frac{\partial z}{\partial u}.\frac{du}{dt}+\frac{\partial z}{\partial v} .\frac{dv}{dt}。链式法则用文字描述:由两个函数凑起来的复合函数,其导数等于里边函数代入外边函数的值之导数,乘以里边函数的导数。

为了便于理解,下面举例说明:

f(x)=x^2,g(x)=2x+1

则:{f[g(x)]}'=2[g(x)] \times g'(x)=2[2x+1] \times 2=8x+4

2.1.5 理解局部最优与全局最优

笑谈局部最优和全局最优

柏拉图有一天问老师苏格拉底什么是爱情?苏格拉底叫他到麦田走一次,摘一颗最大的麦穗回来,不许回头,只可摘一次。柏拉图空着手出来了,他的理由是,看见不错的,却不知道是不是最好的,一次次侥幸,走到尽头时,才发现还不如前面的,于是放弃。苏格拉底告诉他:“这就是爱情”。这个故事让我们明白了一个道理,因为生命的一些不确定性,所以全局最优是很难寻找的,或者说根本就不存在,我们应该设置一些限定条件,然后在这个范围内寻找最优解,也就是局部最优解——有所斩获总比空手而归强,哪怕这种斩获只是一次有趣的经历。柏拉图有一天又问什么是婚姻?苏格拉底叫他到树林走一次,选一棵最好的树做圣诞树,也是不许回头,只许选一次。这次他一身疲惫地拖了一棵看起来直挺、翠绿,却有点稀疏的杉树回来,他的理由是,有了上回的教训,好不容易看见一棵看似不错的,又发现时间、体力已经快不够用了,也不管是不是最好的,就拿回来了。苏格拉底告诉他:“这就是婚姻”。

优化问题一般分为局部最优和全局最优。其中,

(1)局部最优,就是在函数值空间的一个有限区域内寻找最小值;而全局最优,是在函数值空间整个区域寻找最小值问题。

(2)函数局部最小点就是它的函数值小于或等于附近点的点,但是有可能大于较远距离的点。

(3)全局最小点是那种它的函数值小于或等于所有的可行点。

2.1.5 大数据与深度学习之间的关系

首先来看大数据、机器学习及数据挖掘三者简单的定义:

大数据通常被定义为“超出常用软件工具捕获,管理和处理能力”的数据集。

机器学习关心的问题是如何构建计算机程序使用经验自动改进。

数据挖掘是从数据中提取模式的特定算法的应用,在数据挖掘中,重点在于算法的应用,而不是算法本身。

机器学习和数据挖掘之间的关系如下:数据挖掘是一个过程,在此过程中机器学习算法被用作提取数据集中的潜在有价值模式的工具。大数据与深度学习关系总结如下:

(1)深度学习是一种模拟大脑的行为。可以从所学习对象的机制以及行为等等很多相关联的方面进行学习,模仿类型行为以及思维。

(2)深度学习对于大数据的发展有帮助。深度学习对于大数据技术开发的每一个阶段均有帮助,不管是数据的分析还是挖掘还是建模,只有深度学习,这些工作才会有可能一一得到实现。

(3)深度学习转变了解决问题的思维。很多时候发现问题到解决问题,走一步看一步不是一个主要的解决问题的方式了,在深度学习的基础上,要求我们从开始到最后都要基于一个目标,为了需要优化的那个最终目标去进行处理数据以及将数据放入到数据应用平台上去,这就是端到端(End to End)。

(4)大数据的深度学习需要一个框架。在大数据方面的深度学习都是从基础的角度出发的,深度学习需要一个框架或者一个系统。总而言之,将你的大数据通过深度分析变为现实,这就是深度学习和大数据的最直接关系。

2.2 机器学习学习方式

根据数据类型的不同,对一个问题的建模有不同的方式。依据不同的学习方式和输入数据,机器学习主要分为以下四种学习方式。

2.2.1 监督学习

特点:监督学习是使用已知正确答案的示例来训练网络。已知数据和其一一对应的标签,训练一个预测模型,将输入数据映射到标签的过程。

常见应用场景:监督式学习的常见应用场景如分类问题和回归问题。

算法举例:常见的有监督机器学习算法包括支持向量机(Support Vector Machine,SVM),朴素贝叶斯(Naive Bayes),逻辑回归(Logistic Regression),K近邻(K-Nearest Neighborhood,KNN),决策树(Decision Tree),随机森林(Random Forest),AdaBoost以及线性判别分析(Linear Discrimination Analysis,LDA)等。深度学习(Deepl Learning)也是大多数以监督学习的方式呈现。

2.2.2 非监督式学习

定义:在非监督式学习中,数据并不被特别标识,适用于你具有数据集但无标签的情况。学习模型是为了推断出数据的一些内在结构。

常见应用场景:常见的应用场景包括关联规则的学习以及聚类等。

算法举例:常见算法包括Apriori算法以及K-Means算法。

2.2.3 半监督式学习

特点:在此学习方式下,输入数据部分被标记,部分没有被标记,这种学习模型可以用来进行预测。

常见应用场景:应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,通过对已标记数据建模,在此基础上,对未标记数据进行预测。

算法举例:常见算法如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)等。

2.2.4 弱监督学习

特点:弱监督学习可以看作是有多个标记的数据集合,次集合可以是空集,单个元素,或包含多种情况(没有标记,有一个标记,和有多个标记)的多个元素。数据集的标签是不可靠的,这里的不可靠可以是标记不正确,多种标记,标记不充分,局部标记等。已知数据和其一一对应的弱标签,训练一个智能算法,将输入数据映射到一组更强的标签的过程。标签的强弱指的是标签蕴含的信息量的多少,比如相对于分割的标签来说,分类的标签就是弱标签。

算法举例:举例,给出一张包含气球的图片,需要得出气球在图片中的位置及气球和背景的分割线,这就是已知弱标签学习强标签的问题。

在企业数据应用的场景下,人们最常用的可能就是监督式学习和非监督式学习的模型。在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据,目前半监督式学习是一个很热的话题。

2.2.5 监督学习有哪些步骤

监督学习是使用已知正确答案的示例来训练网络,每组训练数据有一个明确的标识或结果。想象协一下,我们可以训练一个网络,让其从照片库中(其中包含气球的照片)识别出气球的照片。以下就是我们在这个假设场景中所有采取的步骤。

步骤1:数据集的创建和分类

首先,浏览你的照片(数据集),确定所有包含气球的照片,并对其进行标注。然后,将所有照片分为训练集和验证集。目标就是在网络深度中找一函数,这个函数输入是任意一张照片,当照片中包含气球时,输出1,否则输出0。

步骤2:数据增强(Data Augmentation)

当原始数据搜集和标注完毕,一般搜集的数据并不一定包含目标在各种扰动下的信息。数据的好坏对于机器学习模型的预测能力至关重要,因此一般会进行数据增强。对于图像数据来说,数据增强一般包括:图像旋转,平移。颜色变换,裁剪,仿射变换等。

步骤3:特征工程(Feature Engineering)

一般来讲,特征工程包含特征提取和特征选择。常见的手工特征(Hand-Crafted Feature)有尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)方向梯度直方图(Histogram of Oriented Gradient,HOG)等。由于手工特征是启发式的,其算法设计背后的出发点不同,将这些特征组合在一起的时候有可能会产生冲突,如何将组合特征的效能发挥出来,使原始数据在特征空间中的判别性最大化,就需要用到特征选择的方法。在深度学习方法大获成功之后,人们很大一部分不再关注特征工程本身。因为,最常用到的卷积神经网络(Convolution Neural Networks,CNNs)本身就是一种特征提取和选择的引擎。研究者提出不同的网络结构、正则化、归一化方法实际上就是深度学习背景下的特征工程。

步骤4:构建预测模型和损失

将原始数据映射到特征空间之后,也就意味着我们得到了比较合理的输入。下一步就是构建合适的预测模型得到对应输入的输出。而如何保证模型的输出和输入标签的一致性,就需要构建模型预测和标签之间的损失函数,常见的损失函数(Loss Function)有交叉熵、均方差等。通过优化方法不断迭代,使模型从最初的初始化状态一步步变化为有预测能力的模型的过程,实际上就是学习的过程。

步骤5:训练

选择合适的模型和超参数进行初始化,其中超参数比如支持向量机中核函数、误差项惩罚权重等。当模型初始化参数设定好后,将制作好的特征数据输入到模型,通过合适的优化方法不断缩小输出与标签之间的差距,当迭代过程到了截止条件,就可以得到训练好的模型。优化方法最常见的就是梯度下降法及其变种,使用梯度下降法的前提是优化目标函数对于模型是可导的。

步骤6:验证和模型选择

训练完训练集图片后,需要进行模型测试。利用验证集来验证模型是否可以准确地挑选处含有气球在内的照片。在此过程中,通常会通过调整和模型相关的各种事物(超参数)来重复步骤2和3,诸如里面有多少个节点,有多少层,使用怎样的激活函数和损失函数,如何在反向传播阶段积极有效地训练权值等等。

步骤7:测试及应用

当有了一个准确的模型,就可以将该模型部署到你的应用程序中。你可以将预测功能发布为API(Application Programming Interface,应该程序编程接口)调用,并且你可以从软件中调用该API,从而进行推理并给出相应的结果。

2.3 分类算法

分类算法和回归算法是对真实世界不同建模的方法。分类模型是认为模型的输出是离散的,例如大自然的生物被划分为不同的种类,是离散的。回归模型的输出是连续的,例如人的身高变化过程是一个连续过程,而不是离散的。

因此,在实际建模过程时,采用分类模型还是回归模型,取决于你对任务(真实世界)的分析和理解。

2.3.1 常用分类算法的优缺点

接下来我们介绍常用分类算法的优缺点,如表2-1所示。

表2-1 常用分类算法的优缺点

算法优点缺点
Bayes 贝叶斯分类法

1)所需估计的参数少,对于缺失数据不敏感。

2)有着坚实的数学基础,以及稳定的分类效率。

1)需要假设属性之间的相互独立,这往往并不成立。(喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒鸡蛋)。

2)需要知道先验概率。

3)分类决策存在错误率。

Decision Tree 决策树

1)不需要任何领域知识或参数假设。

2)适合高维数据。

3)简单易于理解。

4)短时间内处理大量数据,得到可行且效果较好的结果。

5)能够同时处理数据性和常规性属性。

1)对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。

2)易于过拟合。

3)忽略属性之间的相关性。

4)不支持在线学习。

SVM 支持向量机

1)可以解决小样本下机器学习的问题。

2)提高泛化性能。

3)可以解决高纬、非线性问题。超高维文本分类仍受欢迎。

4)避免神经网络结构选择和局部极小的问题。

1)对缺失数据敏感。

2)内存消耗大,难以解释。

3)运行和调参略烦人。

KNN K近邻

1)思想简单,理论成熟,既可以用来做分类也可以用来做回归。

2)可用于非线性分类。

3)训练时间复杂度为O(n)。

4)准确度高,对数据没有假设,对outlier不敏感。

1)计算量太大。

2)对于样本分类不均衡问题,会产生误判。

3)需要大量的内存。

4)输出的可解释性不强。

Logistic Regression 逻辑回归

1)速度快。

2)简单易于理解,直接看到各个特征的权重。

3)能容易地更新模型吸收新的数据。

4)如果想要一个概率框架,动态调整分类发阀值。

特征处理复杂。需要归一化和较多的特征工程。
Neural Network 神经网络

1)分类准确率高。

2)并行处理能力强。

3)分布式存储和学习能力强。

4)鲁棒性较强,不易受噪声影响。

1)需要大量参数(网络拓扑、阀值、阈值)。

2)结果难以解释。

3)训练时间过长。

Adaboosting

1)adaboost是一种有很高精度的分类器。

2)可以使用各种方法构建子分类器,Adaboost算法提供的是框架。

3)当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单。

4)简单,不用做特征筛选。

5)不用担心overfitting。

对outlier比较敏感。

2.3.2 分类算法的评估方法

分类评估方法主要功能是用来评估分类算法的好坏,而评估一个分类器算法的好坏又包括许多项指标。了解各种评估方法,在实际应用中选择正确的评估方法是十分重要的。

几个常用术语

这里首先介绍介绍几个常见的模型评价术语,现在假设我们的分类目标只有两类,计为正例(positive)和负例(negative)分别是:

① True positive(TP):被正确地划分为正例的个数,即实际为正且被分类器划分为正例的实例数;

② False positive(FP):被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

③ False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

④ True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

表2-2 四个术语的混肴矩阵

表2-2是这四个术语的混淆矩阵,做以下说明: 1)P=TP+FN表示实际为正例的样本个数。 2)True、False描述的是分类器是否判断正确。 3)Positive、Negative是分类器的分类结果,如果正例计为1、负例计为-1,即positive=1、negative=-1。用1表示True,-1表示False,那么实际的类标=TF*PN,TF为true或false,PN为positive或negative。 4)例如True positives(TP)的实际类标=1*1=1为正例,False positives(FP)的实际类标=(-1)*1=-1为负例,False negatives(FN)的实际类标=(-1)*(-1)=1为正例,True negatives(TN)的实际类标=1*(-1)=-1为负例。

评价指标

① 正确率(accuracy):正确率是我们最常见的评价指标,accuracy=(TP+TN)/(P+N),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。

② 错误率(error rate):错误率则与正确率相反,描述被分类器错分的比例,error rate=(FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事件,所有accuracy=1 - error rate。

③ 灵敏度(sensitivity):sensitivity = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。

④ 特异性(specificity):specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

⑤ 精度(precision):precision = TP/(TP+FP),精度是精确性的度量,表示被分为正例的示例中实际为正例的比例。

⑥ 召回率(recall):召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitivity,可以看到召回率与灵敏度是一样的。

⑦ 其他评价指标:计算速度:分类器训练和预测需要的时间;鲁棒性:处理缺失值和异常值的能力;可扩展性:处理大数据集的能力;可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

⑧ 精度和召回率反映了分类性能的两个方面。如果综合考虑准率和查全率,可以得到新的评价指标F1-score,也称为综合分类率:

为了综合多个类别的分类情况,评测系统整体性能,经常采用的还有微平均F1(micro-averaging)和宏平均F1(macro-averaging)两种指标。

(1)宏平均F1与微平均F1是以两种不同的平均方式求的全局F1指标。

(2)宏平均F1的计算方法先对每个类别单独计算F1值,再取这些F1值的算术平均值作为全局指标。

(3)微平均F1的计算方法是先累加计算各个类别的a、b、c的值,再由这些值求出F1值。

(4)由两种平均F1的计算方式不难看出,宏平均F1平等对待每一个类别,所以它的值主要受到稀有类别的影响,而微平均F1平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大。

ROC曲线和PR曲线

如图2-3,ROC曲线是(Receiver Operating Characteristic Curve,受试者工作特征曲线)的简称,是以灵敏度(真阳性率)为纵坐标,以1减去特异性(假阳性率)为横坐标绘制的性能评价曲线。可以将不同模型对同一数据集的ROC曲线绘制在同一笛卡尔坐标系中,ROC曲线越靠近左上角,说明其对应模型越可靠。也可以通过ROC曲线下面的面积(Area Under Curve, AUC)来评价模型,AUC越大,模型越可靠。

图2-3 ROC曲线

 PR曲线是Precision Recall Curve的简称,描述的是precision和recall之间的关系,以recall为横坐标,precision为纵坐标绘制的曲线。该曲线的所对应的面积AUC实际上是目标检测中常用的评价指标平均精度(Average Precision, AP)。AP越高,说明模型性能越好。

2.3.3 正确率能很好的评估分类算法吗

不同算法有不同的特点,在不同数据集上有不同的表现效果,根据特定的任务特定选择不同的算法。如何评价分类算法的好坏,要做具体任务具体分析。对于决策树,主要用正确率评估,但是其他算法,只用正确率能很好的评估吗?答案是否定的。正确率确实是一个很直观很好的评价指标,但是有时候正确率高并不能完全代表一个算法就好。比如对某个地区进行地震预测,地震分类属性分为0:不发生地震、1发生地震。我们都知道,不发生的概率是极大的,对于分类器而言,如果分类器不加思考,对每一个测试样例的类别都划分为0,达到99%的正确率,但是,问题来了,如果真的发生地震时,这个分类器毫无察觉,那带来的后果将是巨大的。很显然,99%正确率的分类器并不是我们想要的。出现这种现象的原因主要是数据分布不均衡,类别为1的数据太少,错分了类别1但达到了很高的正确率忽视了研究者本身最为关注的情况。

2.3.4 什么样的分类器是最好的

对某一个任务,某个具体的分类器不可能同时满足或提高所有上面介绍的指标。如果一个分类器能正确分对所有的实例,那么各项指标都已经达到最优,但这样的分类器往往不存在。比如之前说的地震预测,既然不能百分百预测地震的发生,但实际情况中能容忍一定程度的误报。假设在1000次预测中,共有5次发生了地震,真实情况中有一次发生了地震,其他4次则为误报。正确率由原来的999/1000=99.9下降为996/1000=99.6。召回率由0/1=0%上升为1/1=100%。对此解释为。虽然预测失误了4次,但真的地震发生前,分类器能预测对,没有错过,这样的分类器实际意义更为重大,正是我们想要的。在这种情况下,在一定正确率前提下,要求分类器的召回率尽量高。

2.4 逻辑回归

2.4.1 回归划分

广义线性模型家族里,依据因变量不同,可以有如下划分:

(1)如果是连续的,就是多重线性回归。

(2)如果是二项分布,就是逻辑回归。

(3)如果是泊松(Poisson)分布,就是泊松回归。

(4)如果是负二项分布,就是负二项回归。

(5)逻辑回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的逻辑回归。

2.4.2 逻辑回归适用性

逻辑回归可用于以下几个方面:

(1)用于概率预测。用于可能性预测时,得到的结果有可比性。比如根据模型进而预测在不同的自变量情况下,发生某病或某种情况的概率有多大。

(2)用于分类。实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。进行分类时,仅需要设定一个阈值即可,可能性高于阈值是一类,低于阈值是另一类。

(3)寻找危险因素。寻找某一疾病的危险因素等。

(4)仅能用于线性问题。只有当目标和特征是线性关系时,才能用逻辑回归。在应用逻辑回归时注意两点:一是当知道模型是非线性时,不适用逻辑回归;二是当使用逻辑回归时,应注意选择和目标为线性关系的特征。

(5)各特征之间不需要满足条件独立假设,但各个特征的贡献独立计算。

2.4.3 生成模型和判别模型的区别

生成模型

由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测模型,即生成模型:P(X|Y) = P(X,Y)/P(X)(贝叶斯概率)。基本思想是首先建立样本的联合概率概率密度模型P(X,Y),然后再得到后验概率P(Y|X),再利用它进行分类。典型的生成模型有朴素贝叶斯,隐马尔科夫模型等。

判别模型

由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。典型的判别模型包括k近邻,感知机,决策树,支持向量机等。这些模型的特点都是输入属性X可以直接得到的后验概率P(Y|X),输出条件概率最大的作为最终的类别(对于二分类任务来说,实际得到一个score,当score大于threshold时则为正类,否则为负类)。

举例

判别式模型举例:要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。

生成式模型举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个就是哪个。

联系和区别

生成方法的特点:上面说到,生成方法学习联合概率密度分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。生成方法可以还原出联合概率分布P(Y,X),而判别方法不能。生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型,当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用。

判别方法的特点:判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。直接面对预测,往往学习的准确率更高。由于直接学习P(Y|X)或P(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

最后,由生成模型可以得到判别模型,由判别模型得不到生成模型。

2.4.4 逻辑回归与朴素贝叶斯有什么区别

逻辑回归与朴素贝叶斯区别有以下几个方面:

(1)逻辑回归是判别模型,朴素贝叶斯是生成模型,所以生成和判别的所有区别它们都有。

(2)朴素贝叶斯属于贝叶斯,逻辑回归是最大似然,两种概率哲学间的区别。

(3)朴素贝叶斯需要条件独立假设。

(4)逻辑回归需要求特征参数间是线性的。

2.4.5 线性回归与逻辑回归的区别

线性回归与逻辑回归的区别如下描述:

(1)线性回归的样本的输出,都是连续值,y\in (-\infty ,+\infty ),而逻辑回归中y\in (0,1),只能取0和1。

(2)对于拟合函数也有本质上的差别:

线性回归:f(x)=\theta ^{T}x=\theta _{1}x _{1}+\theta _{2}x _{2}+...+\theta _{n}x _{n}

逻辑回归:f(x)=P(y=1|x;\theta )=g(\theta ^{T}x),其中,g(z)=\frac{1}{1+e^{-z}}

可以看出,线性回归的拟合函数,是对f(x)的输出变量y的拟合,而逻辑回归的拟合函数是对为1类样本的概率的拟合。

那么,为什么要以1类样本的概率进行拟合呢,为什么可以这样拟合呢?

\theta ^{T}x=0就是相当于是1类和0类的决策边界

\theta ^{T}x>0,则y>0.5;若\theta ^{T}x\rightarrow +\infty,则y \rightarrow 1,即y为1类;

\theta ^{T}x<0,则y<0.5;若\theta ^{T}x\rightarrow -\infty,则y \rightarrow 0,即y为0类;

这个时候就能看出区别,在线性回归中\theta ^{T}x为预测值的拟合函数;而在逻辑回归中,\theta ^{T}x为决策边界。下表2-3为线性回归和逻辑回归的区别。

表2-3 线性回归和逻辑回归的区别

线性回归逻辑回归
目的预测分类
y^{(i)}未知(0,1)
函数拟合函数预测函数
参数计算方式最小二乘法极大似然估计

下面具体解释一下:

1. 拟合函数和预测函数什么关系呢?简单来说就是将拟合函数做了一个逻辑函数的转换,转换后使得y^{(i)} \in (0,1)

2. 最小二乘和最大似然估计可以相互替代吗?回答当然是不行了。我们来看看两者依仗的原理:极大似然估计是计算使得数据出现的可能性最大的参数,依仗的自然是Probability。而最小二乘是计算误差损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TVM 和模型优化的概述(1)

文章目录 1. 从 Tensorflow、PyTorch 或 Onnx 等框架导入模型&#xff08;model&#xff09;。2.翻译成 Relay3. lower 到 张量表达式。4. 使用 auto-tuning 模块 AutoTVM 或 AutoScheduler 搜索最佳 schedule。5. 选择最佳配置进行模型编译。6. lower 到 TIR。7. 编译成机器码…

波奇学Linux:共享内存

进程通信的前提&#xff1a;不同的进程看到同一份的资源 直接原理:同一块物理内存映射到不同进程的共享区 共享内存拆解&#xff1a; 1.申请内存&#xff0c;通过页表映射到进程地址空间 2.返回首地址&#xff0c;便于进程利用 3.释放共享内存&#xff0c;去关联 4.内存的申请…

flex的5种常见使用

Flex 布局教程&#xff1a;语法篇 文章目录 一.基本概念二 例子 其实我每次记一个样式标签,都是根据英文来记,但是justify-content和align-items确实让我迷惑,这次我打算只记 justify-content属性定义了项目在主轴上的对齐方式,好好总结一下用法~ 一.基本概念 采用 Flex 布局…

SpringBoot 事务失效及其对应解决办法

简介 本文主要讲述Spring事务会去什么情况下失效及其解决办法 Spring 通过AOP 进行事务控制&#xff0c;如果操作数据库报异常&#xff0c;则会进行回滚&#xff1b;如果没有报异常则会提交事务&#xff1b;但是&#xff0c;如果Spring 事务失效&#xff0c;会导致数据缺失/重…

Quartz与Spring Task的区别

1、相同点&#xff1a; 两者均能实现定时调度任务 2、Quartz ① 默认多线程异步执行 ② 单个任务时&#xff0c;在上一个调度未完成时&#xff0c;下一个调度时间到时&#xff0c;会另起一个线程开始新的调度。业务繁忙时&#xff0c;一个任务会有多个调度&#xff0c;可能导…

DAY65: 图论入门797、200、695

深度优先搜索 深度优先搜索按照一个方向一直搜索直到截止&#xff0c;再回溯换搜索方向。 搜索方向&#xff0c;是认准一个方向搜&#xff0c;直到碰壁之后再换方向换方向是撤销原路径&#xff0c;改为节点链接的下一个路径&#xff0c;回溯的过程 因为需要回溯&#xff0c;…

【STM32】STM32学习笔记-独立看门狗和窗口看门狗(47)

00. 目录 文章目录 00. 目录01. WDG概述02. 独立看门狗相关API2.1 IWDG_WriteAccessCmd2.2 IWDG_SetPrescaler2.3 IWDG_SetReload2.4 IWDG_ReloadCounter2.5 IWDG_Enable2.6 IWDG_GetFlagStatus2.7 RCC_GetFlagStatus 03. 独立看门狗接线图04. 独立看门狗程序示例105. 独立看门…

简单排列组合题(python版)

文章预览&#xff1a; 题目解法一输出结果 解法二输出结果输出结果 题目 有四个数字:1,2,3,4能组成多少个互不相同且无重复的数字的三位数? 各式多少? 解法一 我们粗略看一下这个题既然我们要组成三位数&#xff0c;那我们就循环3层每一层出一个数&#xff0c;并且if语句判…

OD(12)之Mermaid思维导图(Mindmap)

OD(12)之Mermaid思维导图(Mindmap)使用详解 Author: Once Day Date: 2024年2月29日 漫漫长路才刚刚开始… 全系列文章可参考专栏: Mermaid使用指南_Once_day的博客-CSDN博客 参考文章: 关于 Mermaid | Mermaid 中文网 (nodejs.cn)Mermaid | Diagramming and charting tool…

postman传参与返回值切换为左右显示的操作

目录 第一步 点击“Settings”&#xff0c;在下拉框选择“Settings” 第二步 在默认打开的General页面&#xff0c;参照下图改动两处 第一步 点击“Settings”&#xff0c;在下拉框选择“Settings” 第二步 在默认打开的General页面&#xff0c;参照下图改动两处 附上修改后…

字符串函数strstr()详解

一、strstr()函数的作用 字符串函数 strstr() 是 C 语言的一个标准库函数&#xff0c;它的作用是在一个字符串中查找给定字符串的第一个匹配之处&#xff0c;并返回指向该字符串的指针。如果没有找到该字符串&#xff0c;则返回 NULL。1 二、strstr()函数的原型和参数 strst…

c语言求奇数分之一序列前N项和

本题要求编写程序&#xff0c;计算序列 1 1/3 1/5 ... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S&#xff0c;精确到小数点后6位。题目保证计算结果不超过双精度范围。 输入样例: 23输出样例: …

opencv中的rgb转gray的计算方法

转换原理 在opencv中&#xff0c;可以使用cv2.cvtColor函数将rgb图像转换为gray图像。示例代码如下&#xff0c; import cv2img_path "image.jpg" image cv2.imread(img_path) gray_image cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) mean gray_image.mean() pri…

【AI Agent系列】【MetaGPT多智能体学习】4. 基于MetaGPT的Team组件开发你的第一个智能体团队

本系列文章跟随《MetaGPT多智能体课程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并实践多智能体系统的开发。 本文为该课程的第四章&#xff08;多智能体开发&#xff09;的第二篇笔记。主要是对MetaGPT中Team组件…

【Django】执行查询—检索对象

检索对象 检索全部对象 >>> all_entries Entry.objects.all()通过过滤器检索指定对象 通过添加过滤条件精炼原始 QuerySet。两种最常见的精炼 QuerySet 的方式是&#xff1a; filter(**kwargs) 返回一个新的 QuerySet&#xff0c;包含的对象满足给定查询参数。 ex…

【Tomcat】在 linux 上实现 Catlina.log 自动分割,防止文件过大

背景描述 catalina.out即标准输出和标准出错&#xff0c;所有输出到这两个位置的都会进入catalina.out&#xff0c;这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的&#xff0c;所以我们需要借助其他工具进行切割&…

MySQL:快照读和当前读

mysql读取数据实际上有两种读取模式&#xff1a;当前读和快照读 快照读&#xff1a;快照读的执行方式是生成 ReadView&#xff0c;直接利用 MVCC 机制来进行读取&#xff0c;并不会对记录进行加锁。当前读&#xff1a;每次读取的都是当前最新的数据&#xff0c;但是读的时候不…

剑指offer面试题22 栈的压入弹出序列

考察点 辅助栈知识点 题目 分析 这道题目要求输入俩个序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;要求判断第二个序列是否是该栈的弹出顺序。遇到这类题目思维一定要往辅助栈上靠&#xff0c;因为关于栈的考点其实就是这个。这种题目的解题思路就是归纳&#x…

「Python系列」Python pyecharts模块

文章目录 一、pyecharts安装二、pyecharts应用三、pyecharts图表类型四、pyecharts特点与功能特点&#xff1a;功能&#xff1a; 五、相关链接 一、pyecharts安装 要安装 Python 的 pyecharts 模块&#xff0c;你可以使用 pip&#xff0c;这是 Python 的包管理工具。请按照以下…

Payment Without Change

题目链接&#xff1a;Problem - 1256A - Codeforces 解题思路&#xff1a; 题目的大致意思就是手中的硬币数拿出若干枚正好等于s&#xff0c;分三种情况 .如果n > s && b < s,输出no .如果b > s,输出yes .如果n * (a < (s / n) ? a : (s / n)) b >…