玩转模板

  • 引言
  • 1、分析问题
  • 2、数据分析
    • 2.1 理解数据
    • 2.2 EDA-数据探索性分析
  • 3、数据清洗
  • 4、特征工程

引言

\quad \quad机器学习和深度学习一旦入坑,学习知识最快的方式就是多做项目,找一些比赛打,像Kaggle, 阿里的天池等,很多很多的比赛,从实用的角度,然后再哪里不会补哪里。一开始的重点不是要求自己开始做,然后能达到多少分的排名,而是和排名靠前的大佬学习处理数据的技巧和方法,我觉得这才是关键,这里先整理一个宏观的比赛模板。这个模板可以适用于数据分析比赛或者项目。
模板如下:

具体的见下图

上述图片源于借鉴,

1、分析问题

拿到一个项目或者参加比赛之前,都需要做到心中有数,了解主要干什么?

  • 重点是要求做什么?(是属于分类还是回归还是聚类…)
  • 采用什么样的方式?
  • 最后的评估方式是什么?

2、数据分析

2.1 理解数据

\quad \quad可以通过描述性统计和通过可视化初步了解数据

1、描述性统计

\quad \quad描述性统计主要是查看数据的一些基本的格式,主要包括下面几个部分:

.shape: 查看数据的形状
. head(): 默认查看数据本身的前五行
.info(): 数据集的简单描述, 总行数,空值或者数据类型等
.value_counts(): 分类的时候用的多,查看类别的个数
.describe(): 简单的统计性表述,最大值,最小,平均等
. corr(method=‘pearson’): 查看列之间的相关性
.skew(): 通过分析数据的高斯分布来确认数据的偏离情况

2、可视化数据信息
\quad \quad另一个快速了解数据类型的方式是绘制每个属性的直方图由一系列高度不等的纵向条纹或者线段表示数据的分布情况。 一般用横轴表示数据类型,纵 轴表示分布情况。直方图可以非常直观的展示每个属性的分布情况。通过图标,可以很直观 的看到数据是高斯分布,指数分布还是偏态分布。比如直方图,散点图等等。 seaborn是一个比matplotlib更好用的工具,画出的图像也更加好看。

2.2 EDA-数据探索性分析

\quad \quad EDA (Exploratory Data Analysis),即对数据进行探索性的分析。在数据清洗和特征工程之前,通过作图,制表等方式对数据进行特征(统计性特征,分布型特征,相关性)分析。

数据分析可能会涉及到以下几个方面:

◆ 分析特征变量的分布

◇ 特征变量为连续值:如果为长尾分布并且考虑使用线性模型,可以对变量进行幂变换或者对数变换。

◇ 特征变量为离散值:观察每个离散值的频率分布,对于频次较低的特征,可以考虑统一编码为“其他”类别。

◆ 分析目标变量的分布

◇ 目标变量为连续值:查看其值域范围是否较大,如果较大,可以考虑对其进行对数变换,并以变换后的值作为新的目标变量进行建模(在这种情况下,需要对预测结果进行逆变换)。一般情况下,可以对连续变量进行Box-Cox变换。通过变换可以使得模型更好的优化,通常也会带来效果上的提升。

◇ 目标变量为离散值:如果数据分布不平衡,考虑是否需要上采样/下采样;如果目标变量在某个ID上面分布不平衡,在划分本地训练集和验证集的时候,需要考虑分层采样(Stratified Sampling)。

◆ 分析变量之间两两的分布和相关度

◇ 可以用于发现高相关和共线性的特征。

\quad \quad通过对数据进行探索性分析(甚至有些情况下需要肉眼观察样本),还可以有助于启发数据清洗和特征抽取,譬如缺失值和异常值的处理,文本数据是否需要进行拼写纠正等。Python有一款神奇就是pandas_profiling, 导入这个包,然后调用一个函数就可以直接生成数据的探测性报告,包括上面的描述性统计和可视化信息,相关性等,做比赛节省时间的必备神器。

import pandas_profiling
pfr = pandas_profiling.ProfileReport(Train_data)
pfr.to_file("./example.html")

3、数据清洗

\quad \quad数据清洗指对提供的原始数据进行预处理,使得其方便后续的特征抽取。常用的数据清洗一般包括以下几个方面,需要针对具体情况具体分析:

◆ 数据的拼接

◇ 提供的数据散落在多个文件,需要根据相应的键值进行数据的拼接。

◆ 特征缺失值以及异常值的处理

◇ 特征值为连续值:按不同的分布类型对缺失值进行补全:偏正态分布,使用均值代替,可以保持数据的均值;偏长尾分布,使用中值代替,避免受 outlier 的影响;

◇ 特征值为离散值:使用众数代替。

