【导读】开源项目SQLFlow是SQL引擎(如MySQL、HIVE等)和机器学习引擎(如TensorFlow、XGBoost等)之间的桥梁。它扩展了SQL语义,使得它能够进行模型训练、预测和解释。
近几年来,随着深度学习等机器学习技术对学术界和工业界都产生了巨大的影响。虽然许多机器学习解决方案在算法上超越了传统的算法,但是由于一些处理流程并不能与现有的数据处理标准对接等原因,使得机器学习算法的落地遇到许多困难。
工业界中,SQL已经成为了大部分数据业务的一种标准,甚至一些大厂中某些部门的数据工程师或算法工程师在日常工作中只能够通过SQL进行编程。因此,将SQL与现有的机器学习引擎对接,可以在一定程度上将机器学习引擎融入现有的标准化平台中。
论文《SQLFlow: A Bridge between SQL and Machine Learning》提出一种将MySQL、HIVE等标准化SQL引擎与TensorFlow等机器学习引擎桥接的方案SQLFlow,它的Github地址如下:
https://github.com/sql-machine-learning/sqlflow
项目效果展示:
SQLFlow提供了非常友好的SQL式的机器学习接口,让开发者可以通过SQL语句来进行标准化的数据预处理、模型训练与测试等功能。例如通过下面的SQL,直接可以实现数据的读取与模型的训练:
sqlflow> SELECT *
FROM iris.train
TO TRAIN DNNClassifier
WITH model.n_classes = 3, model.hidden_units = [10, 20]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;
...
Training set accuracy: 0.96721
Done training
读取数据并使用模型进行预测的SQL也非常简洁:
sqlflow> SELECT *
FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;
...
Done predicting. Predict table : iris.predict
参考链接:
https://arxiv.org/abs/2001.06846
https://github.com/sql-machine-learning/sqlflow