这几天在机器学习中对sklearn引入数据,拆分数据,训练数据,测试数据,导出模型都有了一个大概的了解
但是对于导出的模型如何去进行使用,让我产生了一些疑惑,
当我解决这些疑问后,我发现是由于没有pandas的使用基础才导致了这些疑惑,
所以建议小伙伴在学习sklearn之前,要能对pandas的使用有一个基本的了解
这里讲一下我是怎么实现训练模型的导出和导入预测数据并将数据显示在原数据集中的
训练模型、导出模型
首先我们不采用任何特殊操作,简单的对sklearn的datasets中提供的load_iris(鸢尾花)数据集进行学习
并通过sklearn通过的保存模块joblib来导出训练模型
这里一个地方要注意,joblib.dump() 第一个参数填写的是训练出来的模型,第二个参数填写的是模型存放的位置
比如图中生成了一个clf模型,并将模型存放在同级目录下的save文件夹中生成clf.pkl文件
导入模型、预测数据、导出预测数据
先看一下我们的所要进行预测的特征值数据应该是怎样的规范
我们新引入的数据,特征值的命名要和训练时的命名一样,字段的数量也要一样,
训练的时候是4个字段,引入的也要是4个字段
目标值也要是我们训练时对应的目标值,现在为空,我们通过导入模型来预测出他应该是什么值
进行操作
我们可以先通过打印to_list得到我们的预测结果
预测的结果是[0 0 1 1 2 2],
也就是说预测前两个数据为类型为0的花,中间的两个数据为类型为1的花,后面的两个数据为类型为2的花,
让我们将数据转换成列表,赋值给df['Name]这个字段
并使用to_csv将新的df进行保存,也就是将预测的数据添加到Name这个字段重新生成test.csv文件
这里要注意一点,进行保存的时候要先把test.csv文件关闭,否者你将没有写入的权限
报错如下:PermissionError: [Errno 13] Permission denied: 'test.csv'
然后我们来看一下新的test.csv文件变成什么样子了
预测的数据写入在了相应的位置,并在字段的首列生成了一个序列