引言
这篇文章不涉及很多代码的部分,主要是机器学习处理数据的一些基本概念和流程。写这篇blog的原因是对前一段时间的总结。前一段时间参加阿里天池的贵州交通大数据的比赛,使用了很多机器学习的方法和模型(xgboost 和lightgbm),但是当时只限于知道接口的使用和接口的作用,不了解原理或者知识点很凌乱。所以打算趁着十一的空闲时间把知识点梳理一下。 主要的进度是根据“七月在线”的教程来进行的。接下来开始第一部分,“机器学习的基本流程”。不足的地方以后再补充。
首先有这么一句话,“数据和特征决定了机器学习的上限,而算法和模型只是逼近这个上限而已”,嗯嗯,数据处理和特征工程很重要,大概占据70%的工作量,而模型选择、模型调参、模型融合占据30%的工作量。
接下来看看数据分析的流程:
一、认识数据
- 数据的分布,比如分类问题中,正负样本均衡很重要,即正样本数:负样本数接近1:1比较好。
数据的类型
数值型,是否跨度很大,比如[1,10000],这样会导致收敛很慢,常常归一化、标准化; 或者出现“长尾”数据,使用log归一化;或者离散化(把0-100分一类,100-200分类,等等)。
类别性(category),一般使用one-hot编码。
- 数据的维度,比如rgb颜色有三维数据,来表示一个颜色lable。
- 数据是否有缺省值。
二、数据预处理:
- 数据清洗: