The Kaggle Book

本文介绍了如何使用Madelon数据集进行模型集成,通过支持向量机、随机森林和k-近邻分类器的预测,实现多数投票策略提升准确性。重点展示了如何评估单模型性能并对比集成后的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from sklearn.datasets import make_classification

from sklearn.model_selection import train_test_split

x,y = make _ class ification(n _ samples = 5000,n_features=50,

n _ informative = 10,n_redundant=25,n_repeated=15,n_clusters_per_class=5,flip_y=0.05,class_sep=0.5,random_state=0)


在本章中,我们将使用Madelon数据集的重建作为测试集成技术的基础:

X_train,X_test,y_train,y_test = train_test_split(X,y,

                                                test_size=0.33, random_state=0)


在将其分成训练集和测试集之后,我们通过实例化我们的学习算法来继续。我们将只使用三种基本算法:支持向量机、随机森林k-最近邻分类器,并使用默认的超参数进行演示。你可以尝试更改它们或增加它们的数量:

from sklearn.svm import SVC

from sklearn.ensemble import RandomForestClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.metrics import log_loss, roc_auc_score, accuracy_score

model_1 = SVC(probability=True, random_state=0)

model_2 = RandomForestClassifier(random_state=0)

model_3 = KNeighborsClassifier()

以下步骤只是在训练集上训练每个模型:

model_1.fit(X_train, y_train)

model_2.fit(X_train, y_train)

model_3.fit(X_train, y_train)

在这一点上,我们需要对每个模型的测试集进行预测,并使用多数投票来集成所有这些预测。为此,我们将使用SciPy的mode函数:

import numpy as np

from scipy.stats import mode

preds = np.stack([model_1.predict(X_test),

model_2.predict(X_test),

model_3.predict(X_test)]).T

max_voting = np.apply_along_axis(mode, 1, preds)[:,0]

首先,我们检查每个单一模型的准确性:

for i, model in enumerate(['SVC', 'RF ', 'KNN']):

acc = accuracy_score(y_true=y_test, y_pred=preds[:, i])

print(f"Accuracy for model {model} is: {acc:0.3f}")

我们看到三款性能差不多,0.8左右。现在是检查多数投票组合的时候了:

max_voting_accuray = accuracy_score(y_true=y_test, y_pred=max_voting)

print(f"Accuracy for majority voting is: {max_voting_accuray:0.3f}")

投票集合实际上更准确:0.817,因为它设法将大多数人的正确信号放在一起。

对于多标签问题(当你可以预测多个类别时),你可以只选择预测次数超过一定次数的类别,假设相关性阈值指示某个类别的预测是信号,而不是噪声。例如,如果你有五个模型,你可以将此阈值设置为3,这意味着如果一个类至少由三个模型预测,则该预测应该被认为是正确的。

在回归问题中,以及当你预测概率时,你实际上不能使用多数表决。多数表决只适用于类别所有权。相反,当你必须预测数字时,你需要从数字上组合结果。在这种情况下,采用平均值或加权平均值将为你提供组合预测的正确方法。

### Kaggle 数据科学竞赛平台概述 Kaggle 是一个专注于数据科学和机器学习的竞赛平台,为全球范围内的数据科学家、机器学习工程师以及数据分析爱好者提供了丰富的资源和支持[^1]。该平台不仅支持各类比赛活动,还允许用户分享自己的项目成果并参与讨论,从而促进整个社区的技术进步。 #### Kaggle 的核心功能 Kaggle 提供了一系列的功能模块,旨在满足不同层次用户的多样化需求: - **竞赛板块**:这是 Kaggle 最具吸引力的部分之一,在这里可以找到由企业或研究机构发起的各种挑战赛。参赛者需利用给定的数据集构建预测模型或其他解决方案以解决问题[^3]。 - **数据集共享区**:除了官方组织的比赛外,Kaggle 还拥有海量公开可用的数据集合,覆盖多个领域如医疗健康、金融经济等。这些高质量的数据对于初学者练习技能或者研究人员探索新方向都非常有帮助[^2]。 - **课程教程**:为了降低入门门槛,Kaggle 设计了一些免费在线教育内容,包括但不限于Python编程基础、统计学概念介绍以及深度神经网络原理讲解等等。这对于刚接触AI行业的新人而言无疑是巨大的福音。 - **论坛交流群组**:当遇到困难时不必担心孤立无援——活跃于Kaggle 论坛中的成员们乐于互相解答疑问;同时也可以加入特定兴趣小组与其他同行建立联系网路。 以下是获取更多关于如何有效使用此强大工具的信息的一些方法: ```python import kaggle # 设置API令牌 (需要先注册账户并通过验证) kaggle.api.authenticate() # 下载指定名称的数据集到当前工作目录下 dataset_name = 'zynicide/wine-reviews' kaggle.api.dataset_download_files(dataset_name, path='./', unzip=True) ``` 上述脚本展示了怎样借助 Python 脚本来自动化完成从下载公共资料库的操作过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强化学习曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值