📊数学建模:随机森林与朴素贝叶斯分类算法
00 分钟
2023-8-29
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email
💓
落絮无声春堕泪,行云有影月含羞。——吴文英《浣溪沙》

随机森林算法

随机森林算法是一种集成学习方法,用于分类、回归和其他任务。它通过在训练时构建多个决策树来进行操作。
对于分类任务,随机森林的输出是所有决策树输出的类别的众数。随机森林的准确性、简单性和灵活性使其成为最常用的机器学习算法之一。
以下是关于随机森林算法的一些相关信息:
  • 随机森林的基本概念:随机森林是由决策树构成的集成算法,每棵决策树都是独立构建的,没有关联性。随机森林通过集成多个决策树的结果来提高整体模型的准确性和泛化性能。
  • 随机森林的构造步骤:随机森林的构造包括以下四个步骤:
      1. 随机选择训练集的子集作为每棵决策树的训练数据。
      1. 随机选择特征子集作为每棵决策树的特征。
      1. 使用选定的特征和训练数据构建决策树。
      1. 重复步骤1-3,构建多棵决策树。
  • 随机森林的优缺点:随机森林具有以下优点和缺点:
    • 优点:
      • 能够处理大量的输入特征和样本数据。
      • 具有较高的准确性和泛化性能。
      • 能够评估特征的重要性。
      • 对于缺失数据和噪声具有较好的鲁棒性。
    • 缺点:
      • 训练时间较长,特别是对于大规模数据集。
      • 随机森林模型的结果不易解释。

案例:华数杯C题:
给定n个指标:m*n 列的矩阵,然后结果是 m*1 的分类结果。
拟合模型,并且输入测试集 m*n 列的矩阵,完成对结果的分类的预测。

构造训练集与测试集

  • 其中cvpartition 指定了构造的随机分区的大小
  • 然后分别划分训练集与测试集

随机森林模型建立

notion image

朴素贝叶斯分类算法

朴素贝叶斯算法是一种基于贝叶斯定理和特征独立性假设的分类算法
用于预测给定样本属于不同类别的概率。它可以处理多类别分类问题,并且在样本量较小的情况下仍然表现良好
该算法要求我们准备好训练集,并且对训练集基于特征条件独立假设学习输入输出的联合概率分布。基于此模型,只要我们输入x,就可以根据贝叶斯定理求出后验概率最大的输出y,此y就是我们的预测结果。
朴素贝叶斯法通过训练数据集学习联合概率分布 P ( X , Y ),其实就是学习先验概率分布和条件概率分布.
  • 联合概率分布:表示包含多个条件并且所有的条件都同时成立的概率。
    • 对于两个随机变量X和Y而言,它们的联合概率分布可以表示为P(X=x, Y=y),其中x和y分别表示X和Y的可能取值。联合概率分布可以通过概率密度函数(对于连续型随机变量)或概率质量函数(对于离散型随机变量)来描述。
  • 贝叶斯定理:在给定一些先验信息的情况下,如何根据新的观察数据来更新我们对事件的概率估计。贝叶斯定理的数学公式如下:
    • 贝叶斯定理通过将事件B发生的概率表示为在事件A发生的条件下的概率,从而提供了根据观察到的数据更新先验概率的方法。它可以用于推断未知的事件、进行分类、估计参数等。
我们的训练数据的输入变量为  = (x1,x2,x3,x4, x5,x6, x7 ) 表示自变量,即母亲的七项指标。训练数据的输出变量为  = (y) 表示因变量,即对于婴儿行为特征值的预测结果,取值为 1 2 3。
对于公式的解释如下:
  • y代表的是类。
  • 表示每个类与特征的似然度估计值,其越大表示,整个表示式的总体值越大。
  • 是一个先验概率,表示一个固定的值。
因此我们需要最大化表达式的值,从而找出能够使得最准确预测的结果输出,当我们找到  最大的  后,也就确定了预测的结果。
对于此问,我们需要建立母亲的七项身体指标与婴儿行为特征的值之间的朴素贝叶斯分类模型,使用MATLAB 的 fitcnb函数 来进行对于此模型的建立。
其中我们随机抽样的方法,在整个数据集中取出80% 为训练集,20%为测试集。训练完成后使用 predict函数并且带入测试集进行结果的预测。
为了对测试的准确性进行分析,因此引入 AUC与ROC来评估,ROC表示接收者操作特征曲线,是一种用于评估分类模型性能的工具。
ROC曲线下的面积,即AUC,被称为AUC-ROC,AUC的值用于评价模型的性能。ROC曲线和AUC是一种常用的评估分类模型性能的方法,通过衡量AUC的值,可以帮助我们理解和比较模型的分类能力与预测准确性。
通过计算后,可以得到我们的AUC值为 0.5815 左右。
  • 朴素贝叶斯算法的优缺点:朴素贝叶斯算法具有以下优点和缺点:
    • 优点:
      • 算法简单,容易实现和理解。
      • 对于大规模数据集具有较高的训练和预测速度。
      • 对于高维数据集表现良好。
      • 对于缺失数据具有较好的鲁棒性。
    • 缺点:
      • 朴素贝叶斯算法假设特征之间是独立的,这在某些情况下可能不成立。
      • 对输入数据的分布做了较强的假设,可能导致准确性下降。
      • 由于使用了简化的假设,对于复杂的分类问题可能表现不佳。
以上是关于朴素贝叶斯分类算法的一些基本信息。如果您有任何进一步的问题,请随时提问!

代码实现

notion image
 

评论
  • Twikoo
  • Valine