机器学习有很多流程,包含数据预处理、特征工程、模型训练、模型评估和预测。今天所有做机器学习服务的人,无论是云上服务还是开源软件,大家都在尝试通过某种方式将如此灵活的流程串联起来。今天给大家介绍一种方式,适用所有人都了解的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/
安装成功后启动工具,可以在terminal中使用docker命令:
2.Pull docker镜像
有了docker工具后可以通过docker pull命令拉取sqlflow最新的镜像:
docker pull sqlflow/sqlflow
拉取过程中比较慢,需要接近半小时时间
3.启动Docker
docker run --rm -it -p 8888:8888 sqlflow/sqlflow
启动后,可以通过浏览器打开localhost8888,
http://localhost:8888/notebooks
03 使用流程
接下来介绍下sqlflow怎么使用,这里用一个官方例子,如何使用sqlflow基于iris数据,使用DNN实现一个分类模型。
1.首先看下训练数据
2.模型训练
* 通过TRAIN参数选择使用的分类算法,可以选择xgboost、DNN等
* model.n_classes和hidden_units设置模型相关的参数
* train.epoch设置模型迭代的次数
* COLUMN参数设置训练特征
* LABEL设置目标列
* INTO参数设置保存的模型
3.模型预测
使用USING参数调用保存好的模型进行预测
04 我的体感
根据我做了4年多机器学习平台的经验,我也一直在探索有哪种标准化的模型是可以覆盖机器学习全部流程。目前看SQL可能是一种解法,大家通过本文也看出整个使用是比较顺畅。但是如果涉及到很复杂的数据上下文的处理,用SQL可能不一定能满足需求。目前sqlflow更多的意义是给大家一个借鉴,机器学习算法是可以通过sql来描述。后续或许sql成为了最终解决机器学习全流程的答案,或许有新的技术出现,我也跟大家一起期待着。
转载:https://blog.csdn.net/gshengod/article/details/102406692