算法与数据结构-【转载】全解机器学习3大分类6大算法的优势和劣势

在机器学习中,目标要么是预测(prediction),要么是聚类(clustering)。本文重点关注的是预测。预测是从一组输入变量来预估输出变量的值的过程。例如,得到有关房子的一组特征,我们可以预测它的销售价格。预测问题可以分为两大类:1、回归问题:其中要预测的变量是数字的(如房屋的价格);2、分类问题:其中要预测的变量是“是/否”的答案(如预测某个设备是否会故障)

了解了这点,接下来让我们看看机器学习中最突出、最常用的算法。我们将这些算法分为3类:线性模型、基于树的模型、神经网络,重点介绍6大常用算法:


一、线性模型算法

线性模型使用简单的公式,通过一组数据点找到“最佳拟合”的行。这一方法可以追溯到200多年前,在统计学和机器学习领域都得到广泛应用。由于它的简单性,它对统计学很有用。你想要预测的变量(因变量)被表示为你已经知道的变量(自变量)的方程,因此预测只是一个输入自变量,然后算出方程的答案的问题。

1.线性回归

线性回归,或更准确的说法“最小二乘回归”,是线性模型的最标准形式。对于回归问题,线性回归是最简单的线性模型。其缺点是模型容易过拟合,也就是说,模型完全适应已进行训练的数据,而牺牲了推广到新数据的能力。因此,机器学习中的线性回归(以及我们接下来将谈到的逻辑回归)通常是“正则化”的,这意味着模型有一定的惩罚来防止过拟合。

线性模型的另一个缺点是,由于它们非常简单,所以当输入变量不独立时,他们不容易预测更复杂些的行为。

2.逻辑回归

逻辑回归是线性回归对分类问题的适应。逻辑回归的缺点与线性回归相同。逻辑函数对分类问题非常好,因为它引入了阈值效应。

二、树模型算法

1、决策树

决策树是使用分支方法显示决策的每一个可能的结果的图示。比如说,你决定要点一份沙拉,你的第一个决策是可能是生菜的种类,然后是配菜,然后是沙拉酱的种类。我们可以在一个决策树中表示所有可能的结果。

为了训练决策树,我们需要使用训练数据集并找出那个属性对目标最有用。例如,在欺诈检测用例中,我们可能发现对预测欺诈风险影响最大的属性是国家。在以第一个属性进行分支后,我们得到两个子集,这是假如我们只知道第一个属性时最能够准确预测的。接着,我们再找出可以对这两个子集进行分支的第二好的属性,再次进行分割,如此往复,直到使用足够多的属性后能满足目标的需求。

2、随机森林

随机森林是许多决策树的平均,其中每个决策树都用随机的数据样本进行训练。随机森林中的每个树都比一个完整的决策树弱,但是将所有树放在一起,由于多样性的优势,我们可以获得更好的整体性能。

随机森林是当今机器学习中非常流行的算法。随机森林的训练很容易,而且表现相当好。它的缺点是相对于其他算法,随机森林输出预测可能会很慢,所以在需要快速预测时,可能不会选择随机森林。

3、梯度提升

梯度提升(GradientBoosting),像随机森林那样,也是由“弱”决策树组成的。梯度提升与随机森林最大的区别是,在梯度提升中,树是一个接一个被训练的。每个后面的树主要由前面的树识别错误的数据来训练。这令梯度提升较少关注易于预测的情况,而更多地关注困难的情况。

梯度提升的训练也很快,表现也非常好。但是,训练数据集的小小变化可以令模型发生根本性的变化,因此它产生的结果可能不是最可行的。

三、神经网络算法

神经网络是指大脑中彼此交换信息的相互联系的神经元组成的生物学现象。这个想法现在被适用到机器学习领域,被称为 ANN(人工神经网络)。深度学习是叠在一起的多层的神经网络。

ANN 是一系列通过学习获取类似人类大脑的认知能力的模型。在处理非常复杂的的任务,例如图像识别时,神经网络表现很好。但是,正如人类大脑一样,训练模型非常耗时,而且需要非常多的能量。

好的,关于你的问题,XGBoost 是一种集成学习算法,用于分类和回归的问题。它是一种基于决策树的机器学习算法,由微软研究团队的陈天奇和统计学家李沐开发。 XGBoost 的结构主要由两个部分组成,即训练和预测。训练过程包括构建决策树、寻找最佳阈值、计算损失函数和更新权重等步骤。预测过程则是用训练好的模型对新样本进行分类或回归。 逻辑概念方面,XGBoost 算法的核心是一个由多个决策树组成的集成模型。每个决策树都是根据训练数据的特征分裂来构建的。在寻找最佳分裂点时,XGBoost 使用近似贪婪算法,即对所有特征的分裂点进行评估,并选择最优的。 XGBoost 的算法流程如下: 1. 初始化模型 2. 计算每个样本的初始权重 3. 对于每轮迭代: a. 根据当前权重和样本特征构建决策树 b. 计算损失函数并更新权重 4. 返回最终训练好的模型 XGBoost 的伪代码如下: 1. 读入数据集 2. 定义模型参数 3. 初始化模型 4. 对于每轮迭代: a. 计算每个样本的梯度和Hessian矩阵 b. 选取最佳分裂点 c. 更新决策树 5. 返回最终训练好的模型 在梯度处理方面,XGBoost 使用的是一种加权最小二乘法,即以样本梯度的平方和作为损失函数,并采用莱文斯坦参数化技术对损失函数进行优化。 就机器学习模型和深度学习神经网络模型在数据预测中的优劣势机器学习模型通常在训练数据不充分或特征不够鲁棒时表现优异,能够快速地对数据进行分类或预测。但是,机器学习模型的拟合能力有限,无法处理过于复杂的数据结构。 而深度学习神经网络模型则更适用于处理大规模、高维度的数据,可以更好地发现数据之间的内在联系,提高准确率。但是,深度学习神经网络模型需要更多的训练数据和时间,同时对硬件设备的要求更高。 综上,选择机器学习模型还是深度学习神经网络模型,需要根据数据集的具体情况和问题的类型来综合考虑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值