scikit_learn:朴素贝叶斯分类算法
发布网友
发布时间:2024-09-28 20:39
我来回答
共1个回答
热心网友
时间:2024-09-30 06:51
在使用逻辑回归分类算法时,存在诸多问题尚未得到解决。
例如,样本不均匀问题(在1000万客户中,999万为低风险客户,导致预测结果均为低风险,准确度ACC高达99.9%,然而模型缺乏判别能力,无法区分高风险客户)。
此外,模型效果评价方法需要总结(混淆矩阵、ROC曲线与AUC值、Accuracy模型准确度等指标),以及不同分类模型的优缺点对比与适用情况(逻辑回归的两个前提假设是目标值服从伯努利分布、概率计算使用sigmoid函数、且需自行选定特征值等)。
本文将介绍贝叶斯分类算法。贝叶斯算法的核心是贝叶斯公式,即利用先验概率计算后验概率。
以保险公司为例,假设99.5%的客户为癌症低风险,0.5%为高风险,模型识别准确度为99%(在99.5%的低风险客户中,模型能识别99%为低风险,1%误判为高风险;在0.5%的高风险客户中,模型能识别99%为高风险,1%误判为低风险)。看似区分能力较强,准确度达99%,但实际上效果如何?这正是贝叶斯公式要解决的问题。
一、贝叶斯算法
1、贝叶斯公式的现实意义
上述问题可通过贝叶斯公式进行分析。贝叶斯公式如下:
公式1:在B条件下发生A的概率;
公式2:A、B同时发生的概率;
公式3:B发生的概率;
公式4:在A条件下发生B的概率。
计算模型识别高风险中,真正癌症高风险的概率如下表:
2、贝叶斯分类算法原理
上述为贝叶斯公式的思想,接下来我们将探讨如何将此思想应用于分类算法。
假设我们有如下样本:
3、贝叶斯分类算法的缺陷
贝叶斯分类算法要求特征相互独立,在实际应用中,这一假设往往不成立。当属性个数较多或属性之间存在较大相关性时,分类效果较差。而在属性相关性较小时,朴素贝叶斯性能最佳。
二、代码实现(数据为sklearn中的鸢尾花数据(iris))