前面课程中,我们已经把数据集处理好了,接下来就要正式开始修改逻辑代码了。在正式动手之前,我们可以先大概想一想,替换数据集之后,需要修改哪些地方。

其实只有两个地方,一个是我们之前的数据集,是按行读取的,一行一条数据,现在我们换成了csv,读取方式需要修改一下。另外一个,就是目标值,之前只有一个,现在是多个,我们这里的方案就简单处理,取第一个。

有的同学可能会有疑问,不是说好的多标签吗?为什么又取第一个?不要着急,我们现在做的还是单标签。因为我们只做多标签的话,可能会有分类为空的情况,所以我们完整的模型是先走多标签,如果为空,我们再来一个单标签做兜底。后面讲到多标签的输出值的时候,会再给大家详细讲解这个过程。

代码示例

1、pandas读取数据

内容不可见,请联系管理员开通权限。

2、取第一个标签做目标值

内容不可见,请联系管理员开通权限。

3、模型保存方式修改

考虑到后面我们需要加载多标签和单标签两个模型,所以我们把模型的保存方式改一下,只保存模型参数,实例化放到调用的时候做,免得相互干扰。

内容不可见,请联系管理员开通权限。

好的,到目前为止,替换数据集的过程就详细的给大家演示完了,逻辑代码要改的不多,难点还是在数据处理上,所以数据处理能力比较弱的同学,课后可以多做一些数据处理方面的刻意练习,提高综合编码能力。

大家课后需要把数据集和代码传到 Kaggle,重新训练一个模型出来。这个过程就留给大家自己完成,这里就不重复演示了,忘记流程的,可以参考新闻文本分类的项目,有详细的演示。

如果遇到无法下载的情况,可尝试以下方法:

内容不可见,请联系管理员开通权限。

4、Kaggle上的训练结果

最后还是看一下我提前在Kaggle上训练的结果,11个epcho训练集的准确率就到1了,所以就只训练了11个epoch。之前的项目里面,有些同学在gpu上跑测试集,会有疑问,我们顺便给大家讲一下测试集的改动。

内容不可见,请联系管理员开通权限。
其实很简单,只需要保证数据和模型在同一个设备上即可。最后的测试 f1-score 是0.84,已经很好了,大家有兴趣还可以去细调LR,也可以在训练过程中,画准确率曲线,找到一个更好的模型。

本文链接:http://ichenhua.cn/edu/note/563

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!