【Driven Data竞赛】——疫苗接种情况预测参赛

 今天记录一下参加的DrivenData平台的一个数据类竞赛当Score:0.8515,排名(209/1808)前11.5%,还很菜,待提高ing.

 DrivenData是什么呢?目前有很多的数据类竞赛平台,较为大家熟知的有kaggle、天池等,DrivenData也是一个数据竞赛平台,上面有很多数据挖掘类竞赛,可以根据赛题类型、困难度进行选择适合自己的进行参加,有很多竞赛还是很适合初学者的。

 我参与的是疫苗接种情况预测,全名: “Flu Shot Learning: Predict H1N1 and Seasonal Flu Vaccines”.也可以从此链接直达。
下面介绍一下这个赛题的基本情况:

一、赛题简介

1.问题描述

 首先这是一个分类问题,是一个双标签分类问题;要求我们预测两个变量h1n1_vaccine和seasonal_vaccine 分别代表个人接受H1N1和季节性流感疫苗的可能性
该竞赛的评分标准是ROC_AUC,即求出接种每种疫苗的概率提交后与真实值计算ROC_AUC,越高越好。提交的值是一个人获得每种疫苗的概率,而不是二进制标签。

         注意:不是多分类,是双标签!!!

2.数据和特征

 该赛题数据来源为:2009年底和2010年初,美国进行的2009年全国H1N1流感调查 。共计26707条数据,35个特征,其中12个文本特征,23个离散数字特征。

二、数据预处理

 首先,里边有很多文本特征,文本数据是离散的描述型数据,因此将其用形如0,1,2….的离散数字表示,这里没有用独热码,因为尝试过用独热码,会产生特别多维特征,但没有实际意义。


在这里插入图片描述

然后发现数据中有很多缺失值:

在这里插入图片描述
 在这个缺失值可视化图中,每一列代表一个特征的数据确实情况,从图中可以看出确实数据的位置,白色位置代表数据缺失。

 从下面的缺失值条形图可直观看出各个特征的缺失百分比,更方便判断如何处理缺失值:
在这里插入图片描述
 从图中可以看出有较多特征出现缺失,缺失维度较多,但缺失百分比相对不高,因此要对其进行填充。利用KNN方法进行空缺值填充:

 基本思路:循环遍历,依次将每一维含有缺失值的特征作为Y,当前不含有缺失值的 所有特征集合作为X。

  ①利用在当前Y上未空缺的样本作为训练集,进行K近邻学习器的训练,当前Y缺失的样本作为测试集,利用所学得的学习器对其进行预测。
  ②将预测值Y填充到对应缺失位置。
  ③将填充后的数据作为下一轮学习的数据集,填充完成的特征Y添加到输入特征集X,进行下一个缺失特征的填充
  ……
  循环以上步骤,直到所有特征均填充完成,数据集没有缺失值。

首先导入一些之后需要的包

clf=KNeighborsClassifier(n_neighbors=2)
mfeature=ffeature.copy()
for i in range(0,len(ffeature)):
    tfeature.append(ffeature[i])
    train=train_data[tfeature]
    
    test=test_set_features[tfeature]
    #把没有缺失值放进training_nonull
    training_nonull=train[train.isnull().any(axis=1)!= True].values
    training_nonull=pd.DataFrame(training_nonull)
    training_nonull.columns=tfeature
    #把有缺失值放进training_null
    training_null=train[train.isnull().any(axis=1)== True].values
    training_null=pd.DataFrame(training_null)
    training_null.columns=tfeature
    #处理验证集,把没有缺失值放进test_non
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值