navixin 2016-06-03
一、背景
感谢大家关注玩转数据系列文章,我们希望通过在阿里云机器学习平台上提供demo数据并搭建相关的实验流程的方式来帮助大家学习如何通过算法来挖掘数据中的价值。本系列文章包含详细的实验流程以及相关的文档教程,欢迎大家进入阿里云数加机器学习平台体验。实验案例请在新建实验页签查看,如下图。
本章作为玩转数据系列的开篇,先提供一个简单的案例给大家热身。通过截取一份人口普查的数据,对学历和收入进行统计和分析。主要目的是帮助大家学习阿里云机器学习实验的搭建流程和组件的使用方式。任何关于阿里云机器学习方面的交流欢迎访问我们的云栖社区公众号。
二、数据集介绍
数据源:UCI开源数据集Adult
针对美国某区域的一次人口普查结果,共32561条数据。具体字段如下表:
字段名 | 含义 | 类型 |
---|---|---|
age | 年龄 | double |
workclass | 工作类型 | string |
fnlwgt | 序号 | string |
education | 教育程度 | string |
education_num | 受教育时间 | double |
maritial_status | 婚姻状况 | string |
occupation | 职业 | string |
relationship | 关系 | string |
race | 种族 | string |
sex | 性别 | string |
capital_gain | 资本收益 | string |
capital_loss | 资本损失 | string |
hours_per_week | 每周工作小时数 | double |
native_country | 原籍 | string |
income | 收入 | string |
三、数据探索流程
选中人口统计demo,从模型生成实验,如下图:
使用方式:
-用户通过从左边列表拖拽组件到试验区域搭建实验流程
-在配置区域对每个组件的参数进行设置
1.数据导入
机器学习平台的底层计算式阿里云分布式计算系统MaxCompute(原名ODPS),所以实验数据需要先导入到ODPS表里,用户可以通过*读ODPS表*(图中的数据源-人口统计)组件导入数据。上传成功后,右键组件可以查看数据,如下图:
2.理解数据
数据导入后就可以对数据进行分析了,整个实现从纵向看分为三个部分。
其中全表统计和数值分布统计是帮助用户更好的理解一份数据,理解一份数据是符合泊松分布或是高斯分布,连续或是离散的对之后的算法的选择会有一定帮助(具体的对照关系在之后的文章会详细介绍)。阿里云机器学习的每个套件都提供了可视化显示结果的功能,下图是数值统计的直方图组件结果,可以清楚地看到每个输入数值的分布情况。
3.统计不同学历的人员的收入情况
每个人都想增加收入,都想知道哪些因素对收入的影响最大。这些问题都可以通过提取特征,利用机器学习算法训练来得到。本文主要目的是简单介绍一下机器学习平台的使用方法,这里简单的针对不同学历的人员的收入做一下统计。
(1)数据的预处理
我们看到在收入统计的这条线上,数据流入的第一个组件是SQL脚本(如下图),机器学习平台提供SQL脚本对于数据进行处理。这里是将string型的income字段转换成二值型的0和1的形式。0表示年收入在50K以下,1表示年收入在50K以上。这种将文本数据数值化是机器学习特征处理的常用方式,以后会经常用到这种方式。
(2)过滤与映射
这一步主要是通过*过滤与映射*组件将数据按照学历分为三部分,分别是博士、硕士和学士。*过滤与映射*底层是SQL语法,支持where过滤条件,用户通过在右边的配置栏填写过滤条件即可。
(3)统计结果
通过每个百分位组件就可以方便的得到每个分类下的收入比例。下图是调成折线图的展示效果,结果中为0的点也就是年收入在50K以下的人群占比例百分之25左右。
结合三个百分位组件就可以得到如下图结果。
学历 | 年收入>50K比例 |
---|---|
博士 | 75% |
硕士 | 57% |
学士 | 42% |
四、其它
下期预告:利用机器学习算法预测患者是否患有心脏病
更多深度技术内容,请关注云栖社区微信公众号:yunqiinsight。