写点什么

不用 Python/R ,只会 SQL 就可以做机器学习?

作者:Kyligence
  • 2021 年 12 月 08 日
  • 本文字数:3043 字

    阅读完需:约 10 分钟

不用 Python/R ,只会 SQL 就可以做机器学习?

在这个「 SQL 为王」的时代,相信大部分数据从业人员都对  SQL 不陌生。但是随着企业对大数据+AI 的需求不断增多,都对从业人员提出了更高的要求。要想搞定机器学习,好像非学 Python 或 R 语言不可。


想只用 SQL 就能搞定机器学习?当然可以!


如果您对 SQL 和机器学习已经足够了解,可以跳过下面介绍的部分,直接下滑至文末进行 MLSQL Lab 平台在线试用。通过示例代码,你将能在五分钟内快速上手机器学习


1.为什么是 SQL?

SQL 全称是“ Structured Query Language ”,结构化查询语言。SQL 成为了人类与数据库交互的统一通用语言。尽管受到了 NoSQL 的一系列挑战,SQL 的流行仍然延续至了互联网时代和大数据时代。


在数据科学家和数据工程师中,SQL 比 Python 或 R 语言更受欢迎。事实上,SQL 也是整个 IT 行业最常用的语言之一。经调查显示,在 2020 年开发人员“最常用”的技术中,SQL 在流行度方面甚至超越了 Python ,在所有开发语言中排名第三。


来源:Stack Overflow


如果我们将范围聚焦到数据领域,大家会发现在处理数据的工作人员(包括数据科学家、数据分析师、数据库管理员、数据工程师等),超过 70% 的人在使用 SQL -- 超过任何其他语言。虽然 SQL 使用非常广泛,但是其应用仍然限制在结构化数据的查询与操作,当 SQL 遇到大数据、AI  这些新的技术趋势,就遇到了一些瓶颈,我们接下来会介绍 MLSQL 如何解决这些问题的。


2.什么是机器学习?

机器学习是一门人工智能的科学,是对能通过经验自动改进的计算机算法的研究。


机器学习分为监督性学习和非监督性学习。监督性学习的问题通常分为两大类,一类是回归问题,另一类是分类问题。非监督性学习可发现数据中隐藏的模式或内在结构。非监督性学习通常包括聚类和降维。


谈到机器学习,不得不谈一谈它和人工智能(Artificial Intelligence)的关系。简单来讲,人工智能包括机器学习、心理学、哲学、认知科学、生物学、信息学等各大学科;而机器学习则包括深度学习等。


人工智能作为引领未来的战略性技术,正在释放科技革命产业变革的巨大能量。经调查,全球 AI 相关的软件销售额预测,在 2022-2025 年期间,会以每年 38% 的增长速度逐年增加。


数据来源:Tractica


大数据时代的机器学习逐渐发展成为一种支持和服务技术。如何基于机器学习对复杂多样的数据进行深层次的分析,更高效地利用信息,已经成为当前大数据环境下机器学习研究的主要方向。很多企业在招聘数据科学家时需要 AI 专业的研究生甚至更高的博士生,普通学生想要进入 AI 行业需要通过 3-5 年的学习积累才能在该领域有所建树。


过高的门槛造成了“内卷”的趋势,如何降低数据科学的使用门槛成了企业面临的难题。MLSQL 正好在这个形势下应运而生,为了让数据科学平民化,使用 SQL 语言作为切入点,让 AI 不再难做,“走入寻常百姓家”。


3.什么是 MLSQL?

MLSQL = Machine Learning SQL , 是为了实现机器学习的类 SQL 语言。 MLSQL 完全开源, MLSQL 站在巨人的肩膀上,是一门面向大数据和 AI 的分布式编程语言,能给用户提供一个真正整合数据管理、商业分析、机器学习的统一平台。


用户既可以像使用 SAS 软件一样,在自己的笔记本上安装和使用,也可以一键将算力和存储扩展到云端, MLSQL 同时也支持私有分布式集群部署,引擎支持  K8s 等各种云以及私有部署,同时也支持 Yarn 等部署模式。


目前已经有的机器学习平台例如 Databricks 或者 Spark+Jupyter 等,多为各种组件和语言组合而成,架构体系复杂。要想使用这些平台,用户需要会写 SQL ,要学 Python/Scala ,还要学 PySpark , Scikit-learn 和 Tensorflow 等。


