前言
相信很多朋友听到这个标题第一反应:基于SQL能够实现机器学习?当然还有的朋友是有过了解一些类似项目的,例如Byzer和阿里的SQLFlow。都是基于SQL语言去实现一些机器学习算法。但是真正用过的朋友应该还是少数的,一般使用场景也都是使用Python调用sklearn实现一些简单的机器学习。很少有喜欢科研的朋友从底层手撕数学算法写完实现整个算法,我认识的一些同事朋友几乎都是直接调用sklearn实现,确实现在也是一般调库调参也能够快速实现一些功能,但是这使得机器学习的门栏大大降低。
有了机器学习的接口便可集成非常多的功能,如果能够解析传输的SQL语句,能够解析其中的数据和想要实现的一些机器学习算法和参数,那么即可调用sklearn功能。这是我的初步想法,当然之前进行的sqlparse解析也是承担了相当大的功能,可以将如今这个目标做一些初步的攀登了。
一、总体架构
我的初期构建想法可能相对比较简单,简单的来说分为五步。 如果我们想要实现基于SQL语言的机器学习分析,那么首先我个人感觉应该与平台化系统差不多。以用户角度思考,我传入的是一条SQL语句,其中包含我想要传输的数据库的表包含的字段列名和限制条件,其中想要调用的机器学习算法应该可以作为一个函数去实现。比如:
SELECT KNN_result
FROM (
SELECT
KNN_select(features1,features2,features3),
KNN_parameter(n_neighbors=5,radius='auto',leaf_size=30),
FROM Table1
)t
以上写法只是我现在的想法并不一定最终形式会以这种语法呈现。那么如果我们能够解析SQL语句的话,