时间:2024-05-04
田波 沈江明 张德鑫 曾志勇
(1.中国电信股份有限公司云南分公司 云南省昆明市 650000)
(2.云南省高校数据化运营管理工程研究中心 云南省昆明市 650000 3.云南财经大学统计与数学学院 云南省昆明市 650000)
(4.云南财经大学信息学院 云南省昆明市 650000)
SMOTE 过采样技术是由Chawle[4][3]和他的团队率先提出,该技术是通过在两个少数类样本之间随机选择一个新样本作为少数类样本,以此循环往复,通过这种人工合成新样本的方式不断扩充少数类样本的数量,直至样本数据平衡为止。
ENN 欠采样属于一种将多数类样本进行删减,使得原本的多数类样本和少数类样本在数量上尽可能的保持一定的平衡的欠采样方法,它主要对于其中的多数类选定样本,通过观察该样本附近k个近邻点,如果附近的k 个近邻样本中有超过一半的样本和该样本不属于同一个类别,那么就将该样本进行相应的剔除。
随机森林算法是集成方法bagging 流派中的典型代表,该算法将原始数据集通过有放回抽样的方式对数据集进行扩充,通过多个决策树并行运算,输出各自的预测值,然后通过投票选择法,少数服从多数的原则,确定最后的输出结果。
Catboost 采用特殊的方式处理类别型特征,首先对类别特征做一些统计,计算某个类别特征出现的频率,之后加上超参数,生成新的数值型特征。Catboost 还使用了组合类别特征,可以利用到特征之间的联系,而且基模型采用的是对称树,同时计算叶子结点方式和传统的boosting 算法通过平均值的计算方式也不一样,由于在这方面做了优化,而这些改进都能防止模型过拟合。
关于分类问题的研究,本文将整体分类率、查准率、召回率、f1-度量和auc 值作为模型分类效果的评价指标。
如表1所示,根据混淆矩阵可以得到以下指标,准确率度量的是所有预测样本当中预测正确的比例,但是在面对不平衡数据集的时候,准确率作为最重要的评价指标[6],就会缺乏合理性,计算公式Accuracy=(TP+TN)/(TP+FN+FP+TN)。查准率主要度量所有预测为正类的样本当中,被判断正确的一个比例值,计算公式Precision=TP/(TP+FP)。召回率主要度量正类样本当中会有多少是被预测为正类样本的,在不平衡数据集当中,该评价指标更加关注的是对于少数类的预测准确率,计算公式Recall=TP/(TP+FN)。F1-度量主要是针对查准率和召回率的调和平均指标,通过F1-度量可以知道查准率和召回率两者的侧重关系,具体的计算公式F1=2(Precision*Recall)/(Precision+Recall),针对不平衡数据集,F1-度量作为分类模型主要的评价指标,AUC 值是ROC 曲线下的面积值,用来评价分类学习器的模型泛化能力。
数据真实来自于医院,主要有14 个特征字段,存在着不平衡的现象,少数类和多数类达到了2:8 的比例,如果直接进行模型训练和预测,那么即便模型不学习,只要将结果全部预测为多数类,那么整体的准确率也可以达到80%,但实际模型是不具备预测功能的。
通过对原始数据集进行一系列的数据预处理以及特征工程工作之后,为了测试训练模型的最终是否具有良好的预测效果,因此将已处理好的实验数据集按照7:3 的比例划分为训练数据集和测试数据集,训练数据集主要用于前期模型的训练学习,本文通过SMOTEENN 采样处理之后的数据集数量结果如表2所示。
通过上述结果可以看出,原始的训练数据集存在着不平衡现象,多数类和少数类的比列达到了大约4:1,经过SMOTEENN 采样处理之后,训练数据集的数量总量也由原来的77326 变成了110114,多数类和少数类的比例变得大致一样。
3.1.1 随机森林模型
由于随机森林是集成方法当中的优良代表,本文就通过使用scikit-learn 库中的随机森林模型,将未经采样处理的训练数据集和经过SMOTEENN 采样处理的训练数据集通过随机森林模型进行学习训练,然后将未知的测试数据集通过已经学习好的随机森林模型进行结果的预测,并输出最后的评价指标参数,结果如表3所示。
结果显示,precision(查准率)达到了99%,recall(召回率)达到了93%,f1-score(f1-度量)达到了96%,而另类别1,也就是重点关注的少数类,precision(查准率)达到了78%,recall(召回率)达到了95%,f1-score(f1-度量)达到了86%,而总体分类accuracy(精度)可达到94%,输出AUC 值也达到了97%,说明该模型的泛化效果是比较优秀的。
3.1.2 Catboost 模型
通过将经过SMOTEENN 采样处理的Catboost 算法结果如表4所示。
对于多数类类别0,precision(查准率)达到了99%,recall(召回率)达到了93%,f1-score(f1-度量)达到了96%,而另一边的类别1,也就是关注的少数类,它的precision(查准率)达到了78%,recall(召回率)达到了95%,f1-score(f1-度量)达到了86%,最后的accuracy(精度)也可以达到93%,而总体的precision(查准率)达到了77.68%,recall(召回率)达到了95.38%,f1-score(f1-度量)达到了85.62%,处理之后的效果相对来说也是最好的,输出的AUC 值为99%,整体效果相比于随机森林模型效果更好,说明了Catboost 在处理分类问题上的优良性能。
表1:混淆矩阵
表2:SMOTEENN 采样处理不平衡数据
表3:经SMOTEENN 混合采样处理的随机森林模型结果
表4:经SMOTEENN 采样处理的Catboost 模型结果
表5:各自模型结果对比
经过SMOTEENN 采样之后可以大大提高对于关键的少数类样本的识别率,并通过集成方法当中的随机森林和Catboost 算法进行对比分析,输出结果如表5所示。
从上述结果可以看到,未经采样处理的随机森林模型和Catboost 模型,这两者对于少数类的识别率(recall)都比较低,而经过SMOTEENN 采样处理之后,模型对于少数类的识别率会有较大程度的提高,这说明了SMOTEENN 采样对于提升少数类的识别率有很大的帮助,而且通过f1-score 指标也可以看到,通过SMOTEENN 采样处理之后的模型都高于未经采样处理的模型,而且Catboost 算法相比于随机森林模型,f1-score 指标最高,也说明能更好的平衡少数类的查准率和召回率。并且从总体分类准确率可以看到,经过采样处理的模型虽然相比于未经采样处理的模型会有所降低,但是少数类的识别率却大大的提升,而且少数类往往是关注的重点信息,因而也是可以理解的。
综上所述,对于不平衡数据集,SMOTEENN 采样可以大大提升对于少数类的识别率。在分类算法的选择上,新出的Catboost 算法相比于以往的传统分类模型,分类的效果会更加优秀,可以进一步提高对于少数类的识别率,降低少数类的误判率,即减少关键信息的错判。对于现实生活中的不平衡数据现象,具有很好的借鉴意义。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!