数据挖掘流程:
我在天池做过一些比赛,比如新人赛里面的o2o,但对于建模前的一些准备(特征工程或者说叫数据挖掘)并没有什么概念,网上也并没有找到相应的资料。刚好今天在网上的课程(京东购买预测)中找到了详细的步骤,故做记录保存分享。
(一)数据清洗
- 1.数据集完整性验证
数据是否存在残缺
- 2.数据集中是否存在缺失值
缺失数据是很常见的。python中的pandas的部分函数是可以用来处理缺失值的。
pandas使用浮点值Nan(Not a Number)表示浮点和非浮点数组中的缺失数据。当然它只是一个标记而已,后续可以用isnull函数来判断是否存在缺失值以及进行统计了。python内置的None也会被当作Nan处理,虽然同样是缺失值,但还是存在一点不同的,这里不再赘述。
Nan的处理方法:
dropna – 根据各标签的值中是否存在缺失数据对轴标签进行过滤,可通过阈值调节对缺失值的容忍度。
fillna – 用指定或插值方法(ffill或bfill)填充缺失数据
isnull – 返回一个含有布尔值的对象,这些布尔值表示哪些是缺失值Nan,哪些不是(True or False)
统计好缺失值之后可以滤除缺失数据(丢弃某些行或列)、填充缺失数据(fillna)
fillna函数的参数
value– 用于填充缺失值的标量值或字典对象
method – 插值方式。默认为ffill
axis – 待填充的轴,默认为axis=0
inplace – 修改调用者对象而不产生副本(inplace=True)
limit – (对于前向和向后填充)可以连续填充的最大数量
- 3.数据集中各特征数值应该如何处理
连续值离散化(区间)
- 4.哪些数据是我们想要的,哪些数据时可以过滤掉的
数据一定要理解,每一列表示什么特征,可以根据经验或者重要性进行过滤
- 5.将有价值数据信息做成新的数据源
特征提取或统计
- 6.去除无行为交互的商品和用户
去除无价值的信息
- 7.去掉浏览量很大而实际上购买量很少的用户(惰性或爬虫)
(二)数据理解与分析
- 1.掌握各个特征的含义
- 2.观察数据有哪些特点,是否可以用来建模
- 3.可视化展示便于分析
线型图、柱形图、直方图、密度图、散布图和饼图
- 4.用户的购买意向是否随着时间等因素变化
(三)特征提取
- 1.基于清洗后的数据集哪些特征是有价值
- 2.分别对用户与商品以及其之间构成的行为进行特征提取
- 3.行为因素中哪些是核心?如何提取?
- 4.瞬时行为特征or累计行为特征?
(四)模型建立
- 1.使用机器学习算法进行预测
- 2.参数设置与调节
- 3.数据集切分?