首页
学习
活动
专区
工具
TVP
发布

Sophon+Slipstream实现流式KMeans聚类预测

随着数据规模和丰富度的不断提升,其价值越来越受到企业的重视。其中,机器学习在挖掘数据价值方面扮演着重要的角色,得到广泛应用。大数据概念的在各行各业的普及与深入,使机器学习拥有更多的创造价值的机会。

特别的,在广告推荐、商业预测方面,有效的机器学习应用将会带来非常直接的价值。由于推荐预测系统对数据时效性的敏感度较高,而且其数据处于连续实时且快速的变化,所以必须建立起流式的机器学习应用,从而对流式的数据进行实时的预测分析与处理,这对于商业分析与运营而言将十分关键。

为此,Transwarp提供了Sophon+Slipstream的流上机器学习解决方案。其中,Sophon是TDH生态中的深度学习与机器学习平台,Slipstream是强大的SQL流处理引擎。Sophon负责实现算法模型训练,Slipstream提供事件驱动引擎,支持机器学习应用运行于事件驱动模式,因此能够将二者组合实现流式机器学习的开发。

本文将介绍如何利用Sophon以及Slipstream对流数据实现KMeans聚类预测。

基本思路

1.利用Transwarp Sophon的客户端Midas对样本数据进行机器学习模型训练,并将模型训练结果导出为Json格式。

2. 接着在Transwarp Slipstream中,将上述模型导入系统,然后启动流处理,对当前进入系统的实时数据进行实时预测。

3. 预测的结果可以持久化在Inceptor或Hyperbase表中,以便后续查询。或者也可直接送入Kafka中,进行实时展示。

上述模型预测的全过程,只需要用户进行拖拽式的建模以及SQL语句编写,并不涉及复杂编程,即可完成实时预测的功能开发。下面将介绍在Sophon和Slipstream中的具体操作。

用Sophon训练模型

我们利用Sophon的客户端Midas对样本数据进行KMeans算法模型训练。

首先将数据读入模块拖拽入流程设计面板中并编辑其相关参数,即设置待训练的样本数据,然后引入KMeans模型算法算子,最后通过“写入Json文件”算子,将训练好的模型以Json文件导出并存储在HDFS的/tmp/kmeans.json中。

下图提供了整个过程的完整流程,以及模型导出算子的配置。

用Slipstream做流式预测

下面开始在Slipstream中利用kmeans.json模型进行KMeans聚类预测。

在Kafka中创建名为unlabeled的topic。用于接收Producer生产的数据。

接着在Slipstream中创建以Kafka为源的Input stream--unlabeled,以及用于接收预测结果的Inceptor Text表--kmeans_predict。

启动stream,利用Sophon中训练好的模型kmeans.json,以流数据中的c1和c2字段为特征属性进行聚类预测。结果保存在kmeans_predict表中。

其中,该语句中的kmeans_predict函数是预置在Slipstream中的用于实现流式KMeans算法预测的函数,该函数是这样定义的:

kmeans_predict(col1, col2, ... coln, model_path)

col1,...,coln代表每个元素的特征属性,model_path是训练好的模型的存放路径。

接着,启动Kafka Producer(以kafka-console-producer为例)向Kafka集群发送数据。

随后在Slipstream中用SELECT访问kmeans_predict结果表,查看对Producer发布的流数据进行聚类后的结果。

以上便完成了对流式数据的机器学习模型预测。

总结

Sophon除了KMeans之外还支持多种常见算法的流式预测,与Slipstream结合可以支持多种流式机器学习。流式机器学习将方便基于实时数据的数据挖掘开发,不必等待批量数据就可以对实时数据做预测。在广告、工业、交通等具有实时预测需求的行业,二者工具的结合将有效推动智能行业应用的构建与建设。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171225B04BTQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券