一个游离于山间之上的Java爱好者 | A Java lover living in the mountains
Scikit-Learn提供了一些函数,以各种方式将数据集拆分为多个子集。最简单的函数train_test_split(),它的功能与我们前面定义的shuffle_and_split_data ()函数非常相似,只是增加了几个特性。首先,有一个random_state参数,它允许您设置随机生成器种子。其次,您可以向它传递具有相同行数的多个数据集,它将按照相同的索引将它们拆分(这是非常有用的,例如,如果你有一个单独的DataFrame标签)
在此保留验证过程之后,您可以在完整的训练集(包括验证集)上训练最佳模型,这将为您提供最终模型。在这种情况下,需要记住的最重要的规则是,验证集和测试集都必须尽可能具有生产中预期使用的数据的代表性,因此它们应该完全由有代表性的图片组成:您可以对它们进行洗牌,将一半放在验证集中,另一半放在测试集中(确保在这两个集合中都没有重复或接近重复的数据)。在网络图片上对模型进行培训之后,如果您观察到模型在验证集上的性能令人失望,您将不知道这是因为您的模型超出了培训集,还是仅仅是由于网络图片和移动应用程序图片之间的不匹配。
对于一个蹒跚学步的孩子来说,要知道什么是苹果,您只需要指着一个苹果说“苹果”(可能会重复这个过程几次)。现在孩子能够识别各种颜色和形状的苹果。
随着时间的推移,模型也需做出相应的变化。但就采用新数据与旧数据一起训练,势必需要耗费更多的资源,为了解决这一状况,本文带您了解,关于新数据该如何训练?
在上一篇,我们初步了解什么是机器学习,以及它能给我们带来,相对于传统编程解决更为优先、易于维护的一套解决方案。那么,本文将继续为您举例,机器学习给我们生活上带来哪些便捷。