文章目录
MindsDB 简介
MindsDB 安装
使用案例
配置 MySQL
配置 MindsDB
训练模型
预测结果
删除模型
多目标预测
总结
机器学习离不开数据,机器学习框架(TensorFlow、scikit-learn、Pytorch 等)通常都需要从 CSV 文件或者其他数据源读取数据,其中主要的数据源就是数据库。所以,无论你是使用 Python、R 还是其他编程语言,都需要编写一些代码获取和准备数据;同时这种数据的格式转换和传输都需要消耗一定的时间和资源。
如果能够直接在数据库中训练机器学习模型并且进行预测,而且一切都使用 SQL 语句完成,是不是更加简单高效呢😎!今天我们给大家介绍一个基于数据库的机器学习平台:MindsDB,了解一下如何通过 SQL 语句实现机器学习预测模型。
MindsDB 简介
MindsDB
MindsDB 是一个基于数据库的开源 AI 平台,通过直接为数据库引入机器学习功能,从而提高工作效率。MindsDB 可以直接通过 SQL 语句创建、训练、测试模型以及进行预测,目前支持的数据库系统包括 MySQL、MariaDB、SQL Server、PostgreSQL、ClickHouse、MongoDB 等。
MindsDB 是一个基于 Python(Pytorch)的 AutoML 框架,也支持通过编码进行模型的训练和预测,除了数据库之外还支持 CSV、Excel、JSON、文本文件、pandas DataFrame、URL、s3 文件等数据源。 MindsDB 使用 lightwood 代码库实现了简化的自动机器学习。MindsDB 还提供了 JavaScript 和 Python 开发包,可以通过 HTTP 接口实现所有功能。
除此之外,MindsDB 还提供了一个图形管理界面 MindsDB Scout,可以从数据库、本地文件、或者外部数据源上传、分析以及可视化数据,训练模型以及查询结果。
MindsDB 安装
MindsDB 需要 python 3.6 以上版本,推荐使用虚拟环境。首先创建并激活环境:
python -m venv venv
Windows
.\venv\Scripts\activate
Linux、macOS
source venv/bin/activate
然后使用 pip 安装 MindsDB:
pip install mindsdb
最后运行 MindsDB 服务:
python -m mindsdb
运行成功返回以下类似信息:
…
mysql API: started on 47335
-
GUI available at http://127.0.0.1:47334/index.html
http API: started on 47334
通过地址 http://127.0.0.1:47334 可以访问 MindsDB API;通过地址 http://127.0.0.1:47334/index.html 可以访问图形界面 MindsDB Scout。
使用案例
接下来我们使用 MindsDB 和 MySQL 数据库训练一个预测消费的机器学习模型,并且对数据进行预测。
配置 MySQL
首先,MySQL 需要启动 FEDERATED 存储引擎支持;可以在启动服务时使用 --federated 命令行参数或者在配置文件中的 [mysqld] 部分增加一行内容:
federated
启动 MySQL 服务后使用 SHOW engines 语句确认支持 FEDERATED 存储引擎:
mysql> SHOW engines\G
*************************** 1. row ***************************
Engine: FEDERATED
Support: YES
Comment: Federated MySQL storage engine
Transactions: NO
XA: NO
Savepoints: NO