使用MultiTrain在数据集上训练多个机器学习分类模型示例

人工智能 机器学习
MultiTrain是一个python库,它允许您一次训练多个机器学习模型,以评估它们在数据集上的性能。Python

现在,让我们用MultiTrain库训练一个数据集,看看它与传统的测试模型方法相比是如何工作的。

注意:训练结果可作为选择适合您特定情况的最佳模型的参考。为了使模型执行得更好,需要进行更多的超参数调优。

在本教程中,我们将使用手机价格分类数据集(https://www.kaggle.com/datasets/iabhishekofficial/mobile-price-classification)处理一个分类问题

安装库

pip install MultiTrain
  • 1.

导入所需的Python库

要处理这个数据集,我们需要导入以下库

import warnings 
import pandas as pd 
import seaborn as sns 
from MultiTrain import MultiClassifier 
from numpy import mean, 
arange from matplotlib import pyplot as plt 
warning.filterwarnings('ignore')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

导入机器学习数据集

现在,让我们也导入我们将使用的数据集

df = pd.read_csv(“train_phone.csv”)
  • 1.

检查数据集标签是否平衡

我们检查数据集中包含的标签,以确定它是是否平衡,这将帮助我们决定如何训练数据集。

在运行下面的代码时,您将发现数据集标签是均匀分布的。

# price_range is the column name for the labels
df["price_range"].value_counts()
  • 1.
  • 2.

模型训练

我们将跳过探索性数据分析,这里的重点是看看我们如何使用 MultiTrain 来实现它的目的。

下一步是将数据集划分为特征和标签。

features = df.drop('price_range', axis=1)
labels = df['price_range']
  • 1.
  • 2.

在定义了训练特征和标签之后,我们现在需要进一步将它们分为训练集和测试集。模型将使用训练集进行训练,并使用测试集对其性能进行评估。

然后必须在MultiTrain库中定义MultiClassifier对象。我们正在处理的数据集包括四个不同的标签,这使它成为一个多类问题。

通过定义随机状态参数,在数据集上训练的所有机器学习模型将产生一致的结果。设置“cores”为“-1”可以确保训练使用CPU中的所有内核来提高性能。

train = MultiClassifier(random_state=42,
                        imbalanced=False,
                        target_class='multiclass',
                        cores=-1)
# It's important to assign this method to a variable because it 
# returns the training and test splits to be used in the fit method
returned_split = train.split(X=features,
                             y=labels,
                             randomState=42,
                             sizeOfTest=0.2)
fit = train.fit(X=features,
                y=labels,
                splitting=True,
                split_data=returned_split,
                show_train_score=True)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

图片

您也可以使用 KFold 拆分对数据集进行训练。

train = MultiClassifier(random_state=42,
                        imbalanced=False,
                        target_class='multiclass',
                        cores=-1)
# setting kf to True tells the fit method to use the KFold Split for # training.
fit = train.fit(X=features,
                y=labels,
                kf=True, 
                fold=5,
                show_train_score=True)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

图片

您还可以将单个模型与scikit-learn实现进行比较,以查看它们是否产生类似的结果。


责任编辑:华轩 来源: 不靠谱的猫
相关推荐

2023-11-06 10:50:35

机器学习LIME

2020-08-10 15:05:02

机器学习人工智能计算机

2022-03-28 09:00:00

SQL数据库机器学习

2017-03-24 15:58:46

互联网

2022-06-05 21:16:08

机器学习Python

2023-01-11 07:28:49

TensorFlow分类模型

2022-09-19 15:37:51

人工智能机器学习大数据

2022-08-15 15:16:20

机器学习图片深度学习

2025-02-24 08:40:00

神经网络模型矩阵变换

2024-11-04 00:24:56

2024-11-26 09:33:44

2024-12-26 00:46:25

机器学习LoRA训练

2018-11-07 09:00:00

机器学习模型Amazon Sage

2024-09-09 11:45:15

ONNX部署模型

2022-07-22 08:00:00

深度学习数据机器学习

2023-01-09 08:00:00

迁移学习机器学习数据集

2024-07-01 12:55:50

2023-09-05 10:41:28

人工智能机器学习

2022-04-01 14:50:52

算法架构OnFire

2021-11-02 09:40:50

TensorFlow机器学习人工智能
点赞
收藏

51CTO技术栈公众号