机器学习中集成学习

摘要

本周首先学习了M-P模型的基本原理,包括神经元激活的条件和数学形式,并探讨了阈值的确定方法。接着,文章讲解了损失函数(如均方误差和交叉熵)在机器学习中的作用及其计算方式。最后,本文深入探讨了集成学习的基本思想、分类器组合策略以及主要方法(如Boosting和Bagging),并分析了集成学习相对于个体学习在性能上的优势。

abstract

This week began by learning the basic principles of the M-P model, including the conditions and mathematical forms of neuronal activation, and explored the method of determining the threshold. Then, the paper explains the role of loss functions (such as mean square error and cross entropy) in machine learning and how to calculate them. Finally, this paper discusses the basic idea of ensemble learning, classifier combination strategy and main methods (such as Boosting and Bagging), and analyzes the performance advantages of ensemble learning over individual learning.

1. M-P模型

神经元是否激活取决于某一阈值电平,当输入总和超过阈值时,神经元才会被激活。整个过程可以使用以下函数:
n e t = ∑ i = 1 n w i x i − θ net=\sum_{i=1}^nw_ix_i-\theta net=i=1nwixiθ
y = f ( n e t ) = f ( ∑ i = 1 n w i x i − θ ) y=f\left(net\right)=f\left(\sum_{i=1}^{n}w_{i}x_{i}-\theta\right) y=f(net)=f(i=1nwixiθ)
只有当net > 0时网络中的神经元才会被激活。
有以下基本假设:
1.输入信号:每个神经元接受来自其他神经元的输入信号,这些信号可以是激活信号(通常是1)或抑制信号(通常是0)。
2.加权连接:每个输入信号都有一个权重 w i w_{i} wi,表示该输入的重要性。权重可以是正数(增强)也可以是负数(抑制)。

数学形式
y = { 1 if ∑ i = 1 n w i x i > θ 0 otherwise y=\begin{cases}1&\text{if}\sum_{i=1}^nw_ix_i>\theta\\0&\text{otherwise}\end{cases} y={10ifi=1nwixi>θotherwise

阈值怎么确定?
1.数据驱动的方法:

  • 训练数据:使用带有标签的数据集来调整阈值,使模型能够正确地对数据进行分类。
  • 梯度下降:通过优化算法来调整权重和阈值,以最小化损失函数。

损失函数是机器学习和深度学习中用来衡量模型预测值与实际值之间差异的一种度量。通过最小化损失函数,可以调整模型参数来提高模型的预测性能。
阈值的概念已经被更复杂的激活函数所取代,如 Sigmoid 函数、ReLU 函数等,这些函数也通过训练过程进行调整。
常见的损失函数:
均方误差
均方误差它衡量的是预测值与实际值之间的平均平方误差。MSE的计算公式如下:
M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \mathrm{MSE}=\frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2 MSE=n1i=1n(yiy^i)2
MSE的值越小,说明模型的预测值与真实值之间的差异越小,模型的性能越好。MSE对离群值比较敏感。因为较大的偏差会被放大。

交叉熵
交叉熵通常用于分类任务,特别市多分类问题。它衡量的是模型预测的概率分布与实际标签的概率分布之间的差异。对于二分类问题,交叉熵损失函数的计算公式如下:
L = − ( y log ⁡ ( p ) + ( 1 − y ) log ⁡ ( 1 − p ) ) L=-\left(y\log(p)+(1-y)\log(1-p)\right) L=(ylog(p)+(1y)log(1p))

  • y是真实标签(0或1)
  • p是模型预测为正类的概率

对于多分类问题,交叉熵损失函数可以扩展为:
L = − ∑ c = 1 C y c log ⁡ ( p c ) L=-\sum_{c=1}^Cy_c\log(p_c) L=c=1Cyclog(pc)
交叉熵损失函数能够有效地衡量两个概率分布之间的差异,并且当模型的预测概率接近真实标签时,交叉熵的值会变得更小。
相比于均方误差,交叉熵在分类任务中更加有效,尤其是在处理不平衡数据集时。MSE更适合回归任务,因为能够较好处理连续值得预测。

2. 集成学习

集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。(博采众长)
在这里插入图片描述

2.1 基本思想

问题思考:
1.如何得到若干个个体学习器
2.如何选择一种结合策略
把单个分类器比作一个决策者,集成学习的方法就相当于多个决策者共同给进行一项决策。

2.2 基础分类器组合策略

个体学习器的选择:
第一种就是所有的个体学习器都是一个类别,或者说是同质的。(强依赖以boosting为代表,弱依赖以bagging和随机森林RF为代表)
第二种是所有的个体学习器不全是一个种类的,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和贝叶斯个体学习器来学习,然后通过某种结合策略来确定最终的分类强学习器。
问题:组合时,如何选择学习器?
考虑准确性和多样性
准确性指的是个体学习器不能太差,要有一定的准确度。
多样性指个体学习器之间的输出要有差异性。
在这里插入图片描述
总体来说:需要选择方差较大的分类器进行组合。
问题:怎样组合弱分类器?
1.平均法 (对于数值类的回归预测问题)
思想:对于若干个弱学习器的输出进行平均得到最终的预测输出。(简单平均、加权平均)
2.投票法
思想:多个基本分类器都进行分类预测,然后根据分类结果用如(一票否决、少数服从多数)or 阈值表决(将实例x划分为Ci和不会划分为Ci的分类器数据分别是多少,然后当这两者比例超过某个阈值的时候把x划分为Ci)
3.学习法
代表方法是Stacking
思想:不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,分为2层。
第一层是用不同的算法形成T个弱分类器,同时产生一个于原数据集大小相同的新数据集,利用这个新数据集和一个新算法构成第二层的分类器。

2.3 集成学习方法

主要学习方法:
1.Boosting:个体学习器间存在强依赖关系,必须串行生成的序列化方法。(主要关注降低偏差)把许多弱分类器组合成一个强分类器
串行:下一个分类器只有在前一个分类器不够准的实列上进行训练或检验。
2.Bagging:个体学习器不存在强依赖关系,可同时生成的并行化方法。(主要关注降低方差)把许多强(甚至过强)的分类器求平均)
并行:所有的弱分类器都给出各自的预测结果,通过组合把这些预测结果转化为最终结果。
随机森林:决策树+bagging

2.4 模型评价

下面是个体学习和集成学习的对比
在这里插入图片描述
从上面两张图中,通过回归模型看出拟合情况个体学习和集成学习没有太大区别,但比较误差、偏差、方差可以看出,右下图通过牺牲一点偏差来是整体的性能得到提升。结论是集成学习相对于个体学习更优良。
在这里插入图片描述
上图是bias和variance的关系图。

# 集成学习方法调用
from sklearn.ensemble import BaggingClassifier
from sklearn.neighbors import KNeighborsClassifier

bagging = BaggingClassifier(KNeighborsClassifier(), max_samples=0.5, max_features=0.5)

3. 总结

本周全面学习了M-P模型的工作机制及其阈值调整方法,并详细解释了常见损失函数的作用。重点在于集成学习的概念、策略及其实现方法,如Bagging和Boosting,强调了集成学习通过组合多个学习器来提高模型性能的核心思想。通过对比个体学习与集成学习的效果,文章展示了集成学习在提高预测准确性方面的重要作用,尤其是在降低偏差和方差方面表现出色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值