1.什么是机器学习?
机器学习:本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。
2.机器学习基本分类:监督学习、无监督学习。
●监督学习:监督学习是根据已有数据集,知道输入和输出结果之间的关系,然后根据这种已知关系训练得到一个最优模型。也就是说,在监督学习中,我们的训练数据应该既有特征又有标签,然后通过训练,使得机器能自己找到特征和标签之间的联系,然后在面对没有标签的数据时可以判断出标签。
●无监督学习:我们需要用某种算法去训练无标签的训练集从而能让我们我们找到这组数据的潜在结构。无监督学习大致可以分为聚类和降维两大类。
3.机器模型
机器学习模型分为参数化模型和非参数化模型。
非参数化模型一般没有优化目标函数,利用某种算法和结构建立模型,比如K近邻、决策树等。
参数化模型中定义了或多或少的参数,通过参数计算模型的输出,通过定义某种优化目标函数,利用数据去调整(训练)参数,比如线性回归、支持向量机、贝叶斯网络、神经网络等。本书侧重于参数化模型。
4.监督学习模型和无监督学习模型有哪些?
●监督学习模型:
(1)线性回归(Linear Regression): 用于解决回归问题,建立输入特征与连续目标变量之间的线性关系。
(2)逻辑回归(Logistic Regression): 用于解决分类问题,将输入映射到概率输出,并进行二分类或多分类。
(3)决策树(Decision Trees): 通过树状结构进行决策,可用于分类和回归任务。
(4)支持向量机(Support Vector Machines,SVM): 用于分类和回归,通过找到将不同类别分开的最优超平面。
(5)k近邻算法(k-Nearest Neighbors,KNN): 根据输入实例的邻近实例来进行分类或回归。
●无监督学习模型:
(1)K均值聚类(K-Means Clustering): 用于将数据集划分为K个不同的组(簇)。
(2)层次聚类(Hierarchical Clustering): 将数据集划分为具有层次结构的簇。
(3)主成分分析(Principal Component Analysis,PCA): 用于降低数据维度,发现数据的主要成分。
(4)独立成分分析(Independent Component Analysis,ICA): 寻找数据中的独立源,用于盲源分离。
(5)自编码器(Autoencoder): 用于学习数据的紧凑表示,常用于降维和特征学习。
5.监督机器学习模型通常将有标注的数据集分割为训练集(train set)和测试集(test set)。训练集用于训练模型,获得模型的最佳参数,测试集用于度量模型训练后的性能。
6.损失函数:
损失函数是这样一类函数: 当模型对样本的分类正确时,不产生损失或产生较小的损失,反之,根据其离谱程度,将带来一定甚至很大损失。通过选择合理的参数,使得整个数据产生的总体损失最小化。这个过程被称为训练(training),也称有监督学习。
损失函数衡量的是模型预测能力的好坏。
1.线性回归
线性回归:用一条线来进行回归预测。线性回归在这种背景下的工作就是寻找一条直线,尽可能的拟合这些离散点。
线性回归算法是一种有监督学习模型,主要处理标签数值类型为连续型数值的问题。该算法的核心思想是通过输入数据的线性组合去拟合目标。
具体来说,线性回归假设目标值与特征之间存在线性关系,即满足一个一元一次方程。为了求解这个方程,我们需要先构建损失函数,然后通过最小化损失函数来得到最佳的参数w和b。这里的损失函数通常为实际值与预测值之间误差的平方和。为了最小化损失函数,我们采用最小二乘法。
最小二乘法的基本思想是通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法,我们可以将问题转化为一个矩阵运算问题,进而求解出参数w和b。
2.多元线性回归模型
多元线性回归模型,是在有多个输入变量的情况下预测一个连续型输出变量的一种方法。它主要被用于处理那些目标值受到多个因素影响的问题,例如家庭消费支出,除了受家庭可支配收入的影响外,还可能受到诸如家庭所有的财富、物价水平、金融机构存款利息等多种因素的影响。
在多元线性回归模型中,我们假设这些影响因素和目标值之间存在线性关系,即满足一个多元一次方程。为了求解这个方程,我们需要先构建损失函数,然后通过最小化损失函数来得到最佳的参数。这里的损失函数通常为实际值与预测值之间误差的平方和(最小残差平方和)。为了最小化损失函数,我们通常采用最小二乘法。
3.一元线性回归模型与多元线性回归模型区别
一元线性回归模型处理的是只有一个自变量和一个因变量之间的线性关系,多元线性回归模型则用于一个因变量与两个及以上自变量之间的线性关系。
对比一元模型,使用多元线性回归模型使均方误差显著降低。同理,可以使用多个决策变量,即可实现更为精确的多元线性回归。
4.线性回归模型求解
(1)最小平方法
最小平方法,是估计回归系数的常用方法之一。它的基本思想是将原始的因变量表示为自变量和常数项的线性组合,然后通过最小化残差平方和来找到最佳的拟合线。
(2)最大似然法
通过最大似然估计法来求解参数。首先我们假定所有样本的误差是独立同分布的,服从均值为0,方差为某个定值的高斯分布。然后通过比较不同参数下的概率函数值,选出概率最大的参数作为最优解。
(3)梯度下降法
这种方法基于函数在某一点的梯度,即偏导数,来寻找函数的最小值或最大值。具体来说,线性回归模型的目标函数是误差平方和,我们需要找到一组参数,使得这个目标函数的值最小。为了实现这一目标,我们通过迭代更新模型参数,逐步优化模型。
首先,初始化模型参数。然后,计算预测值和损失函数的梯度。接着,计算L1正则化项的梯度(如果有的话)。最后,计算总的梯度,并更新模型参数。重复这个过程,可以逐步优化模型参数,实现线性回归模型的求解。
(4)岭回归
岭回归是一种专用于线性数据分析的有偏估计回归方法,岭回归通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法。
具体来说,岭回归是一种正则化方法,它通过对系数值添加惩罚来提高模型的稳定性和可靠性。这个惩罚项被称为岭参数,其决定了模型对系数的惩罚程度。从而减小过拟合的情况,提高模型在未知数据上的泛化能力。
●正则化
正则化是一种用于在机器学习中防止过拟合的技术。过拟合是指模型在训练数据上表现得很好,但在新数据上表现不佳的现象。正则化通过对模型的复杂性进行惩罚,限制模型参数的大小,从而提高模型的泛化能力。在正则化中,通常会向损失函数添加一个正则化项(也称为惩罚项),该项依赖于模型的参数。这个额外的项有助于防止模型过于依赖训练数据,使得模型在未见过的数据上表现更好。
5.线性回归模型的度量指标。
(1)均方误差:计算预测值与真实值之间的差异的平方的平均值。均方误差值越小,表示模型的拟合效果越好。
(2)R2(R-squared):衡量模型对目标变量的解释能力。它表示模型的方差占总方差的比例,数值范围从0到1,越接近1表示模型对目标变量的解释能力越好。
残差平方和:表示所有样本预测值与真实值之差的平方和。
1.逻辑回归模型
逻辑回归是一种广泛应用的分类模型,主要用于解决因变量为二分类或多分类的问题。通过sigmoid激活函数,将其输出在范围0和1之间。
2.多分类逻辑回归模型
多分类逻辑回归模型是一种广泛应用的分类方法,它用于解决因变量为两个以上类别的问题。在多分类逻辑回归中,因变量是根据一系列自变量(也就是我们所说的特征、观测变量)来预测得到的。不同于二分类逻辑回归的是,其输出是一个概率分布,用于表示每个类别的概率。
3.多分类器性能评估指标
逻辑回归模型的分类器性能评估指标主要包括准确率、混淆矩阵等。
准确率表示模型预测正确的样本数占总样本数的比例,混淆矩阵通过展示模型在每个类别上的预测情况来帮助我们更全面地理解模型的性能。
4.二分类性能评估指标
样本总数 = TP + TN + FP + FN。
1.什么是支持向量机?
支持向量机(Support Vector Machine, SVM)是一种监督学习的二元分类模型,它的基本思想是找到一个最优的超平面,使得不同类别的样本尽可能的分开。这个最优的超平面被称为最大边距超平面,它是根据学习样本求解出的最大边距确定的。
支持向量机可以进一步被分为线性支持向量机和非线性支持向量机。
在线性支持向量机中,数据是线性可分的,可以通过硬间隔或软间隔来找到分隔超平面。
非线性支持向量机中,数据可能是线性不可分的,这时就需要用到核技巧,通过映射将原始特征空间转化为高维特征空间,然后在新的特征空间中寻找最优分隔超平面。
2.支持向量机模型求解线性可分情况
支持向量机(SVM)模型在处理线性可分问题时,目标是找到一个最优的超平面,使得不同类别的样本尽可能的分开。这个最优的超平面被称为最大边距超平面,它是根据学习样本求解出的最大边距确定的。
具体来说,线性可分的支持向量机要求训练集线性可分,通过硬间隔最大化得到超平面。
3.支持向量机模型求解线性不可分情况
对于线性不可分的情况,支持向量机(SVM)需要采取不同的策略。由于数据中有些样本点距离太近,不能满足函数间隔大于等于的约束条件,因此线性可分的支持向量机学习方法在这种情况下是不适用的。
此时,我们可以使用核技巧最优化来求解。具体来说,我们可以通过使用核函数将线性不可分的训练集映射到高维空间中,使其变为线性可分的数据集。然后,在新的高维特征空间中寻找最优分隔超平面。
4.核技巧
核技巧是一种在支持向量机(SVM)中广泛应用的方法,它能够将非线性可分问题转化为高维线性可分问题。核技巧的基本思想是将低维数据映射到高维空间中,以便更好地进行分类和回归等任务。
具体来说,核技巧利用核函数将输入空间映射到线性可分空间,从而使得在新的高维特征空间中寻找最优分隔超平面成为可能。
5.多分类支持向量机
支持向量机(SVM)是一种强大的分类算法,它有很高的处理高维数据的能力。尽管其本身是为二分类问题设计的,但可以通过一定转换应用于多分类问题。
对于多类分类问题,SVM采用的主要方法有两种:成对分类方法和一类对余类方法。
在成对分类方法中,每一个类别都与其他所有类别分别进行比较和分类,这样会得到多个二分类器;在一类对余类的方法中,将其中一个类别作为正类,其余的所有类别合并为反类进行分类。
另一种解决多分类问题的方法是使用“一对一”或“一对其余”策略,这种策略可以看做是多个二元分类器的集合。例如,如果要解决0-9的数字识别问题,那么可以为每一个数字创建一个二元分类器。
一、K-Means聚类
K-Means聚类是一种无监督学习算法,它是最基础且常用的聚类方法之一。这种算法的主要目标是通过迭代寻找K个簇的一种划分方案,使得聚类结果对应的损失函数最小。在这个算法中,"K"表示将数据集聚类为K个簇,而"means"则代表取每一个聚类中数据值的均值作为该簇的中心,也就是质心。
具体来说,K-Means算法接受一个参数K,然后将样本数据集划分为K个聚类。如二分类时,k=2。几分类K就等于几。每个聚类需要满足以下条件:同一个聚类中的样本数据集相似度较高;而不同聚类中的样本数据集相似度较小。
在算法的实施过程中,会首先从样本集中随机选取k个样本作为初始的簇中心,然后计算所有样本与这k个“簇中心”的距离。对于每一个样本,将其划分到与其距离最近的“簇中心”所在的簇中。聚类完成后将聚类数据的均值更新为簇的中心,再继续将每个样本划分到与其距离最近的簇中,接着通过迭代的方法,逐次更新各聚类中心的值,直至簇质心变化的范围很小或质心不再发生变化。就停止迭代。
1.K值的选择
●确定K值的方法
2.聚类结果的度量指标
(1)轮廓系数法
簇内不相似度:样本a到同簇内其他样本的平均距离为样本点a的簇内不相似度。
簇间不相似度:样本a到其他簇所有样本的平均距离的最小值为样本点a的簇间不相似度。
定义样本a的轮廓系数:样本点a的簇内不相似度-样本点a的簇间不相似度/max(簇内不相似度,簇间不相似度)。
轮廓系数的值在-1到1之间,值越接近1,说明样本点与所在簇内的相似度越高,与其他簇的相似度越低,聚类效果越好;反之,值越接近-1,说明样本点与所在簇内的相似度越低,与其他簇的相似度越高,聚类效果越差。
二、高斯混合模型聚类及其模型
高斯混合模型(Gaussian Mixture Model, GMM)是一种基于概率模型的聚类方法,它假设数据集中的每个样本都是由多个高斯分布组成的混合体。与K-means算法相比,GMM可以给出一个样本对于所有类别的概率,因此被称为软聚类。
高斯混合模型的求解通常采用EM算法。这是一种迭代算法,主要分为两步:第一步,假设我们知道各个高斯模型的参数,然后去估计每个高斯模型的权值;第二步,基于估计的权值,再去迭代更新高斯模型的参数。这样的迭代过程会一直重复进行,直到模型收敛为止。
需要注意的是,EM算法有可能只能收敛于局部最优解。
K近邻(KNN)模型是一种基本的分类与回归方法,其核心功能是解决有监督的分类问题。这种算法的主要思想是,如果一个样本在特征空间中,预测样本其周围最相邻的k个样本中大多数属于某一个类别,则该预测样本也属于这个类别。
●具体来说,KNN方法包括以下三个主要步骤:
(1)确定距离度量:这是决定样本之间相似度的关键,常用的距离度量包括欧氏距离(两点之间的直线距离)、曼哈顿距离(坐标轴距离的绝对值之和)等。
(2)k值的选择:在训练数据中找到与新样本最邻近的k个实例点。k的值太小,容易受个例影响。k的值太大,容易受距离较远的特殊值的影响。
(3)分类决策:根据这k个最近邻样本的类别进行投票或平均,得到新样本的预测类别。
1.仿射变换
每个数据点在主轴上的投影就是数据的主成分。这种从数据的坐标轴变换到主轴的过程是一个仿射变换。仿射变换可以理解为一个向量空间到另一个向量空间的映射(以矩阵相乘的形式),而保持一些性质不变。
主成分分析通过线性变换将原始数据转换到新的坐标系统中,使得变换后的数据有着最大的方差。使得在新坐标系的第一个坐标(即第一个主成分)具有最大方差,第二个坐标具有第二大方差,依此类推。
(方差的大小描述的是一个变量的信息量,我们在讲一个东西的稳定性的时候,往往说要减小方差,如果一个模型的方差很大,那就说明模型不稳定了。但是对于我们用于机器学习的数据(主要是训练数据),方差大才有意义,不然输入的数据都是同一个点,那方差就为0了,这样输入的多个数据就等同于一个数据了。)
2.主成分分析算法过程(PCA算法)
●过程:
(1)样本中心化:计算样本x,y的均值,在坐标轴上标注均值点,将数据坐标系原点移到数据的均值点,也就是样本的中心。样本中心化有助于消除不同特征之间的偏移,确保它们在相似的尺度上。可以使模型更具鲁棒性,对于输入数据中的一些异常值不敏感。
(2)计算投影矩阵:计算数据的协方差矩阵。求出协方差矩阵的特征值和特征向量。将特征值从大到小排序,并选择前k个最大的特征值所对应的特征向量组成的矩阵,这就是我们的投影矩阵。
(3)最后,将原始数据投影到这个投影矩阵上,得到降维后的数据。
1.低秩近似
高维数据具有显著的稀疏性,当表示为一个矩阵时,会包含大量的冗余信息。通常可以用低秩矩阵近似地表示原始矩阵,这个过程称为低秩近似。 上一章讲述的PCA算法就是一种典型的低秩近似方法。本章我们再来研究两种低秩近似方法,即奇异值分解和矩阵补全。
2.奇异值分解
奇异值分解(Singular Value Decomposition,SVD)是一种线性代数的技术,常用于矩阵分解和降维。SVD将一个矩阵分解为三个矩阵的乘积。
奇异值分解的主要应用领域包括降维、用于表示学习、图像压缩等。
3.矩阵补全
矩阵补全是指通过填充矩阵中的缺失值或不完整项,使其成为一个完整的矩阵。这个问题通常出现在实际数据收集和处理中,其中一些项可能由于各种原因而缺失。矩阵补全的目标是根据已有的观测值来估计缺失值,以便获得一个完整、可用于进一步分析的数据矩阵。
●用矩阵分解来进行矩阵补全任务。
4.矩阵补全和奇异值分解(SVD)的比较
SVD通常是矩阵补全的一部分,通过奇异值分解的结果进行缺失值的估计。SVD的主要目的是分解矩阵,而矩阵补全的目的是填补缺失值。
5.SVD和PCA的比较
两者都可用于降维操作。
1.贝叶斯学习过程:首先对事物做一个初始估计,即先验。然后随着对事物的进一步观察和了解,不断修正先验,直到最终完全准确地认识该事物。贝叶斯学习方法给出了这一过程的量化计算方法。
2.贝叶斯学习是一种基于贝叶斯统计学原理的机器学习方法,它通过使用贝叶斯定理来进行概率推断。这种方法基于贝叶斯概率的观点,将模型参数看作是概率变量,利用先验信息和观测数据来更新模型参数的后验分布。
3.先验分布:
先验分布是对模型参数在观测数据之前的信仰或认知的数学表达。选择合适的先验分布通常需要领域知识或经验,也可以根据问题的具体情况进行建模。
4.后验分布:
后验分布是在考虑观测数据后得到的参数分布,通过贝叶斯定理计算得到。后验分布反映了在观测到数据后对参数的新的置信度。
5.似然函数:
似然函数描述了在给定模型参数的情况下观测到数据的可能性。似然函数的选择通常基于对问题的建模和数据的分布。
6.贝叶斯分类器
包括朴素贝叶斯、TAN、BAN和GBN等。其中,朴素贝叶斯分类器是应用最为广泛的一种,它是基于贝叶斯定理的一种简单假设,即特征之间相互独立。
7.非高斯朴素贝叶斯
在实现朴素贝叶斯分类器时,scikit-learn库提供了5种不同的朴素贝叶斯分类算法,分别是伯努利朴素贝叶斯(BernoulliNB),类朴素贝叶斯(CategoricalNB),高斯朴素贝叶斯(GaussianNB)、多项式朴素贝叶斯(MultinomialNB)、补充朴素贝叶斯(ComplementNB)。在这五种算法中,高斯朴素贝叶斯是最常用的一种,它假设特征符合高斯分布。然而,实际应用中的数据可能并不都满足高斯分布,因此在这种情况下,我们可能需要使用非高斯朴素贝叶斯模型。
●朴素贝叶斯
朴素贝叶斯算法是一种基于贝叶斯定理的分类算法。它被称为“朴素”是因为它对每个特征的假设是独立的,这是一个简化的假设,因此称为朴素贝叶斯。
举例演示过程:小明有一题不会,向全班发送求助信息。三十名同学们都给了回复,小明发现三十个回复中既有作业答案,又有情书。作业有16份,情书有13份,唯独最后一份班长的回复看不懂。小明于是想通过关键词来确定班长的回复是答案还是情书。作业和情书中有一些共同的关键词。
问题1:为什么说朴素贝叶斯是一种简单粗暴的分类器?
答:(1)朴素贝叶斯算法基于朴素贝叶斯假设,即特征之间相互独立。虽然这个假设在实际情况中并不总是成立,但它使算法的计算变得相对简单,降低了复杂性。
(2)简单的数学模型: 朴素贝叶斯算法使用简单的概率统计和贝叶斯定理,对于数学和计算上的复杂性相对较低。这使得算法易于理解、实现和调整。
(3)处理高维数据: 朴素贝叶斯在处理高维数据时表现良好,而且随着特征数量的增加,其他复杂模型可能会变得更加困难和昂贵。朴素贝叶斯的简单性使其适用于高维数据集。
(4)对小规模数据集效果好: 在某些情况下,当训练数据相对较小时,朴素贝叶斯算法仍然能够表现出色,而其他更复杂的算法可能会因为过拟合的问题而受到影响。
问题2:朴素贝叶斯模型的参数是什么?如何训练获得最佳参数?
答:朴素贝叶斯模型的参数主要包括先验概率和条件概率。在训练模型时,主要任务是从训练数据中估计这些概率。
1.概率图模型基本思想
概率图模型是一种理论,它以图的形式表示变量的概率依赖关系。这种模型可以有效地描述和处理多个变量之间的复杂关系。
根据边是否有方向,概率图模型可以被分为有向概率图模型、无向概率图模型。
有向概率图模型包括隐马尔科夫模型、贝叶斯网络和动态贝叶斯网络;
无向概率图模型主要包括马尔科夫随机场和条件随机场;
2.概率图模型分为:有向概率图、无向概率图。
(1)有向概率图模型-----有向无环
有向图模型,也被称为贝叶斯网络,是一种基于有向无环图(DAG)的概率图模型。在这种模型中,节点代表随机变量,而箭头则代表这些随机变量之间的依赖关系。
在有向图模型中,如果存在一条从节点A到节点B的有向边,那么我们就可以说节点A是节点B的父节点,节点B是节点A的子节点。这种父子关系对应了因果关系或者条件依赖关系。例如,在一个朴素贝叶斯分类器中,类别标签就是因变量,而单词出现的频率就是自变量。
●D分隔
D分离,也被称为有向分离,是一种图形化方法,用于判断变量之间在概率图中的条件独立性。这种方法尤其适用于处理有向无环图(DAG)类型的数据结构。
判断两个特征是否独立: