机器学习有哪些常用算法,性能怎么样,有什么优缺点?

学习
  • AIUST.Com
  • 2023-03-16 20:30

机器学习算法有很多种,根据学习方式的不同,可以分为监督式学习、无监督式学习、半监督式学习和强化学习等。每种算法都有自己的原理、性能和应用场景。常用的机器学习算法,例如:

一、k-邻近算法(kNN)

这是一种基于实例的分类算法,它根据给定样本的最近的k个邻居的类别来预测其类别。它适用于小规模数据集和非线性分类问题。

k-邻近算法的公式是这样的:给定一个训练数据集 \(T = {(x_i,y_i),⋯,(x_n,y_n)}\) ,其中 \(x_i\) 是特征向量,\(y_i\) 是类别标签,对于新的输入实例 x ,在训练集中找到与之距离最近的 k 个实例\(N k (x)\) ,然后根据这 k 个实例的类别标签进行投票或加权,得到 x 的预测类别。

KNN算法的公式:

1、计算欧氏距离公式: 欧氏距离公式可以表示为:

\(d(x_i,x_j) = \sqrt{\sum_{n=1}^{N}(x_i^{(n)} - x_j^{(n)})^2}\) 

其中,\(x_i\) 和\(x_j\) 分别代表两个样本,N代表样本特征数。

2、KNN算法的分类决策规则: KNN算法中通常使用简单投票法来进行分类决策,即根据K个最近邻样本的标签进行统计,将出现次数最多的标签作为待分类样本的标签。

\(\hat{y} = \underset{y_i}{\operatorname{argmax}} \sum_{j \in \Omega_k}I(y_j = y_i)\)

其中,\(\Omega_k\)代表距离待分类样本最近的K个样本组成的集合,\(I(\cdot)\)是指示函数,\(y_i\)表示第\(i\)个类别标签。

k-邻近算法的性能分析:

时间复杂度:k-邻近算法需要计算输入实例与所有训练数据集中的实例之间的距离,然后进行排序和投票或加权,所以时间复杂度为\(O(mnd + mk)\),其中 m 是训练数据集的大小,n 是特征向量的维度,d 是距离度量函数的时间复杂度,k 是邻居数目。可以看出,当训练数据集很大或者特征向量很高维时,k-邻近算法会非常耗时。

空间复杂度:k-邻近算法需要存储整个训练数据集和输入实例,所以空间复杂度为\(O(mn)\)。可以看出,当训练数据集很大或者特征向量很高维时,k-邻近算法会占用较多内存。

准确率:k-邻近算法的准确率受到多个因素的影响,例如距离度量函数、邻居数目 k 、投票或加权方式等。一般来说,在相同条件下,较小的 k 值会使得模型更复杂、更容易过拟合、更不稳定;较大的 k 值会使得模型更简单、更容易欠拟合、更平滑。因此,在实际应用中需要通过交叉验证等方法来选择合适的 k 值。

二、决策树(DT)

决策树(Decision Tree)是一种基于树结构的分类与回归方法,它通过对样本特征进行递归划分来实现对数据集的分类。决策树的每个非叶节点表示一个特征,每个叶节点表示一种分类结果。决策树的建立过程就是根据训练集构建树模型的过程,其中主要包括三个步骤:选择划分特征、确定划分点和生成子节点。简而言之,这是一种基于树结构的分类和回归算法,它通过对特征进行分裂和剪枝来构建一棵决策树,并根据决策树的路径来预测样本的类别或数值3。它适用于大规模数据集和复杂特征组合问题。

决策树算法的基本原理是通过计算每个特征的信息增益或信息增益比来选择最优的划分特征,然后对数据集按照该特征进行划分,重复这个过程直到所有样本属于同一类别或者无法继续划分为止。决策树分类算法在每个节点处采用一定的规则对特征进行划分,并生成子节点,直到叶子节点表示所有类别。

决策树算法的优点包括:

1. 易于理解和解释,能够输出决策过程;

2. 能够处理离散和连续型数据;

3. 可以处理具有多个输出的问题;

4. 对于缺失值和异常值具有容错性。

决策树算法的缺点包括:

1. 容易产生过拟合,特别是在处理噪声较多的数据时;

2. 无法处理复杂的数据关系;

3. 对于某些类别较少的数据集容易出现预测偏差。

决策树算法的性能主要取决于以下因素:

1. 划分选择标准:不同的划分选择标准会影响算法的性能和复杂度;

2. 树的深度:过深的树容易过拟合;

3. 训练集的数量和特征数:训练集越大,决策树算法的性能越好;

4. 数据质量:数据质量好的训练集能够提高决策树算法的性能;

5. 特征选择:选择具有较高信息增益的特征能够提高决策树算法的性能。

决策树算法公式

决策树算法的核心是根据训练数据构建决策树模型,其中需要用到以下几个公式:

1、信息熵(Entropy)公式:

\(H(X)=-\sum_{i=1}^{n}p_{i}log_{2}(p_{i})\)

其中,\(X\)为样本集合,\(p_{i}\)表示样本属于第\(i\)个类别的概率。

2、条件熵(Conditional Entropy)公式:

\(H(Y|X)=\sum_{i=1}^{m}p_{i}H(Y|X=x_{i})\)

其中,\(Y\)表示目标变量,\(X\)表示某个特征变量,\(x_{i}\)表示特征变量\(X\)的第\(i\)个取值,\(p_{i}\)表示特征变量\(X\)取\(x_{i}\)的概率。

3、信息增益(Information Gain)公式:

\(Gain(X)=H(Y)-H(Y|X)\)

其中,\(Y\)为目标变量,\(X\)为特征变量,\(H(Y)\)表示样本集合\(Y\)的信息熵,\(H(Y|X)\)表示在特征变量\(X\)的条件下,样本集合\(Y\)的条件熵。

4、信息增益比(Gain Ratio)公式:

\(Gain_Ratio(X)=\frac{Gain(X)}{IV(X)}\)

其中,\(IV(X)\)为特征变量\(X\)的固有值(Intrinsic Value):

\(IV(X)=-\sum_{i=1}^{m}\frac{|D_{i}|}{|D|}log_{2}(\frac{|D_{i}|}{|D|})\)

其中,\(D\)为样本集合,\(D_{i}\)表示特征变量\(X\)取值为\(x_{i}\)的样本集合。

这些公式用于选择最优的划分特征和确定决策树节点的分类结果。通过计算不同特征的信息增益或信息增益比,选择最优的特征进行样本划分,构建决策树模型。

三、朴素贝叶斯(NB)

朴素贝叶斯算法是一种基于基于概率统计理论中的贝叶斯定理和特征条件独立假设的分类算法。该算法通过已知类别的训练数据集学习先验概率和特征条件概率,然后根据贝叶斯定理计算后验概率,从而实现分类;并选择最大概率对应的类别作为预测结果。它适用于中小规模数据集和文本分类问题。

具体来说,朴素贝叶斯算法的步骤如下:

1. 准备训练数据集,其中每个样本的特征和标签都已知。

2. 计算每个类别的先验概率,即在所有样本中该类别的出现频率。

3. 对于每个特征,计算在每个类别下的条件概率,即该特征在该类别下的出现频率。

4. 根据贝叶斯定理,计算每个样本属于每个类别的后验概率,并选择概率最大的类别作为分类结果。

在朴素贝叶斯算法中,特征条件独立假设是指假设每个特征对于分类的影响是相互独立的,即每个特征的出现概率都是独立的。虽然这个假设在实际情况中可能并不成立,但朴素贝叶斯算法在许多实际问题中表现出了很好的分类性能。

朴素贝叶斯算法的公式如下:

给定样本\(x=(x_1,x_2,\ldots,x_n)\),\(y\)为类别变量,朴素贝叶斯算法的分类公式为:

\(P(y|x) = \frac{P(x|y)P(y)}{P(x)} = \frac{P(y)\prod_{i=1}^nP(x_i|y)}{P(x)}\)

其中,\(P(y|x)\)为后验概率,表示给定样本\(x\)后\(y\)的概率;\(P(x|y)\)为类条件概率,表示在类别\(y\)下样本\(x\)出现的概率;\(P(y)\)为先验概率,表示在所有样本中类别\(y\)的出现频率;\(P(x)\)为样本\(x\)的边缘概率,表示样本\(x\)在所有类别下出现的概率。

朴素贝叶斯算法的时间复杂度较低,为\(O(NM)\),其中\(N\)为样本数,\(M\)为特征数。由于该算法基于特征条件独立假设,因此需要很少的训练样本就能学习分类规则。

朴素贝叶斯算法优缺点:

优点:

1. 算法简单,实现容易。由于假设特征之间是条件独立的,计算每个特征在每个类别下的条件概率非常简单,因此算法的实现相对容易。

