AI产品经理必备:机器学习算法基础

一袋米要扛几楼啊 2024-08-04 17:31:02 阅读 84

文章目录

1. 机器学习类型1.1 监督学习定义:主要分类:常见算法:

1.2 无监督学习定义:主要分类:常见算法:

1.3 半监督学习定义:主要分类:常见算法:应用场景:

1.4 强化学习定义:主要分类:常见算法:应用场景:

2. 七大经典算法2.1 K临近算法定义:原理例子:

2.2 线性回归定义:原理:

2.3 逻辑回归定义:原理:

2.3 朴素贝叶斯定义:原理:

2.5 决策树定义:原理:

2.6 支持向量机定义:原理:

2.7 K-means聚类定义:原理:

3. 参考文档:

1. 机器学习类型

第一个机器学习的定义来自于Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域,下面介绍常见的机器学习类型

1.1 监督学习

请添加图片描述

定义:

根据已有的数据集(样本集),知道输入(特征)和输出结果(标签)之间的关系。根据这种已知的关系,训练得到一个最优的模型。样本:数据的基础单位

在机器学习中,样本(Sample)是用于描述一个事件或一个对象记录的集合,也可理解为模型训练和学习的基础单元;每个样本通常由一组特征组成,这些特征可以是数值、文字、图像等各种形式的数据 特征:数据的表达与描述

在机器学习中,特征(Feature)是描述一个实例的属性或特点,也可以称为自变量(Independent Variable)或输入变量(Input Variable)。特征构成了机器学习模型的输入部分,用于描述样本或数据点。模型通过学习样本的特征与其对应的标签(或输出)之间的关系来做出预测或分类特征可以是任何类型的数据,包括数字、文本、图像和音频等。根据取值的不同,特征可以分为离散特征和连续特征。

离散特征具有有限取值集合或者是可数的 。连续特征则具有无限可能取值,通常是数值型的,表示数据点上的测量或观察结果。 标签:学习的目标与方向

标签(Label)是指与样本相关联的目标值或预期输出。它代表了我们希望模型从输入数据中学习并预测的结果。标签在监督学习中扮演着非常重要的角色,因为它们为模型提供了学习的目标和标准。标签可以是离散的类别值,也可以是连续的数值。

在分类问题中,标签通常表示样本所属的类别或分类结果。例如,在图像分类任务中,标签可以是图片中物体的类别(如“猫”、“狗”等)。在回归问题中,标签是连续的数值,代表了某种度量或预测结果,如房价、股票价格或温度预测等。

主要分类:

监督学习根据学习的目标结果(标签),分为分类问题和回归问题

分类问题:该类型的预测目标值是离散的。比如预测西瓜是好的还是坏的,最终的结果只有好瓜和坏瓜两种

分类(Classification):分类是一种监督学习技术,旨在将数据分为预定义的类别或标签。模型通过学习输入特征与标签之间的关系,然后用于对新的未知数据进行分类预测。例如,将电子邮件分为“垃圾邮件”和“非垃圾邮件”、将图像识别为“猫”和“狗”等。 回归问题:该类型的预测目标值是连续的。比如预测某个地区的房租销售价格

常见算法:

监督学习算法种类众多,有着极其广泛的应用,下面是一些常见的监督学习算法:

支持向量机(Support Vector Machine,SVM):SVM是一种用于二分类和多分类任务的强大算法(支持向量机是一种用于解决分类和回归问题的算法)。它通过找到一个最优的超平面来将不同类别的数据分隔开。SVM在高维空间中表现良好,并且可以应用于线性和非线性分类问题。简言之是对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier)。

请添加图片描述

决策树(Decision Trees):决策树是一种基于树结构的分类和回归算法。它通过在特征上进行递归的二分决策来进行分类或预测。决策树易于理解和解释,并且对于数据的处理具有良好的适应性。它通过构建一个树状结构来进行决策。每个内部节点表示一个特征或属性,每个叶子节点表示一个类别或值。决策树通过对输入数据进行分割,逐步判断其属于哪个类别或值。

请添加图片描述

逻辑回归(Logistic Regression):逻辑回归是一种广泛应用于二分类问题的线性模型。尽管名字中带有"回归",但它主要用于分类任务。逻辑回归输出预测的概率,并使用逻辑函数将连续输出映射到[0, 1]的范围内。

请添加图片描述

K近邻算法(K-Nearest Neighbors,KNN):KNN是一种基于实例的学习方法。它根据距离度量来对新样本进行分类或回归预测。KNN使用最接近的K个训练样本的标签来决定新样本的类别。朴素贝叶斯:朴素贝叶斯(Naive Bayes)算法理论基础是基于贝叶斯定理和条件独立性假设的一种分类方法。 它的主要思想是,通过历史数据,对每个类别建立经验概率公式,然后当新样本进来时,用各个类别的概率经验公式分别进行预测,最终,属于哪个类别的概率最大,就认为是哪个类别。可应用于多分类场景

二分类:表示分类任务有两个类别,比如我们想识别图片中是不是狗,也就是说,训练一个分类器,输入一幅图片,用特征向量x表示,输出是不是狗,用y=0或1表示。二类分类是假设每个样本都被设置了一个且仅有一个标签 0 或者 1。多类分类: 表示分类任务中有多个类别, 比如对一堆水果图片分类, 它们可能是橘子、苹果、梨等. 多类分类是假设每个样本都被设置了一个且仅有一个标签: 一个水果可以是苹果或者梨, 但是同时不可能是两者。多标签分类: 给每个样本一系列的目标标签. 可以想象成一个数据点的各属性不是相互排斥的(一个水果既是苹果又是梨就是相互排斥的), 比如一个文档相关的话题. 一个文本可能被同时认为是宗教、政治、金融或者教育相关话题。 应用场景

监督学习是最常见的机器学习方法之一,在各个领域都有广泛的应用,它的成功在很大程度上得益于其能够从带有标签的数据中学习,并对未见过的数据进行预测和泛化。图像识别:监督学习在图像识别任务中非常常见。例如,将图像分类为不同的物体、场景或动作,或者进行目标检测,找出图像中特定对象的位置。自然语言处理:在自然语言处理任务中,监督学习用于文本分类、情感分析、机器翻译、命名实体识别等。语音识别:监督学习在语音识别领域被广泛应用,例如将语音转换为文本、说话者识别等。医学诊断:在医学领域,监督学习可以用于疾病诊断、影像分析、药物发现等。

1.2 无监督学习

定义:

无监督学习是一种在没有标签的情况下,通过对训练集的学习(通过样本间的相似性对数据集进行聚类,使类内差距最小化,类间差距最大化),从而能够发现数据中的隐藏模式和结构的机器学习方法。在无监督学习中数据只有特征(feature)但是无标签(label),我们只提供一组未标记的输入数据,即训练集。无监督学习的目标不是告诉计算机怎么做,而是让它自己去学习怎样做事情,去分析数据集本身。常用的无监督学习算法有K-means、 PCA(Principle Component Analysis)。

主要分类:

聚类(Clustering):聚类是将数据样本分成相似的组别或簇的过程。它通过计算样本之间的相似性度量来将相似的样本聚集在一起。聚类是无监督学习中最常见的任务之一,常用于数据分析、市场细分、图像分割等。

聚类旨在根据数据点之间的相似性将数据分成不同的组或簇。聚类算法试图发现数据内在的结构,而无需预先定义类别标签。示例:例如,将顾客根据购买行为聚类成不同的群体,将文档根据内容聚类成不同的主题等。或者将一堆农产品中,将蔬菜放在一起,水果放在一起 降维(Dimensionality Reduction):降维是将高维数据转换为低维表示的过程,同时尽可能地保留数据的特征。降维技术可以减少数据的复杂性、去除冗余信息,并可用于可视化数据、特征提取等。常见的降维方法有主成分分析(PCA)和t-SNE等。关联规则挖掘(Association Rule Mining):关联规则挖掘用于发现数据集中项之间的关联和频繁项集。这些规则描述了数据集中不同项之间的关联性,通常在市场分析、购物推荐等方面应用广泛。异常检测(Anomaly Detection):异常检测用于识别与大多数样本不同的罕见或异常数据点。它在检测异常事件、欺诈检测、故障检测等领域有着重要的应用。

常见算法:

K-means聚类:K-Means是最常用和最简单的聚类算法之一,它是一种基于中心点的聚类方法,它将样本分配给离其最近的K个中心点所对应的簇。该算法的核心步骤包括初始化中心点、分配样本到最近的中心点所在的簇、更新中心点位置,使得簇内样本间的平方和最小。K均值聚类适用于数据集中各个簇的形状近似球形、大小相似的情况

请添加图片描述

层次聚类算法:层次聚类算法通过逐步合并或分裂簇来构建一个层次化的聚类树状结构。主要分为两种策略:

请添加图片描述

凝聚层次聚类(底至顶):从每个样本作为一个簇开始,逐步合并最相似的簇分裂层次聚类(顶至底):从所有样本作为一个簇开始,逐步将离散程度最高的簇进行分裂

高斯混合模型(GMM):高斯混合模型(Gaussian Mixed Model,GMM)也是一种常见的聚类算法,与K均值算法类似,同样使用了EM算法进行迭代计算。高斯混合模型假设每个簇的数据都是符合高斯分布(又叫正态分布)的,当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。

请添加图片描述

请添加图片描述

第一张图是一个数据分布的样例,如果只用一个高斯分布来拟合图中的数据,图 中所示的椭圆即为高斯分布的二倍标准差所对应的椭圆。直观来说,图中的数据 明显分为两簇,因此只用一个高斯分布来拟和是不太合理的,需要推广到用多个 高斯分布的叠加来对数据进行拟合。第二张图是用两个高斯分布的叠加来拟合得到的结果。这就引出了高斯混合模型,即用多个高斯分布函数的线形组合来对数据分布进行拟合。理论上,高斯混合模型可以拟合出任意类型的分布。

1.3 半监督学习

训练集同时包含有标记样本数据和未标记样本数据。(让学习过程不依赖外界的咨询交互,自动利用未标记样本所包含的分布信息的方法)

请添加图片描述

定义:

是介于监督学习和无监督学习之间的一种机器学习方法。它主要用于那些有大量未标记数据和少量标记数据的场景。半监督学习试图通过这两种类型的数据来改进学习模型的性能,尤其是在获取标记数据成本较高时

目标:利用未标记数据中的潜在信息来提高学习算法的性能,从而在预测新数据时达到更高的准确率。数据:半监督学习涉及到两种数据——大量的未标记数据(只有输入特征,没有输出标签)和少量的标记数据(既有输入特征,也有输出标签)

在半监督学习中,无标签的数据可以起到两个重要作用:

利用未标记数据的信息:未标记数据可能包含对数据分布、结构和隐含特征的有用信息,这些信息可以帮助模型更好地进行泛化。利用标记数据的传播效应:通过利用标记数据与无标签数据之间的数据分布相似性,可以通过传播标签信息到无标签样本,进而增强模型的性能。

主要分类:

半监督学习是介于监督学习和无监督学习之间的一种学习方式,它利用同时包含有标签和无标签数据的训练集来构建模型。半监督学习的类别主要分为以下几种:

半监督分类(Semi-supervised Classification):在半监督分类中,训练数据中同时包含带有标签的样本和无标签的样本。模型的目标是利用这些标签信息和无标签数据的分布信息来提高分类性能。半监督分类算法可以在分类任务中利用未标记数据来扩展有标签数据集,从而提高模型的准确性。半监督回归(Semi-supervised Regression):半监督回归任务与半监督分类类似,但应用于回归问题。模型通过有标签的数据和无标签数据进行训练,以提高对未标记数据的回归预测准确性。半监督聚类(Semi-supervised Clustering):半监督聚类算法将有标签数据和无标签数据同时用于聚类任务。它们可以通过结合数据的相似性信息和标签信息,来更好地识别潜在的簇结构。半监督异常检测(Semi-supervised Anomaly Detection):半监督异常检测任务旨在从同时包含正常样本和异常样本的数据中,利用有限的标签信息来检测异常。这在异常样本较少的情况下特别有用。生成对抗网络(GANs)中的半监督学习:GANs可以被用于实现半监督学习。在这种情况下,生成器和判别器网络可以使用有标签和无标签的样本,以提高生成模型的性能。

常见算法:

自训练(Self-training):首先,使用标记数据训练一个基本的监督学习模型。然后用这个模型预测未标记数据的标签,将预测结果中置信度高的部分作为伪标签,再次用来训练模型。生成模型(Generative Models):构建一个模型来描述标记和未标记数据的生成过程,然后用这个模型来预测新数据点的标签。半监督SVM(Semi-supervised Support Vector Machines):扩展了传统的SVM,使其能够利用未标记数据来寻找决策边界。图基方法(Graph-based Methods):构建一个图,其中节点表示标记和未标记的数据点,边表示数据点之间的相似性。然后,使用图中的信息来预测未标记数据点的标签。

应用场景:

文本分类:在大量未标记的文本数据和少量标记的文本数据的帮助下进行文本分类。图像识别:在图像识别任务中,获取大量标记的图像数据可能非常昂贵或者时间消耗巨大,半监督学习可以有效利用未标记的图像来提高识别准确率。生物信息学:在生物信息学中,半监督学习被用来分析基因表达数据,其中标记数据很难获取。

1.4 强化学习

定义:

是学习一个最优策略(policy),可以让本体(agent)在特定环境(environment)中,根据当前的状态(state),做出行动(action),从而获得最大回报(G or return)。

请添加图片描述

用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。

主要分类:

基于值的强化学习(Value-Based Reinforcement Learning):基于值的强化学习方法旨在学习价值函数,即给定状态或状态-动作对的值,代表了智能体在该状态或状态-动作对上能够获得的累积奖励的估计值。这些方法通常通过使用贝尔曼方程或其变种来更新价值函数,并使用它来选择动作。基于策略的强化学习(Policy-Based Reinforcement Learning):基于策略的强化学习方法直接学习策略函数,即将状态映射到动作的映射。策略可以是确定性的(对于每个状态只输出一个动作)或是概率性的(对于每个状态输出动作的概率分布)。这些方法通常通过梯度上升方法来更新策略参数,以最大化累积奖励。基于模型的强化学习(Model-Based Reinforcement Learning):基于模型的强化学习方法学习环境的模型,即从状态和动作预测下一个状态和奖励。然后,它可以使用学到的模型进行规划和决策,而无需真实地与环境进行交互。这样可以提高样本效率和规划效率。深度强化学习(Deep Reinforcement Learning):深度强化学习将深度神经网络与强化学习相结合。它通常使用深度神经网络来近似值函数或策略函数。深度强化学习在处理高维状态空间和动作空间的任务时表现出色。多智能体强化学习(Multi-Agent Reinforcement Learning):多智能体强化学习研究多个智能体在相互作用环境中的学习问题。在这种情况下,每个智能体的策略和动作会影响其他智能体的状态和奖励,因此学习变得更加复杂。

常见算法:

Q-Learning:Q-Learning是一种基于值的强化学习算法。它通过学习一个值函数(Q函数)来表示在给定状态下采取某个动作的累积奖励。Q-Learning使用贝尔曼方程更新Q值,并使用贪心策略来选择动作。SARSA:SARSA是另一种基于值的强化学习算法。它与Q-Learning类似,但不同之处在于它在学习和决策阶段都使用当前策略的动作来更新Q值。DQN(Deep Q Network):DQN是一种深度强化学习算法,结合了深度神经网络和Q-Learning。它使用深度神经网络来近似Q函数,通过经验回放和目标网络来稳定训练。A3C(Asynchronous Advantage Actor-Critic):A3C是一种基于策略的强化学习算法,它结合了Actor-Critic方法和异步训练。A3C使用多个智能体并行地训练,以提高样本效率。PPO(Proximal Policy Optimization):PPO是一种基于策略的强化学习算法,它通过限制更新幅度来稳定训练。PPO在深度强化学习中表现出色,并被广泛应用于各种任务。TRPO(Trust Region Policy Optimization):TRPO是另一种基于策略的强化学习算法,它使用限制步长的方法来保证更新策略时不会使性能变差。

应用场景:

自动驾驶:强化学习可以应用于自动驾驶领域,使车辆能够根据环境和交通状况做出决策,例如规划路径、避免障碍物和遵守交通规则。机器人控制:强化学习可以帮助机器人在未知环境中进行自主探索和学习,以完成复杂的任务,例如导航、抓取物体和人机交互。游戏:强化学习在游戏玩法中有广泛的应用。例如,使用强化学习训练智能体来玩电子游戏、围棋、扑克等,使其能够与人类玩家媲美甚至超越。医疗治疗:强化学习可以在医疗领域中应用于个性化治疗和药物治疗决策,根据患者的情况和病情做出合适的治疗计划。语音识别和自然语言处理:强化学习可以应用于语音识别和自然语言处理任务,使智能体能够更好地理解和生成自然语言。

2. 七大经典算法

2.1 K临近算法

定义:

如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。大白话来说,所谓 K 近邻,就是每个样本都可以用它最接近的 K 个邻居来代表。如果一个样本,它的 K 个最接近的邻居大部分都属于分类 A,那么这个样本也属于分类 A。K近邻(K-Nearest Neighbor, KNN)是一种最经典和最简单的有监督学习方法之一。K-近邻算法是最简单的分类器,没有显式的学习过程或训练过程,是懒惰学习(Lazy Learning)。当对数据的分布只有很少或者没有任何先验知识时,K 近邻算法是一个不错的选择。K近邻算法既能够用来解决分类问题,也能够用来解决回归问题

原理

该方法有着非常简单的原理:当对测试样本进行分类时,首先通过扫描训练样本集,找到与该测试样本最相似的个训练样本,根据这个样本的类别进行投票确定测试样本的类别。也可以通过个样本与测试样本的相似程度进行加权投票。如果需要以测试样本对应每类的概率的形式输出,可以通过个样本中不同类别的样本数量分布来进行估计。整个计算过程分为三步(三个基本要素):

距离度量:计算待分类物体与其他物体之间的距离;K 值的选择:统计距离最近的 K 个邻居;分类决策规则:对于 K 个最近的邻居,它们属于哪个分类最多,待分类物体就属于哪一类。

例子:

有一个游戏公司,他们开发了一款游戏。这款游戏发布了一段时间后,他们得到了一些用户的数据。数据如面这幅图所示:

请添加图片描述

这个图上的每一个图形表示一个用户。红色的三角形表示该用户喜欢这款游戏;蓝色的正方形表示该用户不喜欢这款游戏。图上有2个坐标。横坐标表示用户的年龄,纵坐标表示用户平均每天玩手机的时长,单位是分钟。

比如,右下角这个蓝色方框。这个用户的年龄大概50岁,TA每天平均玩手机的时间30分钟左右。这个图形是蓝色,表示他不喜欢这款游戏。再比如左上角的红色三角形。这个用户的年龄不到15岁,每天玩手机时间240分钟,也就是4个小时。这个图形是红色,表示他喜欢这款游戏。其它用户也是一样等逻辑。公司想知道,他们是否应该向这个用户推广这款游戏?现在,他们从某些渠道获得了一批新用户。比如,有一个用户,在图上表示为绿色的圆点。这个用户大概30岁,每天玩手机时长有200分钟左右。

请添加图片描述

于是刚才那个问题就转换成为:预测这个绿色的新用户是否喜欢这款游戏。这里我们需要一个假设:属性越接近的人,行为偏好也越相似。比如,两个20多岁的人,他们的行为偏好可能比较相似;而一个20多岁和一个50多岁的人,他们的行为偏好就会相差比较大。也就是说,年龄这个属性越接近,行为偏好也就越相似。再比如,两个工程师,他们的行为偏好可能就比较相似。而一个工程师和一个演员,他们的行为偏好就会相差比较大。也就是说,行业这个属性越接近,行为偏好也就越相似。推广一下,就是属性越接近的人,行为偏好也越相似。这跟我们常说的“物以类聚、人以群分”是一个道理。回到我们的案例。要想知道绿色的用户跟那一类用户更相似,我们可以比较他跟哪些人的属性更接近。或者反过来说,跟他接近的人有哪些?我们发现,“接近”是一个距离的概念。在二维平面图上,就是指哪些图形距离这个绿色圆点比较短。我们要判断新用户(绿色圆点)喜欢不喜欢这款游戏,就是判断这个点应该属于红色还是应该属于蓝色。根据上面的假设,我们可以先找到跟他属性接近的图形,也就是它的邻居。看看它的邻居都是什么类型的。如果邻居都是红色,根据物以类聚的原则,它大概率也是红色。如果邻居都是蓝色,它大概率也就是蓝色。那选几个邻居比较合适呢?这个数由我们自己定,我们可以选任意K个邻居,K是个整数。这就是K临近法的含义。

比如我们选4个最近邻居。发现四个邻居有3个是红色,只有一个蓝色。邻居中红色占多数,我们就可以判断,这个新用户也大概也是红色。物以类聚嘛!他是红色就表示他喜欢这款游戏,因此这家公司应该给他推荐这款游戏。

请添加图片描述

我们还可以扩大一下邻居的范围,比如找8个邻居。这时发现5个红色,3个蓝色。还是红色邻居多,因此我们仍然判断这个用户是红色。

请添加图片描述

不过并不是任意选几个邻居都能得出相同的结论。比如我们选1个邻居。这时就会发现,这个邻居是蓝色,因此结论应该是该用户为蓝色。与之前的结论不一样!

请添加图片描述

理论上讲选的邻居越多越好。不过,太多的话,计算量大,算起来也就会慢。通常我们需要根据实际情况选择合适的K值,既使得结论比较合理,同时计算量也不会太大。不过有心的同学可能会发现一个问题。我们的图只有两个属性:“年龄”和“每天玩手机的时长”。如果有三个属性怎么办?比如,我们还有一个属性是“学历”。该怎么表达呢?其实三个属性可以用三维的空间表示,x、y、z三个坐标。每一个坐标代表一个属性。一个点的邻居,就是它在三维空间中离它最近的那些点。三维空间中两点的距离,其计算方法与二维平面两点距离是类似的。

请添加图片描述

如果有4个属性,那就是4维空间表示。有N个属性,就用N维空间表示。我们可能无法想象出高维空间是什么样子大,不过高维空间中两个点的距离,其计算方法与二维、三维中的距离计算方法是类似的。

因此不管有多少个属性,K临近法都可以用相同的计算方法。

2.2 线性回归

定义:

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。

我们首先弄清楚什么是线性,什么是非线性。

线性:两个变量之间的关系是一次函数关系的——图象是直线,叫做线性。(这里线性是指广义的线性,也就是数据与数据之间的关系)非线性:两个变量之间的关系不是一次函数关系的——图象不是直线,叫做非线性。回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值,为了能够得到真实值,无限次的进行测量,最后通过这些测量数据计算回归到真实值,这就是回归的由来。作用:对大量的观测数据进行处理,从而得到比较符合事物内部规律的数学表达式。也就是说寻找到数据与数据之间的规律所在,从而就可以模拟出结果,也就是对结果进行预测。解决的就是通过已知的数据得到未知的结果。例如:对房价的预测、判断信用评价、电影票房预估等。通俗的说就是用一个函数去逼近这个真实值

原理:

线性回归的一般模型:

请添加图片描述

图片上有很多个点,通过这些点我们很难预测当x值=某个值时,y的值是多少?是否能够找到一条直线来描述这些点的趋势或者分布呢?答案是肯定的。

假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。

线性回归就是假设这个方程是一个线性方程,即假设这个方程是一个多元一次方程。

请添加图片描述

当i=0时,其实就是个一元一次方程

首先举个例子,某个地区房价的一些相关信息,有日期、房间数、建筑面积、房屋评分等特征,表里头的数据就是我们要的x1、x2、x3……… ,表中的price列就是房屋的价格,也就是h(x)

请添加图片描述

损失函数(Loss Function)

我们要做的是依据我们的训练集,选取最优的θ,在我们的训练集中让h(x)尽可能接近真实的值。h(x)和真实的值之间的差距,我们定义了一个函数来描述这个差距,这个函数称为损失函数,表达式如下:

请添加图片描述

这里的这个损失函数就是著名的最小二乘损失函数。用来估量模型的预测值 h(x)与真实值 的不一致程度,损失函数越小,模型的效果就越好

我们要选择最优的θ,使得h(x)最近进真实值。这个问题就转化为求解最优的θ,使损失函数J(θ)取最小值。那么如何解决这个转化后的问题呢?这又牵扯到一个概念:

梯度下降(Radient Descent)

一开始损失函数是比较大的,但随着直线的不断变化(模型不断训练),损失函数会越来越小,从而达到极小值点,也就是我们要得到的最终模型。这种方法我们统称为梯度下降法。随着模型的不断训练,损失函数的梯度越来越平,直至极小值点,点到直线的距离和最小,所以这条直线就会经过所有的点,这就是我们要求的模型(函数)。以此类推,高维的线性回归模型也是一样的,利用梯度下降法优化模型,寻找极值点,这就是模型训练的过程。

请添加图片描述

2.3 逻辑回归

定义:

逻辑回归又叫对数几率回归,是一种广义的线性回归分析模型。虽然名字里有回归,但其实是分类模型,常用于二分类。

原理:

一个二分类问题给的条件,分类标签Y {0,1},特征自变量X{x1,x2,……,xn},如何根据我们现在手头上有的特征X来判别它应该是属于哪个类别(0还是1)。问题的求解转化为:我们如何找一个模型,即一个关于X的函数来得出分类结果(0或1),初步思路:找一个线性模型来由X预测Y,但是很明显,这样的函数图像是类似一条斜线,难以达到我们想要的(0或1)的取值

在这里插入图片描述

在这里插入图片描述

所以我们引入了一个特殊的函数sigmo函数:

在这里插入图片描述

在这里插入图片描述

本质:将线性回归的结果映射到[0,1]区间上,实质上就是完成了二分类任务。

在这里插入图片描述

2.3 朴素贝叶斯

定义:

分类算法常用的有很多种,朴素贝叶斯算法是其中一个比较常用的,之所以称为朴素贝叶斯算法主要是因为该算法最基本的原理是基于贝叶斯定理的,称为朴素是因为该算法成立的前提是特征之间必须得是独立的。 朴素贝叶斯(Naive Bayes)算法理论基础是基于贝叶斯定理和条件独立性假设的一种分类方法。 它的主要思想是,通过历史数据,对每个类别建立经验概率公式,然后当新样本进来时,用各个类别的概率经验公式分别进行预测,最终,属于哪个类别的概率最大,就认为是哪个类别。

原理:

贝叶斯公式如下所示

在这里插入图片描述

在这里插入图片描述

公式二很直白地说明的了贝叶斯模型的用途以及其原理。

通俗地说在 B 出现的前提下 A 出现的概率,等于 A 和 B 都出现的概率除以 B 出现的概率。

换句话说就是后验概率和先验概率的关系。

但在实际应用中,很少有一件事只受一个特征影响的情况,往往影响一件事的因素有多个。假设,影响 B 的因素有 n 个,分别是 b1,b2,…,bn。则 P(A|B) 可以写为:

在这里插入图片描述

A 的先验概率 P(A) 和多个因素的联合概率 P(b1,b2,…,bn) 都是可以单独计算的,与 A 和 bi 之间的关系无关,因此这两项都可以被看作常数。

对于求解 P(A|b1,b2,…,bn),最关键的是 P(b1,b2,…,bn|A)。根据链式法则,可得

在这里插入图片描述

上面的求解过程,看起来复杂,但是如果从 b1 到 bn这些特征之间,在概率分布上是条件独立的,也就是说每个特征 bi与其他特征都不相关。如下图所示:

在这里插入图片描述

那么,当 i≠j 时,有 P(bi|A,bj)=P(bi|A) —— 无关条件被排除到条件概率之外,这一点由上图可以很直观地看出。因此,当 b1,b2,…,bn 中每个特征与其他 n-1 个特征都不相关时,就有:

在这里插入图片描述

上式中的 b1 到 bn 是特征(Feature),而 A 则是最终的类别(Class),所以,我们换一个写法:

在这里插入图片描述

这个公式也就是我们的朴素贝叶斯分类器的模型函数!由该公式可知,当所求的分类不同时,该式 Z 对应 P(b1,b2,…,bn)永远都是固定不变的,因此当计算对象所属类别时可直接省去该公式中的分母部分。

它用来做预测时是这样的:

有一个朴素贝叶斯分类模型(器),它能够区分出 k 个类 (c1,c2,…,ck), 用来分类的特征有 n 个:(F1,F2,…,Fn)。

现在有个样本 s,我们要用 朴素贝叶斯分类器对它做预测,则需要先提取出这个样本的所有特征值 F1到 Fn,将其带入到下式(因为对应不同分类的分母为固定值,所以公式可简化为如下所示)中进行 k 次运算:

然后比较这 k 次的结果,选出使得运算结果达到最大值的那个 cj(j=1,2,…,k)—— 这个 cj 对应的类别就是预测值。求上式的最大值也可以用为如下公式表示:

在这里插入图片描述

注:argmax是一种函数,函数y=f(x),x0= argmax(f(x)) 的意思就是参数x0满足f(x0)为f(x)的最大值;

设我们当前有一个模型,总共只有两个类别:c1 和 c2;有三个 Feature:F1,F2和F3。F1 有两种可能性取值:f11 和 f12;F2 有三种可能性取值:f21,f22,f23;F3 也有两种可能性取值:f31,f32。那么对于这个模型,我们要做得,就是通过训练过程,获得下面这些值:

在这里插入图片描述

在这里插入图片描述

把这些概率值都算出来以后,就可以用来做预测了。

在这里插入图片描述

2.5 决策树

定义:

决策树是一种树形结构,是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。

原理:

决策树的基本原理是通过对训练数据集的特征分析,选择最优特征作为节点进行分裂,以构建一棵能够对新数据进行准确分类或预测的树结构。在构建过程中,采用基于信息论的指标(如信息增益、增益率、基尼指数等)来衡量特征的重要性和选择分裂节点。例如,基于信息增益的原理,如果一个特征能够最大程度地降低数据集的不确定性(即增加信息),那么就选择该特征作为分裂节点。如下面这个“相亲决策树”:

在这里插入图片描述

由此我们可以看到,决策树的思想还是非常直观的。

用决策树分类:从根节点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子节点,此时每个子节点对应着该特征的一个取值,如此递归的对实例进行测试并分配,直到到达叶节点,最后将实例分到叶节点的类中。

2.6 支持向量机

定义:

支持向量机(Support Vector Machine,SVM)是一种有监督的机器学习算法,可用于分类和回归任务。在分类任务中,它的基本思想是在特征空间中寻找一个能够将不同类别样本尽可能分开的超平面。

原理:

支持向量机(Support Vector Machine,SVM)是众多监督学习方法中十分出色的一种,几乎所有讲述经典机器学习方法的教材都会介绍。关于SVM,流传着一个关于天使与魔鬼的故事。

传说魔鬼和天使玩了一个游戏,魔鬼在桌上放了两种颜色的球。魔鬼让天使用一根木棍将它们分开。这对天使来说,似乎太容易了。天使不假思索地一摆,便完成了任务。魔鬼又加入了更多的球。随着球的增多,似乎有的球不能再被原来的木棍正确分开,如下图所示。

在这里插入图片描述

SVM实际上是在为天使找到木棒的最佳放置位置,使得两边的球都离分隔它们的木棒足够远。依照SVM为天使选择的木棒位置,魔鬼即使按刚才的方式继续加入新球,木棒也能很好地将两类不同的球分开。

看到天使已经很好地解决了用木棒线性分球的问题,魔鬼又给了天使一个新的挑战,如下图所示。

在这里插入图片描述

按照这种球的摆法,世界上貌似没有一根木棒可以将它们 完美分开。但天使毕竟有法力,他一拍桌子,便让这些球飞到了空中,然后凭借 念力抓起一张纸片,插在了两类球的中间。从魔鬼的角度看这些 球,则像是被一条曲线完美的切开了。

在这里插入图片描述

后来,“无聊”的科学家们把这些球称为“数据”,把木棍称为“分类面”,找到最 大间隔的木棒位置的过程称为“优化”,拍桌子让球飞到空中的念力叫“核映射”,在 空中分隔球的纸片称为“分类超平面”。这便是SVM的童话故事。

支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

线性分类器:给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类。如果用x表示数据点,用y表示类别(y可以取1或者0,分别代表两个不同的类),一个线性分类器的学习目标便是要在n维的数据空间中找到一个超平面(hyper plane),这个超平面的方程可以表示为( wT中的T代表转置):

