【教程】sqlflow实现用sql玩转机器学习

机器学习有很多流程,包含数据预处理、特征工程、模型训练、模型评估和预测。今天所有做机器学习服务的人,无论是云上服务还是开源软件,大家都在尝试通过某种方式将如此灵活的流程串联起来。今天给大家介绍一种方式,适用所有人都了解的SQL语言。sqlflow,一种基于sql语言的机器学习实现方案

01 概述

sqlflow是一种基于sql的描述语言,用户可以基于sql的方式实现机器学习模型训练和预测。目前sqlflow已经开源,并且支持了keras、tensorflow、xgboost等算法框架。

sqlflow的地址:https://github.com/sql-machine-learning/sqlflow

作者看法:sql描述语言可能是贯穿机器学习流程的一种解法,但是因为算法流程串联需要极大的灵活性,接下来就看下如何安装并运行。

02 安装流程

1.安装Docker平台工具

sqlflow官方提供了一种基于Docker的安装方式,可以减少配置环境的过程,安装docker可以参考:https://docs.docker.com/install/

屏幕快照 2019-10-08 下午7.09.19.png

安装成功后启动工具,可以在terminal中使用docker命令:

屏幕快照 2019-10-08 下午7.10.45.png

2.Pull docker镜像

有了docker工具后可以通过docker pull命令拉取sqlflow最新的镜像:

docker pull sqlflow/sqlflow

拉取过程中比较慢,需要接近半小时时间

屏幕快照 2019-10-08 下午7.12.20.png

3.启动Docker

docker run --rm -it -p 8888:8888 sqlflow/sqlflow

启动后,可以通过浏览器打开localhost8888,

http://localhost:8888/notebooks

03 使用流程

接下来介绍下sqlflow怎么使用,这里用一个官方例子,如何使用sqlflow基于iris数据,使用DNN实现一个分类模型。

1.首先看下训练数据

屏幕快照 2019-10-08 下午7.17.05.png


2.模型训练

屏幕快照 2019-10-08 下午7.17.44.png

* 通过TRAIN参数选择使用的分类算法,可以选择xgboost、DNN等

* model.n_classes和hidden_units设置模型相关的参数

* train.epoch设置模型迭代的次数

* COLUMN参数设置训练特征

* LABEL设置目标列

* INTO参数设置保存的模型

3.模型预测

屏幕快照 2019-10-08 下午7.20.34.png

使用USING参数调用保存好的模型进行预测

04 我的体感

根据我做了4年多机器学习平台的经验,我也一直在探索有哪种标准化的模型是可以覆盖机器学习全部流程。目前看SQL可能是一种解法,大家通过本文也看出整个使用是比较顺畅。但是如果涉及到很复杂的数据上下文的处理,用SQL可能不一定能满足需求。目前sqlflow更多的意义是给大家一个借鉴,机器学习算法是可以通过sql来描述。后续或许sql成为了最终解决机器学习全流程的答案,或许有新的技术出现,我也跟大家一起期待着。

发布了276 篇原创文章 · 获赞 675 · 访问量 123万+

猜你喜欢

转载自blog.csdn.net/gshengod/article/details/102406692
今日推荐