【教程】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成爲了最終解決機器學習全流程的答案,或許有新的技術出現,我也跟大家一起期待着。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章