集成学习中的软投票和硬投票机制详解和代码实现
快速回顾集成方法中的软投票和硬投票
集成方法是将两个或多个单独的机器学习算法的结果结合在一起,并试图产生比任何单个算法都准确的结果。
在软投票中,每个类别的概率被平均以产生结果。例如,如果算法 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)