在 MLSQL 中可以实现使用统一的交互语言,在一个统一的平台内即可完成 ETL +数据分析+数据科学的任务。设想一下,如果企业内的一名业务人员,通过学习进阶版的 SQL 语言 MLSQL,就能够完成原来数据团队内的数据科学家+数据工程师+数据分析师的工作,那么企业在数据团队的投入成本就会大大减少。企业数字化转型不是重金招募更多数据专家,而是让每一个人都成为数据专家。



MLSQL 语法非常简单,比标准的 SQL 只多了一些关键字,整个学习过程可以在几个小时内完成。在学习 SQL 的基础上,大家再多努力一点点,就可以掌握用 SQL 进行机器学习。稍后在试用的部分,您可以注意 MLSQL 的语法,类 SQL 的语法非常简单易懂。


MLSQL 本就是一个专门为大数据机器学习而生的语言,整个 MLSQL 大概有如下几类语句:

  • set 语法:主要是进行变量设置。

  • connect 语法:主要用于连接外部数据源。

  • load 语法:主要是用于加载数据表。

  • select 语法:传统的 SQL select 语句。

  • train/run/predict 语法:它们句式完全一致,只是语义上略有区别。

  • register 语法:将模型注册成函数,或者将 python/java/scala 的代码注册成函数。

  • save 语法:主要用于存储数据。

  • ! 宏语法:可以将任意一段 MLSQL 代码包装成一个命令使用。MLSQL 内置了大量的!宏语法,比如 !hdfs, !python 等。

  • include 语法:类似 c 里面的 include,我们可以将其他 MLSQL 文件里的内容包含到当前脚本里。


MLSQL Lab 还提供了可视化 Workflow 功能,您可以通过拖拽实现对数据集的导入、筛选、训练、预测和存储。


一些资深的机器学习用户可能会担心,已经在其他产品例如 Jupyter Notebook 用 Python 的 Scikit-learn 或者 Tensorflow 进行了机器学习的模型开发,项目文件已经存在大量的代码,如果迁移到 MLSQL 就会涉及代码重写。在 MLSQL 中我们支持 Python 代码的引用和适配,资深 Python 用户可以继续使用您习惯的机器学习包进行模型开发。这部分的话题我们将会在未来的博客中进一步展开分享。


4.如何在线快速体验?

为了让大家更好体验 MLSQL 带来的一站式数据科学体验,我们推出了在线试用版本!进入 MLSQL 官网  https://mlsql.tech/home  后即可开始「在线试用」

注册并登录在线试用环境 MLSQL Lab 之后,即可看到:



  1. Quick Start 快速开始:可通过探索 MLSQL 内置的 Notebook 进行快速上手;

  2. Import & Connect Data 上传数据:支持用户上传自定义数据文件;

  3. Create a New Notebook 创建笔记本:同时支持数据科学家常用的 Notebook 模式,以及低代码开发的 Workflow 模式。

如果大家刚刚接触,建议先从「快速开始」进行探索,接下来就带大家快速体验一把👇


在工作区(Workspace)中,自带了两个 Notebook 和一个 Workflow ,帮初学者了解 MLSQL 的基础使用和语法。



打开其中一个 Demo 的 Notebook,点击运行全部(Run All),即可运行当前 Notebook 中的全部代码行,展现出分析和预测的结果。



MLSQL Lab 的两个 Notebook 的示例包含了两个来自 Kaggle 的数据集(如下图),初次接触机器学习的用户可以基于它们进行分析和预测。示例完整的展现了如何用 MLSQL 进行从数据的导入、清洗、拆分、训练、预测、调优。通常来讲,我们会把数据集做分割,分成训练集、验证集和测试集。如果数据集不够大,就简单拆分为训练集和测试集。如果您对更多主题的数据集分析预测感兴趣,可以通过上传数据选择您自己的主题文件。( Kaggle 是数据科学最活跃的社区,在 Kaggle 上面可以参加数据科学竞赛来证明自己的数据科学能力,还可以和其他选手互相交流学习。同时 Kaggle 上面的数据集板块提供了一些公开数据集进行下载。)


最后, MLSQL 虽然是一门语言,相比传统的语言,它的门槛是足够低的,分析师、算法、研发、产品经理、运营人员等都能轻松掌握。通过 MLSQL,需要使用数据的人员都能更好地玩转数据。还在等什么,快点击「链接」试一下吧!

*目前 MLSQL Lab 仅供社区用户试用体验,不支持生产使用。

用户头像

Kyligence

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
不用 Python/R ,只会 SQL 就可以做机器学习?