Datawhale干货

贡献者:牧小熊,骆秀韬,司玉鑫,潘姝宇等

这是一份简易的竞赛教程,我们的目的是帮助同学们迈出 AI 训练大师之路的第一步。数据挖掘中会有很多需要学习的地方,建议入门的同学可以暂时不用着急去弄懂各个代码的原理,先跑通代码,然后看代码中的涉及的知识点去查询相关资料进行学习,这样能让你学习更加有目标性,也容易找到学习的乐趣。千里之行,始于足下,从这里,开启你的 AI 学习之旅吧!

—— 贡献者:牧小熊、骆秀韬

一、准备步骤

1.1 平台注册与比赛报名

  1. 赛事链接:
    https://challenge.xfyun.cn/topic/info?type=diabetes&ch=ds22-dw-gzh02

  2. 注册(记得填写个人信息)

点击页面右上角:注册

填写个人信息,注册成功
  1. 点击报名参赛,显示成功报名

点击:报名参赛

报名成功

1.2 数据下载

数据获取

  • 官网下载数据:下载数据及实名认证。
    详细操作可查看:https://xj15uxcopw.feishu.cn/docx/doxcn11gwo7cEuAXWhCrDld4Inb

  • 请把数据文件和代码文件放在同一个文件夹下,保证正常运行

1.3 参考资料

python环境的搭建请参考:

  • Mac设备:Mac上安装Anaconda最全教程 https://zhuanlan.zhihu.com/p/350828057

  • Windows设备:Anaconda超详细安装教程

    https://blog.csdn.net/fan18317517352/article/details/123035625

二、实践思路

本次比赛是一个数据挖掘赛,需要选手通过训练集数据构建模型,然后对验证集数据进行预测,预测结果进行提交。

本题的任务是构建一种模型,该模型能够根据患者的测试数据来预测这个患者是否患有糖尿病。这种类型的任务是典型的二分类问题(患有糖尿病 / 不患有糖尿病),模型的预测输出为 0 或 1 (患有糖尿病:1,未患有糖尿病:0)

机器学习中,关于分类任务我们一般会想到逻辑回归、决策树等算法,在这个 Baseline 中,我们尝试使用决策树来构建我们的模型。我们在解决机器学习问题时,一般会遵循以下流程:

2.1 代码实现

以下代码,请在jupyter notbook或python编译器环境中实现