◆ 文本数据的清洗

◇ 在比赛当中,如果数据包含文本,往往需要进行大量的数据清洗工作。如去除HTML 标签,分词,拼写纠正, 同义词替换,去除停词,抽词干,数字和单位格式统一等。

◆ 解决数据的不一致性

◇ 比如数据是类别型(LabelEncoder或者OneHotEncoder)或者次序型

4、特征工程

参考资料:
1、https://blog.csdn.net/qq_35456045/article/details/104983889
2、https://zhuanlan.zhihu.com/p/26820998

机器学习比赛、项目之模板相关推荐

  1. 2019机器学习比赛_2019顶尖的机器学习课程

    2019机器学习比赛 With strong roots in statistics, Machine Learning is becoming one of the most interesting ...

  2. 精选机器学习开源项目Top10

    作者 | Mybridge 译者 | linstancy 编辑 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个机器学习开源项目进行了排名,并挑选出热度前 10 的项 ...

  3. Python 机器学习之项目实践

    机器学习是一项经验技能,经验越多越好.在项目建立的过程中,实践是掌握机器学习的最佳手段.在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的. 预测模型项目模板 不 ...

  4. 数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测

    相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...

  5. 24个提高你的知识和技能极限的数据科学(机器学习)项目(免费)

    作者|ANALYTICS VIDHYA 编译|Flin 来源|analyticsvidhya 介绍 数据科学(机器学习)项目为你提供了一种有前途的方式来启动你在该领域的职业.你不仅可以通过应用它来学习 ...

  6. 机器学习开源项目Top10

    整理 | Jane 出品 | AI科技大本营 [导语]又到了我们固定给大家推荐开源项目的时间.本期将为大家推荐 10 个机器学习开源项目,统计了过去一个月中 250 个机器学习开源项目,并从中选取了本 ...

  7. 11月最佳机器学习开源项目Top10!

    整理 | Jane 出品 | AI科技大本营 过去一个月,我们从近 250 个机器学习开源项目中挑选出了最受大家关注的前十名.这些项目在 GitHub 上平均 Stars 数为 2713.这些项目涉及 ...

  8. 10月机器学习开源项目Top10

    作者 | Mybridge 译者 | 林春眄 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个机器学习开源项目进行了排名,并挑选出热度前 10 的项目.这份清单 ...

  9. 9月机器学习开源项目Top10

    作者 | Mybridge 译者 | 王天宇 整理 | Jane 出品 | AI科技大本营 [导读]我们从过去一个月近 250 个有关机器学习的开源项目中,精心挑选出了最热门的 10 个.在挑选过程中 ...

最新文章

  1. Science:纽约西奈山医学院房刚组定量分析真核生物DNA 6mA解析细菌污染的影响...
  2. 计算机学院许斌副院长,马鞍山职业技术学院院长姚国成、马鞍山市卫校校长许斌一行来访我院...
  3. SAP Spartacus Organization Unit List三个按钮的技术实现
  4. IOS开发基础之单例模式
  5. boost::weak_ptr和enable_shared_from_this
  6. java泛型和类型通配符,java – 泛型,类型参数和通配符
  7. python -pymysql的操作
  8. 基于GAN的手写数字生成实践
  9. 【Axure教程】滑动输入元件
  10. Linux信号量以及互斥体
  11. plc编程及应用_常见进制在PLC编程中的应用,学PLC必备~
  12. Linux下基于TCP的视频传输(c++ )
  13. 中国NPP净初级生产力数据/植被覆盖空间分布数据分享(2000-2021)
  14. 一日精通python编程_爱上Python:一日精通Python编程
  15. python2.7.18绿色安装包制作
  16. PromQL 直方图 跟踪请求的延迟或响应大小 99%的请求是在多少延迟下完成的?
  17. 高德 面积计算公式 js版
  18. kermit的安装、配置、使用等
  19. 科普 | 区块链概念最全解析:区块链的下一个十年什么样?
  20. 2020年华东理工大学计算机推免面试

热门文章

  1. springboot配置类中的bean名字能不能随便写
  2. 运用spm中的coregister改变图像大小(图像重采样)
  3. WebRTC offer - answer交换sdp流程分析
  4. grep -rn搜索服务配置文件信息、log字段信息
  5. 8.0魔兽服务器维护时间,《魔兽世界》8.0上线时间公布 取消PVE、PVP服务器之分...
  6. arduino与蓝牙模块
  7. 最新科大讯飞麦克风阵列板替代产品来了,附远场录音效果图
  8. python 微信公众号网页接口调用_Python调用微信公众平台接口操作示例
  9. “十进制网络”遭质疑 数字域名被当作笑话
  10. 手动删除EMCC13C的 Repository Database