wTx+b=0w^Tx+b=0wTx+b=0

这个超平面可以用分类函数 f(x)=wTx+bf(x)=w^Tx+bf(x)=wTx+b 表示,当f(x) 等于0的时候,x便是位于超平面上的点,而f(x)大于0的点对应 y=1 的数据点,f(x)小于0的点对应y=-1的点,如下图所示:

在这里插入图片描述

函数间隔:

在超平面wx+b=0确定的情况下,|wx+b|能够表示点x到距离超平面的远近,而通过观察wx+b的符号与类标记y的符号是否一致可判断分类是否正确,所以,可以用(y(w*x+b))的正负性来判定或表示分类的正确性。于此,我们便引出了函数间隔(functional margin)的概念。

函数间隔公式:

在这里插入图片描述

而超平面(w,b)关于数据集T中所有样本点(xi,yi)的函数间隔最小值(其中,x是特征,y是结果标签,i表示第i个样本),便为超平面(w, b)关于训练数据集T的函数间隔

在这里插入图片描述

但这样定义的函数间隔有问题,即如果成比例的改变w和b(如将它们改成2w和2b),则函数间隔的值f(x)却变成了原来的2倍(虽然此时超平面没有改变),所以只有函数间隔还远远不够。

几何间隔:

事实上,我们可以对法向量w加些约束条件,从而引出真正定义点到超平面的距离–几何间隔(geometrical margin)的概念。假定对于一个点 x ,令其垂直投影到超平面上的对应点为 x0 ,w 是垂直于超平面的一个向量,γ,γ为样本x到超平面的距离,如下图所示:

在这里插入图片描述

根据平面几何知识,有

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为了得到γ绝对值,令γ乘上对应的类别 y,即可得出几何间隔(用表示)的定义:

在这里插入图片描述

从上述函数间隔和几何间隔的定义可以看出:几何间隔就是函数间隔除以||w||,而且函数间隔y*(wx+b) = y*f(x)实际上就是|f(x)|,只是人为定义的一个间隔度量,而几何间隔|f(x)|/||w||才是直观上的点到超平面的距离。

最大间隔分类器的定义:

对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。这个间隔就是下图中的Gap的一半。

在这里插入图片描述

通过由前面的分析可知:函数间隔不适合用来最大化间隔值,因为在超平面固定以后,可以等比例地缩放w的长度和b的值,这样可以使得 的值任意大,亦即函数间隔可以在超平面保持不变的情况下被取得任意大。但几何间隔因为除上了,使得在缩放w和b的时候几何间隔的值是不会改变的,它只随着超平面的变动而变动,因此,这是更加合适的一个间隔。换言之,这里要找的最大间隔分类超平面中的“间隔”指的是几何间隔。

如下图所示,中间的实线便是寻找到的最优超平面(Optimal Hyper Plane),其到两条虚线边界的距离相等,这个距离便是几何间隔,两条虚线间隔边界之间的距离等于2倍几何间隔,而虚线间隔边界上的点则是支持向量。由于这些支持向量刚好在虚线间隔边界上,所以它们满足 ,对于所有不是支持向量的点,则显然有

在这里插入图片描述

2.7 K-means聚类

定义:

K-means算法是一种基于距离的聚类算法,其核心思想是通过迭代的方式将数据划分为K个簇,使得每个簇内的数据点尽可能接近其簇中心,而不同簇之间的数据点尽可能远离。

原理:

算法的具体步骤如下:

随机选择K个数据点作为初始簇中心;将每个数据点分配到离其最近的簇中心所在的簇中;重新计算每个簇的簇中心,即该簇中所有数据点的均值;重复步骤2和3,直到簇中心不再发生显著变化或达到预设的迭代次数

在这里插入图片描述

3. 参考文档:

https://blog.csdn.net/lsb2002/article/details/132005658https://developer.baidu.com/article/detail.html?id=293614https://zhuanlan.zhihu.com/p/575344955https://blog.csdn.net/m0_74195174/article/details/136628162https://cloud.tencent.com/developer/article/2013449https://zhuanlan.zhihu.com/p/691133200https://cloud.tencent.com/developer/article/2352934https://cloud.tencent.com/developer/article/1476195https://cloud.tencent.com/developer/article/1044140https://lulaoshi.info/deep-learning/linear-model/minimise-loss-function.html#%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95%E7%9A%84numpy%E5%AE%9E%E7%8E%B0https://zhuanlan.zhihu.com/p/409261701https://cloud.tencent.com/developer/article/1904044https://cloud.tencent.com/developer/article/2245321https://cloud.tencent.com/developer/article/1331660https://www.sohu.com/a/339641789_717210https://cloud.tencent.com/developer/article/1800586https://cloud.tencent.com/developer/article/1510706https://cloud.tencent.com/developer/article/2157821



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。