使用MindSDB和MongoDB预测汽车评级的教程
#初学者 #ai #mongodb #mindsdb

什么是MindsDB?

生活在数据库中的数据是宝贵的资产。 MindSDB使您可以使用数据并进行预测。它通过将机器学习带入数据库来加快ML开发过程。

使用MindSDB,您无需其他平台即可构建,训练,优化和部署ML模型。为了获得预测,只需查询您的数据和ML模型即可。阅读以查看一些示例。

什么是AI表?

MindSDB通过采用AI表的概念将机器学习带入数据库中。

AI表是存储在数据库中的虚拟表的机器学习模型。它们有助于根据您的数据进行预测。您可以在数据库中执行时间序列,回归和分类预测,并通过查询使用简单SQL语句的AI表即可立即获取输出。

在本教程中,我们将学习什么?

第1部分:设置要求

首先,我们将准备我们的设置,这对于开始使用MindSDB和Mongoapi进行预测至关重要。

  1. 下载mongodb和mongodb指南针
  2. 开始使用MindSDB
  3. 将MindSDB与MongoDB集成

第2部分:生成ML模型

我们将看到如何在数据库中创建和训练ML模型。在本教程中,我们将使用this dataset预测汽车评级。

  1. 准备数据库
  2. 了解我们的问题陈述
  3. 创建预测变量模型
  4. 查询预测变量模型

第1部分:设置要求

我们将简要解释本节,以便我们继续进行预测。

下载mongodb和mongodb指南针

要开始,我们必须同时安装MongoDB Community EditionMongoDB Compass并在我们的系统中工作。

完成了MongoDB和MongoDB指南针的安装后,我们就可以使用教程进行。

从MindSDB开始

MindSDB为所有用户提供免费的MindSDB云版本,他们可以访问其数据库上的预测。您可以按照setup guide遵循免费的MindsDB Cloud Version注册。验证您的电子邮件并登录到您的帐户,您已经准备好了。完成后,您应该看到这样的页面:

MindsDB Cloud dashboard

如果您愿意,可以选择使用Docker Image或使用PyPI在本地系统上安装MindSDB。但是,我们将在本教程中与Minds DB Cloud合作。

将MindSDB与MongoDB集成

MindSDB为我们提供了使用MongoApi与MongoDB集成的能力。我们可以按照给定的步骤来做到这一点。

打开您的MongoDB指南针。在左侧导航面板上,您将有一个新连接的选项。单击该选项,将为您提供连接的详细信息。

在URI部分中输入以下内容:

mongodb://cloud.mindsdb.com/

单击高级连接选项下拉列表。在这里,您的主机将被检测为MindSDB云。

在“身份验证”选项中,输入您的MindSDB用户名和密码。然后单击保存并连接,给您的连接一个名称并选择和颜色。

MongoDB Compass

如果您成功创建了一个连接,则将显示一个类似于此的页面:

MongoDB Compass  Connection

在此页面的底部面板中,您将看到Mongo Shell栏,放大并键入以下查询,然后单击Enter。

> use mindsdb
> show collections

Mongo Shell Code

如果您得到这样的结果,则意味着我们成功地将MindSDB与MongoDB集成在一起。现在,让我们转到我们将生成ML模型的教程的第二部分。

第2部分:生成ML模型

准备数据库

我们将准备我们的数据库,我们可以在其中运行查询并执行预测。在MindSDB云控制台上,单击左导航栏中的最后一个图标。您将看到一个“选择数据源”页面。我们可以添加各种数据源,但是,对于本教程,我们将使用.csv文件。

转到文件部分,然后单击导入文件。导入您的CSV文件,并为您的数据库表提供一个名称,其中将存储.csv文件的内容。单击保存并继续。

Database Upload

我们需要将数据导入到MongoDB数据库。我们可以为此目的使用databases.insertone()命令。

要这样做,转到mongo shell并键入以下命令:

db.databases.insertOne({
    name: "household_usage", // 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": "household_usage" // database connection          
    }
});

单击Enter时,您必须收到以下答复:

{
  acknowledged: true,
  insertedId: ObjectId("63f8c882011bd9118e88fa90")
}

如果您得到了这样的响应,则意味着您的数据库已成功创建!

了解我们的问题陈述

我们之前看到我们将使用此Kaggle dataset预测汽车评级。让我们仔细研究我们已经设置的数据库。我们的数据库由以下字段组成:

  • car_name:汽车的名称
  • 评论_COUNT:网站上特定汽车的评论数
  • fuel_type:燃油汽车使用的类型。可能的值是汽油,柴油和电气
  • Engine_displacement:发动机位移是活塞发动机的所有活塞扫除的气缸体积的度量,不包括燃烧室。单位是(CC)
  • no_cylinder:汽车包含的气缸数。 0如果电动汽车
  • seating_capacity:可以适合汽车的人数
  • 传输_type:可能的值范围从手动,自动和电动
  • fuel_tank_capacity:汽车燃油箱的最大容量。 0如果电动汽车
  • body_type:汽车的身体形状
  • 评分:网站上的汽车提供的评级。在0到5的范围
  • 开始_price:Rs
  • 的汽车的起价
  • ending_price:卢比以
  • 的终止价格
  • max_torque_nm:汽车可以提供的最大扭矩
  • max_torque_rpm:可以实现最大扭矩的rpm
  • max_power_bhp:汽车的最大马力
  • max_power_rp:可以实现最大马力的rpm

我们可以在MindSDB控制台中运行以下查询,以查看我们可以看到所有字段的数据库:

SELECT * FROM files.cars LIMIT 10;

这就是将显示的内容:

Database fields

现在让我们了解我们要预测的内容。为我们提供了一个由各个字段组成的数据库,我们希望根据其功能预测汽车评级。我们将培训ML模型,该模型了解汽车评级如何根据功能变化。一旦我们培训了模型,我们就可以输入房屋的细节,而我们的ML模型将预测其汽车评级。

听起来像是一项艰巨的任务?让我们看看MindSDB如何在简单的查询中为我们做到这一点!

创建预测变量模型

现在我们的数据库已经准备好,我们可以继续创建我们的ML模型。如我们所见,预测变量模型基本上是一个受过训练的机器学习模型,可用于预测或预测称为目标变量或目标值的特定值。

转到mongo shell并键入以下命令:

db.predictors.insert({ name: "cars_rating_predictor", predict: "rating", connection: "cars", "select_data_query": "db.cars.find()" });

这些参数是什么意思?

  • 名称:MindSDB识别预测变量的名称
  • 预测:数据库中的列的名称,我们要预测的值
  • 连接:我们先前创建的名称是通过MindSDB标识连接
  • 的名称
  • select_data_query:这允许使用标准MongoDB查询在数据库中指定特定行。对于此示例,我们将使用所有行。

如果没有打ic,我们将成功完成查询。

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("63f8ca55011bd9118e88fa91")
  }
}

就是这样!我们已经通过单个查询创建并培训了机器学习模型!那是Mindsdb!

的魔力

查询预测变量模型

我们可以通过在Mongo Shell中键入以下命令来查看我们的机器学习模型规格:

db.predictors.find({name:"cars_rating_predictor"})

当我们按ENTER时,我们获得了预测模型的所有详细信息,例如其状态,准确性,目标值和错误。

{
  NAME: 'cars_rating_predictor',
  ENGINE: 'lightwood',
  PROJECT: 'mindsdb',
  VERSION: 1,
  STATUS: 'complete',
  ACCURACY: 0.549,
  PREDICT: 'rating',
  UPDATE_STATUS: 'up_to_date',
  MINDSDB_VERSION: '23.2.4.0',
  ERROR: null,
  SELECT_DATA_QUERY: 'db.cars.find()',
  TRAINING_OPTIONS: "{'target': 'rating', 'using': {}}",
  TAG: null,
  CREATED_AT: 2023-02-24T14:31:49.338Z
}

现在,我们最终可以查询我们的ML模型以预测特定条目的目标值。

查询是:

db.cars_rating_predictor.find({
car_name: "Maruti Alto K10",
reviews_count: "30",
fuel_type: "Petrol",
engine_displacement: "998",
starting_price: "400000",
ending_price: "600000",
max_torque_nm: "89.0",
max_torque_rpm: "3500",
max_power_bhp: "65.71",
max_power_rp: "5500"})

和lo,看见!我们的模型根据我们输入的属性预测汽车评级:

{
  car_name: 'Maruti Alto K10',
  reviews_count: '30',
  fuel_type: 'Petrol',
  engine_displacement: '998',
  starting_price: '400000',
  ending_price: '600000',
  max_torque_nm: '89.0',
  max_torque_rpm: '3500',
  max_power_bhp: '65.71',
  max_power_rp: '5500',
  no_cylinder: null,
  seating_capacity: null,
  transmission_type: null,
  fuel_tank_capacity: null,
  body_type: null,
  rating: '4.5',
  select_data_query: null,
  when_data: null,
  rating_original: null,
  rating_confidence: 0.9999,
  rating_explain: '{"predicted_value": "4.5", "confidence": 0.9999, "anomaly": null, "truth": null, "probability_class_4.5": 0.0845, "probability_class_4.0": 0.1424, "probability_class_3.5": 0.0477, "probability_class_5.0": 0.6203, "probability_class_3.0": 0.0587}',
  rating_anomaly: null
}

结论 :

使用MindSDB,我们在数据库中成功创建并培训了机器学习模型,并解锁了生成数据库预测的能力。您可以访问MindsDB Documentation以了解Mindsdb的各种功能。

接下来是什么?

如果您喜欢跟随本教程,请确保注册免费的MindsDB Cloud account并继续探索! Kaggle是找到类似数据集的绝佳资源,您可以在MindSDB的帮助下创建和培训自己的ML模型。您也可以在GitHub上检查它们。