由于项目中的机器学习系统集成了一个名为H2O的开源项目,顺便对其进行了学习了解。H2O是一个开源的、分布式的机器学习平台,可以支持深度学习、线性回归、k-means聚类等算法,支持R、Python接口调用,同时也提供界面化的模型训练和验证的交互过程(Flow),通过这个界面可以在不编写代码的情况下完成数据导入、模型训练、模型验证、模型导出等操作。下图是官方的系统架构图:
从上图可以看出,
- 平台可以支持多种数据来源,尤其是可以与HDFS接入的能力,可以让数据导入、数据预处理的过程更加方便;
- 平台计算引擎支持R和Python,可以非常方便的调用平台功能,完成模型训练及应用;
在实际项目中,基于法人数据完成了一个聚类模型的训练及验证,过程如下:
- 导入数据。从hive中导入法人表,包括从hdfs中导入文件、建立文件解析器、导入数据等几个步骤;
- 建立训练数据集、验证数据集。利用平台的切割数据集命令,基于导入数据建立了两个数据集;
- 构建kmeans聚类算法,核心参数包括指定训练和验证数据集、需要聚类的类别数量(15)、聚类忽略的特征字段(利用行业类别、经济类型、行政区划等特征字段)