购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4
试试训练一下模型

在2.3节中,我们已经掌握探索性数据分析的一般流程和基本方法。值得一提的是,Wine酒数据集的数据质量还是比较好的——既没有缺失值,也没有重复值,为我们省去了很多数据预处理的工作。下面我们就可以进行模型训练的工作。

2.4.1 让ChatGPT给出示例代码

同样,我们让ChatGPT先把代码写出来。在ChatGPT对话框中输入“使用wine.data训练模型”,可以看到ChatGPT给出如下答复。

ChatGPT使用wine.data数据集进行建模,需要进行以下步骤。

导入必要的库:使用Pandas读取数据,使用scikit-learn进行数据预处理和建模。

读取数据:使用Pandas读取wine.data文件,并设置列名。

数据预处理:将数据集分为特征和标签,并使用StandardScaler进行数据标准化。

划分训练集和测试集:使用train_test_split函数划分训练集和测试集。

训练模型:使用LogisticRegression进行模型训练。

模型评估:使用测试集进行模型评估。

这些步骤完成后,就可以得到模型的预测准确率。实际应用中,还需要根据具体问题和需求选择合适的模型和调整参数,进行模型优化和改进。

可以看到,ChatGPT给出了完整的模型训练代码。代码中有一部分和前面的代码是重复的,如读取数据、设置列名、数据标准化处理等。这部分重复的代码我们不再保留,重点研究有效的代码。

2.4.2 特征工程与数据集拆分

首先需要再导入一些需要的库,代码如下。

上面两行代码,导入了一个用于将数据集拆分为训练集和测试集的工具——train_test_split,以及一个用于分类任务的工具——LogisticRegression(一般翻译为“逻辑回归”)。接下来,我们根据ChatGPT的提示,把数据分为特征和标签,代码如下。

上面两行代码,将原数据集中的分类标签“Class”赋值给变量y,其他特征赋值给X(很多时候习惯用大写的X代表特征)。也就是说,我们要训练一个模型,让它学习根据每种酒的酒精浓度、苹果酸含量、灰分含量等特征,将其划入正确的分类中,也就是打上分类标签“1”“2”或“3”。

温馨提示

ChatGPT给出的代码中,重新读取了数据并创建了名为data的对象。但我们在前面读取数据时,创建的对象名为df,所以大家需要修改一下代码。

在做探索性数据分析的时候,我们已经对数据进行过标准化处理,因此可以略过标准化处理的代码,直接进行训练集和测试集的拆分。代码如下。

在上面的代码中,我们使用train_test_split工具将数据集拆分成训练集和测试集,通过指定test_size参数,限定测试集的样本数量占整体数量的20%。这样就可以使用80%的样本训练模型,并使用20%的样本验证模型的准确率了。

2.4.3 模型的训练与验证

完成上面的工作后,我们就可以正式开始模型的训练了。训练与验证模型的代码如下。

在这段代码中,我们先创建了一个逻辑回归的模型,然后让该模型拟合训练集中的数据。训练完成后,我们使用score()方法在测试集中验证模型的准确率,并打印其结果。运行代码将得到如下的结果。

从程序返回的结果来看,我们训练的模型在测试集中获得了100%的准确率。也就是说,通过训练集的学习,模型可以把测试集中每一个样本都划分到正确的分类当中。如果读者也得到了同样的结果,那么恭喜你,在机器学习领域取得了“开门红”的好成绩!

温馨提示

对于初学者来说,上面的代码中还涉及一些没有讲过的知识(如什么是逻辑回归等),本章只是为了给大家介绍一个小型机器学习项目的整体流程,在后面的章节中会对具体知识详细展开讲解。 b675cNpoOxzq2vDdRhqBEfGpVtA9RhZVdU7St9AJaoFvHPu95g2qW+ILuBIktjVQ

点击中间区域
呼出菜单
上一章
目录
下一章
×