2. 在数据较少的情况下仍然有效。朴素贝叶斯算法需要估计先验概率和条件概率,但即使在数据较少的情况下,该算法仍然能够给出相对合理的分类结果。

3. 处理多分类问题的能力强。朴素贝叶斯算法在处理多分类问题时表现良好,而且可以很容易地扩展到更多类别的情况。

缺点:

1. 特征条件独立假设往往不成立。朴素贝叶斯算法假设所有特征对分类的影响是相互独立的,但实际情况下这种假设往往不成立,因此可能会影响分类的准确性。

2. 对输入数据的表达形式敏感。朴素贝叶斯算法假设输入数据是由各个特征独立组成的向量,因此如果输入数据的表达形式与假设不符,可能会影响分类的准确性。

3. 需要足够的样本数据支持。朴素贝叶斯算法需要足够的样本数据进行学习,如果样本数据太少,可能会导致分类的不准确性。

总的来说,朴素贝叶斯算法是一种简单有效的分类算法,特别适用于数据集较小、分类类别较多的情况下。但是,在某些特定的应用场景中,由于其假设的特征条件独立性不一定成立,因此可能需要选择其他更为适合的分类算法。

四、逻辑回归(LR)

逻辑回归是一种经典的分类算法,这是一种基于线性回归模型并引入sigmoid函数作为激活函数的二元分类算法,用于预测二分类问题(例如“是”或“否”)的概率。它通过最大化对数似然函数来优化模型参数,其基本思想是将线性回归模型的输出通过逻辑函数(也称为Sigmoid函数)进行映射,将线性输出映射到0到1之间作为概率输出(从而可以被解释为概率)。它适用于中大规模数据集和线性可分问题。

逻辑回归模型可以表示为:

\(h_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}}\)

其中,\(x\) 表示输入特征向量,\(\theta\) 表示模型参数向量。

逻辑回归的目标是通过最小化损失函数来学习模型参数,常见的损失函数是交叉熵损失函数。其表达式为:

\(J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\log h_{\theta}(x^{(i)}) + (1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))]\)

其中,\(m\) 表示训练样本数量,\(y^{(i)}\) 表示第 \(i\) 个样本的真实标签,\(h_{\theta}(x^{(i)})\) 表示逻辑回归模型对第 \(i\) 个样本的预测结果。

逻辑回归算法的时间复杂度通常是 \(O(kn)\),其中 \(k\) 表示特征的数量,\(n\) 表示样本的数量。空间复杂度为 \(O(k)\),即模型参数的数量。

逻辑回归算法具有以下优点:

1. 训练速度快,模型简单易于实现。

2. 对于二分类问题,预测结果易于解释,可以输出概率值。

但是,逻辑回归算法也有一些缺点:

1. 当特征之间存在复杂的关联关系时,逻辑回归模型表现可能不如其他复杂的分类算法。

2. 在处理多分类问题时,需要使用其他技术将逻辑回归扩展到多分类问题上。

3. 对于噪声数据和异常值,逻辑回归模型的鲁棒性较差,需要对数据进行预处理或使用其他的算法来处理这些问题。

五、支持向量机(SVM)

支持向量机(Support Vector Machine,简称SVM)是一种常见的二分类算法,这是一种基于间隔最大化原则和核技巧的分类和回归算法,它通过寻找一个超平面或者一个超曲面来划分不同类别的样本,并利用核函数将低维空间映射到高维空间以解决非线性问题。其基本思想是将数据点映射到高维空间中,找到能够将不同类别的数据点分开的最优超平面。SVM的目标是找到一个最大间隔超平面,使得该超平面能够将不同类别的样本分隔开来,同时能够最大化间隔。它适用于中小规模数据集和高维特征问题。

SVM的算法可以表示为:

\(\min_{w,b} \frac{1}{2}||w||^{2}\)

\(s.t.\ y_i(w^Tx_i+b) \geq 1, i=1,2,...,m\)

其中,\(x_i\) 是第\(i\) 个样本的特征向量,\(y_i\) 是第 \(i\) 个样本的类别(取值为 \(-1\) 或 \(1\)),\(w\) 和 \(b\) 是模型参数,\(m\) 是样本数量。

SVM算法的时间复杂度通常是 \(O(n^2)\) 或 \(O(n^3)\),其中 \(n\) 表示训练样本的数量。空间复杂度通常是 \(O(n)\) 或 \(O(n^2)\),即模型参数和数据所占用的空间。

SVM算法具有以下优点:

1. SVM在高维空间中进行分类,适用于特征维度较高的数据集。

