集成学习中的软投票和硬投票机制详解和代码实现

快速回顾集成方法中的软投票和硬投票

集成方法是将两个或多个单独的机器学习算法的结果结合在一起,并试图产生比任何单个算法都准确的结果。

在软投票中,每个类别的概率被平均以产生结果。例如,如果算法 1 以 40% 的概率预测对象是一块岩石,而算法 2 以 80% 的概率预测它是一个岩石,那么集成将预测该对象是一个具有 (80 + 40) / 2 = 60% 的岩石 可能性。

在硬投票中,每个算法的预测都被认为是选择具有最高票数的类的集合。例如,如果三个算法将特定葡萄酒的颜色预测为“白色”、“白色”和“红色”,则集成将预测“白色”。

最简单的解释是:软投票是概率的集成,硬投票是结果标签的集成。

生成测试数据

下面我们开始代码的编写,首先导入一些库和一些简单的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
importpandasaspd
importnumpyasnp
importcopyascp
fromsklearn.datasetsimportmake_classification
fromsklearn.model_selectionimportKFold, cross_val_score
fromtypingimportTuple
fromstatisticsimportmode
fromsklearn.ensembleimportVotingClassifier
fromsklearn.metricsimportaccuracy_score
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.ensembleimportRandomForestClassifier
fromsklearn.ensembleimportExtraTreesClassifier
fromxgboostimportXGBClassifier
fromsklearn.neural_networkimportMLPClassifier
fromsklearn.svmimportSVC
fromlightgbmimportLGBMClassifier
RANDOM_STATE : int = 42
N_SAMPLES : int = 10000
N_FEATURES : int = 25
N_CLASSES : int = 3
N_CLUSTERS_PER_CLASS : int = 2
     
FEATURE_NAME_PREFIX : str = "Feature"
TARGET_NAME : str = "Target"
     
N_SPLITS : int = 5
     
np.set_printoptions(suppress=True)

  

还需要一些数据作为分类的输入。make_classification_dataframe 函数将数据创建包含特征和目标的测试数据。

这里我们设置类别数为 3。这样就可以实现多分类算法(超过2类都可以)的软投票和硬投票算法。并且我们的代码也可以适用于二元的分类。

完整文章:

https://www.overfit.cn/post/a4a0f83dafad46f3b4135b5faf1ca85a

 

posted @   deephub  阅读(530)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示