#安装相关依赖库 如果是windows系统,cmd命令框中输入pip安装,参考上述环境配置
#!pip install sklearn
#!pip install pandas
#---------------------------------------------------
#导入库
#----------------数据探索----------------
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
#数据预处理
data1=pd.read_csv('比赛训练集.csv',encoding='gbk')
data2=pd.read_csv('比赛测试集.csv',encoding='gbk')
#label标记为-1
data2['患有糖尿病标识']=-1
#训练集和测试机合并
data=pd.concat([data1,data2],axis=0,ignore_index=True)
#将舒张压特征中的缺失值填充为-1
data['舒张压']=data['舒张压'].fillna(-1)#----------------特征工程----------------
"""
将出生年份换算成年龄
"""
data['年龄']=2022-data['出生年份']  #换成年龄"""
人体的成人体重指数正常值是在18.5-24之间
低于18.5是体重指数过轻
在24-27之间是体重超重
27以上考虑是肥胖
高于32了就是非常的肥胖。
"""
def BMI(a):if a<18.5:return 0elif 18.5<=a<=24:return 1elif 24<a<=27:return 2elif 27<a<=32:return 3else:return 4data['BMI']=data['体重指数'].apply(BMI)#糖尿病家族史
"""
无记录
叔叔或者姑姑有一方患有糖尿病/叔叔或姑姑有一方患有糖尿病
父母有一方患有糖尿病
"""
def FHOD(a):if a=='无记录':return 0elif a=='叔叔或者姑姑有一方患有糖尿病' or a=='叔叔或姑姑有一方患有糖尿病':return 1else:return 2data['糖尿病家族史']=data['糖尿病家族史'].apply(FHOD)
"""
舒张压范围为60-90
"""
def DBP(a):if 0<=a<60:return 0elif 60<=a<=90:return 1elif a>90:return 2else:return a
data['DBP']=data['舒张压'].apply(DBP)#------------------------------------
#将处理好的特征工程分为训练集和测试集,其中训练集是用来训练模型,测试集用来评估模型准确度
#其中编号和患者是否得糖尿病没有任何联系,属于无关特征予以删除
train=data[data['患有糖尿病标识'] !=-1]
test=data[data['患有糖尿病标识'] ==-1]
train_label=train['患有糖尿病标识']
train=train.drop(['编号','患有糖尿病标识','出生年份'],axis=1)
test=test.drop(['编号','患有糖尿病标识','出生年份'],axis=1)#----------------模型训练----------------
model = DecisionTreeClassifier()
model.fit(train, train_label)
y_pre=model.predict(test)
y_pre#----------------结果输出----------------
result=pd.read_csv('提交示例.csv')
result['label']=y_pre
result.to_csv('result-de.csv',index=False)

2.2 结果提交

在提交结果处提交,提交 预测结果.csv(程序生成的CSV文件),查看自己的成绩排名

选择刚才生成的result.csv点击提交

点击我的成绩查看结果

参与教程评测贡献的高校名单

整理不易,三连

《如何打一场数据挖掘赛事》入门版相关推荐

  1. 从0梳理1场数据挖掘赛事!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:王茂霖,华中科技大学,Datawhale成员 摘要:数据竞赛对于大 ...

  2. 【数据竞赛】从0梳理1场数据挖掘赛事!

    作者:王茂霖,华中科技大学,Datawhale成员 摘要:数据竞赛对于大家理论实践和增加履历帮助比较大,但许多读者反馈不知道如何入门,本文以河北高校数据挖掘邀请赛为背景,完整梳理了从环境准备.数据读取 ...

  3. 《如何打一场数据挖掘赛事》进阶版

    Datawhale干货 贡献者:牧小熊.Datawhale幕后贡献者 经过上一篇的入门学习,大家已经熟悉如何去打一场比赛,并能训练经典的机器学习算法模型,去解决实际的问题.如果你还不了解,可以先学习& ...

  4. 从0梳理1场NLP赛事!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:徐美兰-lan,华南理工大学 摘要:这是从0实践竞赛第3篇,数据竞 ...

  5. 【NLP】从0梳理1场NLP赛事!

    作者:徐美兰-lan,华南理工大学 摘要:这是从0实践竞赛第3篇,数据竞赛对理论实践和增加履历有益,为了让初学者也能入门,本文以全球人工智能技术大赛预热赛-中文预训练模型赛事为背景,梳理了nlp赛事的 ...

  6. 又一数据挖掘赛事,在校生专属,翼支付杯来了(直通实习机会)

    Datawhale 主办方:中国电信-翼支付,数据挖掘赛事 为了积极研究探索"金融科技FinTech"技术并努力应用到实际业务中,挖掘更多金融科技在实际普惠金融业务的应用方案.由翼 ...

  7. 赠书活动 | 数据挖掘经典入门

    赠书活动在 AINLP 公众号. 这本书相当受欢迎(前两个版本累计销量超过 5 万册),尤其是受学校青睐--在此也说声抱歉,出于出版时间的原因,很多学校依然采用了旧版作为教材:同时也请知悉,新版已上架 ...

  8. 数据挖掘 —— 从入门到求职

    作者:ZakeXu 链接:https://www.nowcoder.com/discuss/15168?type=0&order=4&pos=50&page=4 来源:牛客网 ...

  9. 双节棍「大师」鱼佬亲传武功秘籍:如何进行一场数据挖掘算法竞赛?

    Datawhale 作者:鱼佬,Datawhale成员 简介:鱼遇雨欲语与余,Datawhale成员,武汉大学硕士,天池数据科学家.2019腾讯广告算法大赛冠军,数据竞赛爱好者. 当我们掌握了一定的机 ...

最新文章

  1. opencv meanStdDev
  2. cc.AudioSource
  3. fread和fwrite函数功能
  4. Package require os(darwin) not compatible with your platform(win32)
  5. 树 | 突然间,看了这篇文章,树我懂了!
  6. Fisher准则一维聚类
  7. linux远程连接telnet命令,Linux中的ssh,ping,ftp,telnet远程登录及通信相关的命令...
  8. Qt总结之八:绘制仪表盘
  9. Layui 的内置jquery 版本
  10. ZigBee学习之NXP JN5169开发环境搭建
  11. CodeRunner破解
  12. 硬盘服务器与硬盘阵列,磁盘阵列和硬盘的区别是什么
  13. 北京新版城市总体规划解读
  14. 为什么微信显示这个android设备,微信显示安卓手机型号在哪设置
  15. clone别人远程仓库的代码,运行npm install报错npm ERR! Maximum call stack size exceeded
  16. 英语发音之音标6---法(重读符号)
  17. MFC CFileDialog 相对路径
  18. 专利申请费用减免有哪些条件
  19. Xshell用root用户连接Linux
  20. java 2 实用教程(第五版)第六章课后编程题:设计一个动物声音模拟器,希望模拟器可以模拟许多的动物的叫声。

热门文章

  1. webrtc scoped_refptr
  2. sstream头文件
  3. 网页禁止复制粘贴怎么办?教你六招轻松完成
  4. python基础-生成器表达式
  5. java修饰词不能使用抽象类_java-修饰词、抽象类、抽象方法
  6. vmware虚拟机联网问题
  7. 第五届金蝶云・苍穹追光者开发大赛报名正式启动!百万奖金等你拿!
  8. 本人做c++有十多年啦,谈谈我这几年的C++学习之路
  9. BZOJ3834: [Poi2014]Solar Panels
  10. 中国全息防伪包装行业市场供需与战略研究报告