什么是MindsDB?
生活在数据库中的数据是宝贵的资产。 MindSDB使您可以使用数据并进行预测。它通过将机器学习带入数据库来加快ML开发过程。
使用MindSDB,您无需其他平台即可构建,训练,优化和部署ML模型。为了获得预测,只需查询您的数据和ML模型即可。阅读以查看一些示例。
什么是AI表?
MindSDB通过采用AI表的概念将机器学习带入数据库中。
AI表是存储在数据库中的虚拟表的机器学习模型。它们有助于根据您的数据进行预测。您可以在数据库中执行时间序列,回归和分类预测,并通过查询使用简单SQL语句的AI表即可立即获取输出。
在本教程中,我们将学习什么?
第1部分:设置要求
首先,我们将准备我们的设置,这对于开始使用MindSDB和Mongoapi进行预测至关重要。
- 下载mongodb和mongodb指南针
- 开始使用MindSDB
- 将MindSDB与MongoDB集成
第2部分:生成ML模型
我们将看到如何在数据库中创建和训练ML模型。在本教程中,我们将使用this dataset进行分类。
- 准备数据库
- 了解我们的问题陈述
- 创建预测变量模型
- 查询预测变量模型
第1部分:设置要求
我们将简要解释本节,以便我们继续进行预测。
下载mongodb和mongodb指南针
要开始,我们必须同时安装MongoDB Community Edition和MongoDB Compass并在我们的系统中工作。
完成了MongoDB和MongoDB指南针的安装后,我们就可以使用教程进行。
从MindSDB开始
MindSDB为所有用户提供免费的MindSDB云版本,他们可以访问其数据库上的预测。您可以按照setup guide遵循免费的MindsDB Cloud Version注册。验证您的电子邮件并登录到您的帐户,您已经准备好了。完成后,您应该看到这样的页面: 如果您愿意,可以选择使用Docker Image或使用PyPI在本地系统上安装MindSDB。但是,我们将在本教程中与Minds DB Cloud合作。 将MindSDB与MongoDB集成 MindSDB为我们提供了使用MongoApi与MongoDB集成的能力。我们可以按照给定的步骤来做到这一点。 打开您的MongoDB指南针。在左侧导航面板上,您将有一个新连接的选项。单击该选项,将为您提供连接的详细信息。 在URI部分中输入以下内容: 单击高级连接选项下拉列表。在这里,您的主机将被检测为MindSDB云。 在“身份验证”选项中,输入您的MindSDB用户名和密码。然后单击保存并连接,给您的连接一个名称并选择和颜色。 如果您成功创建了一个连接,则将显示一个类似于此的页面: 在此页面的底部面板中,您将看到Mongo Shell栏,放大并键入以下查询,然后单击Enter。 如果您得到这样的结果,则意味着我们成功地将MindSDB与MongoDB集成在一起。现在,让我们转到我们将生成ML模型的教程的第二部分。 准备数据库 我们将准备我们的数据库,我们可以在其中运行查询并执行预测。在MindSDB云控制台上,单击左导航栏中的最后一个图标。您将看到一个“选择数据源”页面。我们可以添加各种数据源,但是,对于本教程,我们将使用.csv文件。 转到文件部分,然后单击导入文件。导入您的CSV文件,并为您的数据库表提供一个名称,其中将存储.csv文件的内容。单击保存并继续。 我们需要将数据导入到MongoDB数据库。我们可以为此目的使用databases.insertone()命令。 要这样做,转到mongo shell并键入以下命令: 单击Enter时,您必须收到以下答复: 如果您得到了这样的响应,则意味着您的数据库已成功创建! 了解我们的问题陈述 我们之前看到我们将使用此Kaggle dataset对玻璃进行分类。让我们仔细研究我们已经设置的数据库。我们的数据库由以下字段组成: ID号:1至214 我们可以在MindSDB控制台中运行以下查询,以查看我们可以看到所有字段的数据库: 这就是将显示的内容: 现在让我们了解我们要预测的内容。为我们提供了一个由各个字段组成的数据库,我们想根据其功能预测某物是否是玻璃。我们将训练一种ML模型,该模型学习如何根据功能识别玻璃。一旦我们训练了模型,我们就可以输入房屋的细节,而ML模型将预测是否是玻璃。 听起来像是一项艰巨的任务?让我们看看MindSDB如何在简单的查询中为我们做到这一点! 创建预测变量模型 现在我们的数据库已经准备好,我们可以继续创建我们的ML模型。如我们所见,预测变量模型基本上是一个受过训练的机器学习模型,可用于预测或预测称为目标变量或目标值的特定值。 转到mongo shell并键入以下命令: 这些参数是什么意思? 如果没有打ic,我们将成功完成查询。 就是这样!我们已经通过单个查询创建并培训了机器学习模型!那是Mindsdb! 查询预测变量模型 我们可以通过在Mongo Shell中键入以下命令来查看我们的机器学习模型规格: 当我们按ENTER时,我们获得了预测模型的所有详细信息,例如其状态,准确性,目标值和错误。 现在,我们最终可以查询我们的ML模型以预测特定条目的目标值。 查询是: 和lo,看见!我们的模型根据我们输入的玻璃的类型预测了玻璃的类型: 使用MindSDB,我们在数据库中成功创建并培训了机器学习模型,并解锁了生成数据库预测的能力。您可以访问MindsDB Documentation以了解Mindsdb的各种功能。 如果您喜欢跟随本教程,请确保注册免费的MindsDB Cloud account并继续探索! Kaggle是找到类似数据集的绝佳资源,您可以在MindSDB的帮助下创建和培训自己的ML模型。您也可以在GitHub上检查它们。
mongodb://cloud.mindsdb.com/
> use mindsdb
> show collections
第2部分:生成ML模型
db.databases.insertOne({
name: "glass_db", // database name
engine: "mongodb", // database engine
connection_args: {
"port": 27017, // default connection port
"host": "mongodb+srv://readonly:6CKCDJFzLIxOtKhu@cluster0.uhsuhui.mongodb.net/test", // connection host
"database": "glass_db" // database connection
}
});
{
acknowledged: true,
insertedId: ObjectId("63f3b457011bd9118e88fa8c")
}
RI:折射率
NA:钠(单位测量:相应氧化物中的重量百分比,如
是属性4-10)
MG:镁
AL:铝
是:硅
K:钾
CA:钙
BA:钡
铁:铁
玻璃的类型:(类属性)
1 building_windows_float_processed
2 building_windows_non_float_processed
3车辆_Windows_Float_Processed
4车辆_Windows_NON_FLOAT_PROCESSED(此数据库中无)
5个容器
6桌
7大灯
SELECT * FROM files.glass LIMIT 10;
db.predictors.insert({ name: "glass_predictor", predict: "Type of glass", connection: "glass_db", "select_data_query": "db.glass.find()" });
{
acknowledged: true,
insertedIds: {
'0': ObjectId("63f3b501011bd9118e88fa8d")
}
}
db.predictors.find({name:"glass_predictor"})
{
NAME: 'glass_predictor',
ENGINE: 'lightwood',
PROJECT: 'mindsdb',
VERSION: 1,
STATUS: 'complete',
ACCURACY: 0.667,
PREDICT: 'Type of glass',
UPDATE_STATUS: 'up_to_date',
MINDSDB_VERSION: '23.1.3.2',
ERROR: null,
SELECT_DATA_QUERY: 'db.glass.find()',
TRAINING_OPTIONS: "{'target': 'Type of glass', 'using': {}}",
TAG: null
}
db.glass_predictor.find({
_id: "63f3b3d488ca3f8488ea95c4",
Id: "2",
RI: "1.7435747",
Na: "11.5",
Mg: "3.2",
Al: "1.30",
Si: "67.81",
K: "0.5",
Ca: "7.01",
Ba: "0",
Fe: "0"})
{
RI: '1.7435747',
Na: '11.5',
Mg: '3.2',
Al: '1.30',
Si: '67.81',
K: '0.5',
Ca: '7.01',
Ba: '0',
Fe: '0',
'Type of glass': '2',
select_data_query: null,
when_data: null,
'Type of glass_original': null,
'Type of glass_confidence': 0.9047619047619048,
'Type of glass_explain': '{"predicted_value": "2", "confidence": 0.9047619047619048, "anomaly": null, "truth": null, "probability_class_2": 0.8632, "probability_class_1": 0.0581, "probability_class_7": 0.0598, "probability_class_3": 0.0085, "probability_class_5": 0.0054, "probability_class_6": 0.005}',
'Type of glass_anomaly': null,
_id: '63f3b3d488ca3f8488ea95c4',
'`Id`': '2'
}
结论 :
接下来是什么?