当前位置: 首页 > 科技观察

从概念到案例:适合初学者的十大机器学习算法

时间:2023-03-14 15:11:47 科技观察

本文首先介绍了适合初学者的十大机器学习(ML)算法,我们通过一些图表和示例生动地解释了这些基本的机器学习的概念。我们希望本文提供一个易于阅读的介绍性概念,以帮助理解基本的机器学习(ML)算法。1.机器学习模型《哈佛商业评论》发表《数据科学家是21世纪最性感的工作》后,机器学习研究开始受到广泛关注。因此,对于刚接触机器学习领域的学习者,我们发布了一篇很受欢迎的博文——《初学者必知的十大机器学习算法》,虽然这只是针对初学者的。机器学习算法是一种无需人工干预即可从数据中学习并根据经验进行改进的方法。学习任务可能包括学习一个从输入到输出的函数,学习未标记数据的隐藏结构;或者是“基于实例的学习”,通过将新实例与存储在内存中的训练数据进行比较,为新实例生成类标签。基于实例的学习不会从具体示例中生成抽象结果。2.机器学习算法的类型机器学习算法分为三种类型:1.监督学习监督学习可以描述如下:使用标记的训练数据来学习从输入变量(X)到输出变量(Y)的映射函数。Y=f(X)分为两种:分类:通过给定的输入预测一个输出,输出变量以类别的形式展示。例子包括男性和女性、疾病和健康。回归:还预测给定输入的输出,其中输出变量表示为实数。例如预测降雨量、人体身高等真实值。本文介绍的前5种算法都是监督学习的例子:线性回归、逻辑回归、CART、朴素贝叶斯和KNN。集成学习也是一种监督学习方法。这意味着组合多个不同的弱学习模型来预测新样本。本文介绍的第9和第10种算法——随机森林Bagging和AdaBoostboosting算法是集成学习技术。2.无监督学习无监督学习只处理输入变量(X),不处理相应的输出(即没有标签)。它使用未标记的训练数据对数据的底层结构进行建模。无监督学习可以分为3种类型:Association:就是发现同一个数据集中不同的item一起出现的概率。广泛用于购物篮分析。示例:如果顾客购买面包,那么他有80%的机会购买鸡蛋。聚类:将更相似的对象归为一类而不是其他类别的对象。降维:顾名思义,降维就是在保证重要信息不丢失的情况下,减少数据集的变量。降维可以通过使用特征提取和特征选择方法来完成。特征选择方法选择原始变量的一个子集。特征提取完成了数据从高维空间到低维空间的转换。例如,主成分分析(PCA)是一种特征提取方法。本文介绍的算法6-8都是无监督学习的示例:包括Apriori算法、K-means聚类、主成分分析(PCA)。3.强化学习强化学习是一种学习方法,它允许代理通过学习最大化奖励的行为来根据当前状态决定下一步采取的最佳行动。强化学习通常通过反复试验来学习最佳动作。强化学习用于机器人技术,它通过在遇到障碍物后接收负面反馈来学习避免碰撞;它也用于视频游戏,通过反复试验发现一系列可以大大增加玩家奖励的动作。智能体可以使用这些回报来了解游戏中的最佳状态并选择下一步行动。三、监督学习1、线性回归在机器学习中,我们用输入变量x来确定输出变量y。输入变量和输出变量之间存在关系。机器学习的目标是定量描述这种关系。图1:线性回归显示为一条直线:y=ax+b在线性回归中,输入变量x和输出变量y之间的关系可以用方程的形式表示:y=ax+b。所以,线性回归的目标是找到参数a和b的值。这里,a是直线的斜率,b是直线的截距。图1以图形方式表示数据集中的x和y。如图所示,这里的目标是找到一条离大多数点最近的直线。这是为了减小数据点的y值与线之间的距离。2.LogisticRegression线性回归预测的是连续值(比如厘米级的降雨量),而逻辑回归预测的是使用变换函数后得到的离散值(比如学生是否通过考试)。逻辑回归最适用于二元分类问题(在一个数据集中,y=0或1,1代表默认类别。例如:预测一个事件是否会发生时,occurrence为1。当预测一个人是否生病时疾病是1)。这个算法是以它使用的变换函数命名的,这个函数叫做逻辑函数(logisticsfunction,h(x)=1/(1+e^x)),它的形象是一条S形曲线。在逻辑回归中,输出是默认类别的概率(不像线性回归,输出是直接生成的)。因为是概率,所以输出范围是[0,1]。输出值y是对输入值x进行对数变换h(x)=1/(1+e^-x)得到的。然后使用阈值将输出强制转换为二元分类问题。图2:用于确定肿瘤是恶性还是良性的回归。如果概率h(x)>0.5,则为恶性。在图2中,为了判断一个肿瘤是否是恶性的,默认变量设置为y=1(肿瘤是恶性的);变量x可以是检测肿瘤的结果,比如肿瘤的大小。如图所示,逻辑函数将变量x的值在0和1之间变换。如果概率超过0.5(以图中的水平线为界),则肿瘤被归类为恶性肿瘤。逻辑回归方程P(x)=e^(b0+b1*x)/(1+e^(b0+b1*x))可以转化为对数形式:ln(p(x)/1-p(x))=b0+b1*x。逻辑回归的目标是利用训练数据找到参数b0和b1的值,最小化预测结果与实际值的误差。使用最大似然估计法评估这些参数。3.分类和回归树分类和回归树(CART)是对决策树的补充。非终端节点包括根节点和内部节点。每个非终端节点代表单个输入变量x和该变量的分支节点;叶节点表示输出变量y。该模型根据以下规则进行预测:图3:决策树的某些部分4.朴素贝叶斯方法给定一个事件已经发生的概率,我们使用贝叶斯定理计算一个事件将发生的概率。我们还使用贝叶斯定理来计算给定一些变量值的结果的概率,即根据我们的先验知识(d)计算某个假设(h)为真的概率。计算方法如下:P(h|d)=(P(d|h)*P(h))/P(d)其中,P(h|d)=后验概率。就是假设h是真实的概率,给定的数据相当于先验知识d。其中P(h|d)=P(d1|h)*P(d2|h)*....*P(dn|h)*P(d)。P(d|h)=可能性。假设h为真时数据d的概率。P(h)=类别先验概率。假设h正确的概率。(无关数据)P(d)=预测先验概率。数据的概率(无关性假设)这种算法之所以被称为“朴素”,是因为它假定所有变量都是相互独立的,这是在现实世界中做出的朴素假设。图4:使用朴素贝叶斯方法预测变量“天气”的变化状态以图4为例,如果天气=晴天,输出结果是什么?当给定变量weather=sunny时,为了判断结果是yes还是no,需要计算P(yes|sunny)和P(no|sunny),然后选择概率较高的结果。计算过程如下:->P(yes|sunny)=(P(sunny|yes)*P(yes))/P(sunny)=(3/9*9/14)/(5/14)=0.60->P(无|晴)=(P(晴|无)*P(无))/P(晴)=(2/5*5/14)/(5/14)=0.40所以,当theweather=sunny,结果是Yes。5.KNNKNN使用整个数据集作为训练集,而不是将其拆分为训练集和测试集。当给定一个数据实例时,KNN算法会在整个数据集中寻找最接近它的新样本的k,或者说与新样本最相似的k,然后,对于回归问题,输出结果的平均值,或者对于分类问题,输出频率最高的类。k的值是用户定义的。样本之间的相似度使用欧氏距离或汉明距离计算。4.无监督学习算法6.Apriori算法Apriori算法用于挖掘交易数据库中的频繁子集,进而生成关联规则。常用于购物篮分析,分析数据库中最常发生的交易。通常,如果一个顾客购买了产品X,然后又购买了产品Y,那么这个关联规则可以写成:X->Y。例子:如果一个顾客购买了牛奶和糖果,他很可能还会购买现磨咖啡。这可以写成这样的关联规则:{牛奶,甜糖}->咖啡粉。关联规则是在超过支持度和置信度阈值后生成的。图5:关联规则X→Y支持度、置信度和提升度的公式表示。支持度有助于修改用作候选项集的频繁项集的数量。这种支持措施以Apriori原则为指导。Apriori原则指出:如果一个项目集是频繁的,那么它的所有子集都是频繁的。7.K-means聚类算法K-means是一种对相似数据进行聚类的迭代算法。它计算k个簇的质心,并为某一类的簇分配一个最接近其质心的数据点。图6:K-means算法的步骤步骤1:K-means初始化为k选择一个值。这里我们设置k=3。将数据点随机分配给三个集群。计算每个簇的中心点。图中红色、蓝色和绿色的星星分别代表三个星团的中心点。第2步:将每个观察值与一个聚类相关联将每个数据点重新分配到其最近的聚类质心。如图所示,前五个数据点被分配给由蓝星表示的集群。按照相同的步骤将数据点分配给由红色和绿色星星表示的集群质心。第3步:重新计算中心点计算新簇的中心点。如图所示,旧中心点为灰色,新中心点为红色、蓝色和绿色。第四步:迭代,当数据点所属簇不变时退出整个过程。重复步骤2-3,直到每个集群中的点都没有重新分配给另一个集群。如果连续两步没有变化,则退出K-means算法。8.主成分分析(PCA)主成分分析(PCA)通过减少变量数量使数据更易于探索和可视化。这是通过将具有最大方差的数据提取到称为“主成分”的新坐标系中来完成的。每个分量都是原始变量的新线性组合,并且成对统计独立。统计独立意味着这些成分的相关系数为0。第一个主成分捕获数据中具有最大方差的数据。第二主成分捕获剩余数据中方差最大但独立于第一主成分的数据。同样,后续的主成分(如PC3、PC4)是剩余数据中方差最大但与前面的主成分保持独立的数据。图7:使用主成分分析(PCA),三个初始变量(基因)被简化为两个新变量V.EnsembleLearningTechnologyIntegration是指将多个学习器(分类)通过投票或平均设备)组合起来以提高结果。在分类期间投票,在回归期间平均。核心思想是整合多个学习器以超越单个学习器。集成学习的三种方法:Bagging、Boosting和Stacking。这篇文章不是关于堆叠的。9.RandomForestBagging随机森林(多学习器)是对bagging决策树(单学习器)的改进。Bagging:Bagging的第一步是在使用Bootstrap采样方法获得的数据库中创建多个模型,每个生成的训练集都是原始数据集的一个子集。每个训练集大小相同,但有些样本重复了很多次,有些样本一次都没见过。然后,将整个原始数据集用作测试集。然后,如果原始数据集的大小为N,则每个生成的训练集的大小也为N,并且唯一(无重复)样本的大小约为2*N/3;测试集的大小也是N。bagging的第二步是使用相同的算法在不同的数据集上生成多个模型。然后,让我们谈谈随机森林。与决策树不同,在决策树中,每个节点都在最小化错误的最佳特征上分支,随机森林选择随机分支的特征来构建最佳分支。随机化的原因是即使有装袋,当决策树选择最好的特征进行分支时,它们最终会得到相似的模型和相关的预测。但是用随机子集上的特征进行分支意味着子树所做的预测不是很相关。10.AdaBoost提升算法a)Bagging是一个并行集成,因为每个模型都是独立构建的。然而,boosting是一个顺序集成,其中每个模型都会纠正先前模型的错误分类。b)Bagging主要涉及“简单投票”,即每个分类器对并行模型中大多数模型的最终结果进行投票;提升使用“重量投票”。每个分类器都会投票选出大多数模型得出的结果——但在构建这些顺序模型时,它会为之前错误分类样本的模型赋予更多权重。Adaboost是指自适应提升。图9:决策树的Adaboost在图9中,步骤1、2和3指的是称为决策树桩的弱学习器(仅依赖一个输入做出决策的1级决策树;是决策树其根节点直接连接到叶节点)。构建决策树的过程将一直持续到用户定义了多个弱学习器,或者在训练过程中没有改进。第4步结合了先前模型的3个决策存根(因此此决策树中有3个分支规则)。第1步:开始使用1个决策桩根据1个输入变量做出决策数据点的大小表明我们应用相等的权重将它们分类为圆形或三角形。决策赌注用图表上半部分的水平线对点进行分类。我们可以看到有两个圆被错误分类为三角形。所以,我们会给这两个圆圈更多的权重,然后使用另一个决策树桩。第2步:移动到下一个决策点并对另一个输入变量做出决策我们可以看到在上一步中被错误分类的两个圆比其余数据点大。现在,第二个决策赌注正试图正确预测这两个圆圈。由于赋予了更多的权重,这两个圆圈被左边的垂直线正确分类。但这又导致了上面3个小圆圈的错误分类。因此,我们希望在另一个决策中给予这三个圈子更多的权重。第3步:训练另一个决策存根以对下一个输入变量做出决策。在上一步中被错误分类的3个圆圈比其余数据点大。现在,在右侧生成一条垂直线,对三角形和圆形进行分类。第4步:组合决策存根我们将前3个步骤的决策存根组合起来,发现一个复杂的规则正确地对数据点进行了分类,优于任何弱学习器。6.结论回顾,本文主要内容:5种监督学习技术:线性回归、逻辑回归、CART(分类与决策树)、朴素贝叶斯方法和KNN。3种无监督学习技术:Apriori算法、K均值聚类、主成分分析(PCA)。两种集成学习方法:Baggingrandomforest,AdaBoostboosting。综上所述,机器学习的基本属性可以概括如下:机器学习是统计学的一个分支(利用样本获取近似函数)。我们有一个理论函数或分布确实存在以生成数据,但我们目前不知道它是什么。我们可以对这个函数进行采样,这些样本是从我们的训练集中选择的。以图片描述任务为例:function:f?(picture)→picturedescription,sample:data∈(image,description)。注意:由于一个对象有很多有效的描述,所以描述是文本空间中的一个分布:图片描述~文本。机器的目标是找到模型:表现力足以逼近真实函数,找到一种有效的算法,使用训练数据找到函数的最优解。而且这个最优解必须对未知输入有很好的泛化能力。