2. SVM对于小样本、非线性和高维数据集表现较好。

3. 通过使用不同的核函数,可以灵活地处理非线性问题。

但是,SVM算法也有一些缺点:

1. 对于大规模的数据集,SVM的训练时间较长。

2. SVM对于噪声和异常值较为敏感。

3. SVM对于参数的选择比较敏感,需要进行调参。

六、随机森林(RF)

随机森林(Random Forest)是一种常见的集成学习算法,这是一种基于bagging思想和决策树方法的集成学习算法,它通过从原始数据集中随机抽取多个子数据集并在每个子数据集上训练一个决策树模型,并将所有决策树模型的预测结果进行投票或平均来得到最终预测结果。其基本思想是通过集成多个决策树的结果,来提高模型的准确率和泛化能力。它适用于大规模数据集和多变量问题。

随机森林算法的主要步骤如下:

1. 从训练集中随机采样 \(m\) 个样本,使用这些样本构建一个决策树。

2. 重复上述步骤 \(n\) 次,得到 \(n\) 个决策树。

3. 对于测试样本,将其输入到每个决策树中,得到 \(n\) 个分类结果。最终的分类结果是所有决策树中分类结果的投票平均值。

随机森林算法的公式表达如下: \(\hat{y} = \frac{1}{n}\sum_{i=1}^n f_i(x)\)

其中,\(\hat{y}\) 表示最终的分类结果,\(n\) 表示决策树的数量,\(f_i(x)\) 表示第 \(i\) 个决策树对样本 \(x\) 的分类结果。

随机森林算法的时间复杂度主要取决于决策树的数量和深度。通常情况下,随机森林的时间复杂度为 \(O(T\times m\times log^2(n))\),其中 \(T\) 表示决策树的数量,\(m\) 表示样本数量,\(n\) 表示特征数量。空间复杂度也主要取决于决策树的数量和深度,通常为 \(O(T\times m\times d)\),其中 \(d\) 表示决策树的最大深度。

随机森林算法具有以下优点:

1. 随机森林可以很好地处理高维数据和大规模数据集。

2. 随机森林可以避免过拟合,提高模型的泛化能力。

3. 随机森林可以评估特征的重要性,从而帮助选择最优的特征集。

但是,随机森林算法也有一些缺点:

1. 随机森林的模型比较复杂,不易解释。

2. 随机森林对于噪声和异常值比较敏感。

3. 随机森林需要进行调参,包括树的数量、树的深度、样本的数量等。

来源:AIUST.Com

作者:

编辑:leilei

图片来源:

本文链接: https://www.aiust.com/article/20230316/1516.html

  • 机器学习
  • 算法
声明:除非注明,本站文章均为AIUST.Com原创或编译,转载时请注明文章作者和“来源:AIUST.Com”,AIUST.Com尊重行业规范,每篇文章都标有明确的作者和来源。文章为作者观点,不代表AIUST.Com立场。部份图片来自网络,如有侵权,请联系我们删除!

相关文章

资讯

原创

荐读

  • 5G+AR加持 晨星机器人掀起“智能化+人机交互”制造新趋势 5G+AR加持 晨星机器人掀起“智能化+人机交互”制造新趋势

    2021世界制造业大会于11月22日在合肥落下帷幕。为期四天的大会中,作为向世界展示智能制造全面能力的窗口,联想展示了一系列让人惊喜的创新产品。现场展示的ThinkPad X1 Fold整体重量仅有1公斤,折叠起来之后的厚度大约为24毫米。当保持半开状态时,可以像拿本书一样握住,并且能同时运行两个应用程序。使用固定在中间的键盘之后,瞬间变...

  • 智能手机竞争中失败,日本在联网汽车领域举步维艰 智能手机竞争中失败,日本在联网汽车领域举步维艰

    据外媒报道,在制造带有数字联网服务的汽车的竞争中,丰田汽车和日产汽车面临着被本土市场拖累的风险。与美国和欧洲的汽车消费者不同的是,日本消费者不愿意为这些联网功能和服务买单。结果就是:日本只有10%的汽车...

  • 2020年河南省将推广应用3万台工业机器人 2020年河南省将推广应用3万台工业机器人

    到2020年,推广应用3万台工业机器人,建设1000条智能生产线、300个智能车间、150个智能工厂……4月16日,在2018两岸智能装备制造郑州论坛上,河南省工信委发布了《2017年河南省智能制造白皮书》,河南智能制造的2020...

热门标签