当前位置: 首页 > 科技观察

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

时间:2023-03-17 21:14:06 科技观察

现在,让我们使用MultiTrain库训练一个数据集,看看它与传统的测试模型方法相比如何工作。注意:训练结果可以作为选择适合您具体情况的最佳模型的参考。为了让模型表现得更好,需要做更多的超参数调优。在本教程中,我们将使用手机价格分类数据集(https://www.kaggle.com/datasets/iabhishekofficial/mobile-price-classification)来解决分类问题安装库pipinstallMultiTrain导入所需的Python库为了处理这个数据集,我们需要导入以下库importwarningsimportpandasaspdimportseabornassnsfromMultiTrainimportMultiClassifierfromnumpyimportmean,arangefrommatplotlibimportpyplotaspltwarning.filterwarnings('ignore')importmachine现在学习数据集,让我们也导入数据集,我们将使用df=pd.read_csv("train_phone.csv")检查数据集标签是否平衡我们检查数据集中包含的标签以查看它是否平衡,这将有所帮助我们决定如何训练数据集。当你运行下面的代码时,你会发现数据集标签是均匀分布的。#price_range是标签的列名df["price_range"].value_counts()模型训练我们将跳过探索性数据分析,重点关注如何使用MultiTrain实现其目的。下一步是将数据集划分为特征和标签。features=df.drop('price_range',axis=1)labels=df['price_range']在定义了训练特征和标签之后,我们现在需要进一步将它们分成训练集和测试集。该模型将使用训练集进行训练,其性能将使用测试集进行评估。然后MultiClassifier对象必须在MultiTrain库中定义。我们正在处理的数据集包括四个不同的标签,使其成为一个多类问题。通过定义随机状态参数,所有在数据集上训练的机器学习模型都会产生一致的结果。将“cores”设置为“-1”可确保训练使用CPU中的所有内核来提高性能。train=MultiClassifier(random_state=42,imbalanced=False,target_class='multiclass',cores=-1)#将此方法分配给变量很重要,因为它返回训练和测试拆分以用于拟合方法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)你也可以使用KFold拆分在数据集上进行训练。train=MultiClassifier(random_state=42,imbalanced=False,target_class='multiclass',cores=-1)#将kf设置为True告诉fit方法使用KFoldSplitfor#training.fit=train.fit(X=features,y=labels,kf=True,fold=5,show_train_score=True)您还可以将各个模型与scikit-learn实现进行比较,看看它们是否产生相似的结果。