背景
pai的数据预处理功能比较全,本博客将走读一下。
组件简介
- 过滤与映射,相当于
select filed1, filed2, filedx where xxxxxx
,也就是从odps的表中获取部分字段 - 随机采样,相当于随机的select出来部分数据
- Join,没啥好说的,用于关联查询,类似于sql中的join
- 合并列,相当于python中的zip,无脑的把两个数据进行合并,前提是
行数相同
- 类型转换,把某个字段的类型转换成string或者int等目标类型
- 增加序列号,增加一个id的列,而且不重复
- 拆分,用于拆分测试集和训练集的组件
- 缺失值填充,null或者空字符串,填充成一个目标数据(之前在spark中处理数据的时候,经常会出现非法值的情况,可以直接用这个避免)
- 归一化,使用线性代数的向量归一化处理,如果对归一化不懂,可以搜索我的博客中的线性代数,去脑补一下
- 标准化,Standardization,线性代数中的概念,我之后的博客中将会涉及到(用白话说:围绕着一个平均值,做归一化操作)
- KV to table,将key:value的形势,转换成为表格,key作为字段名
理论分析
遍历了一边所有的组件,大多都可以通过sql实现,我们自定义的插件理论上也能实现类似的功能,所以重点其实还是自定义插件。
ps
在用pai做实验的时候,发现它的分词确实不太好,对比了jieba,让我看到jieba的优秀,不妨尝试把jieba自定义到pai中,这样既可以使用pai的可视化,又可以享受更好的分词效果。