‫现在我们有了一个理想的模型, 它在验证数据集上表现得很好｡
‫所以有效公平交易是我们一直关注的指标, 因为这是这个特定的Kaggle竞争的评估指标｡
‫当然, 如果你正在处理不同的问题或不同的数据集, 你可能会有一个不同的评估指标,
‫你试图改善｡
‫但在我们的情况下, 我们做得很好｡
‫因此, 让我们使用理想模型对测试数据进行预测｡
‫这一节有一个小花絮, 非常重要, 我们马上会讲到.
‫首先, 我们必须导入测试数据｡
‫现在, 如果我们看一看｡
‫在我们的资料夹里｡
‫这只是在Jupiter主目录中, 因为我们已经为这个特定项目创建了一个项目文件夹, 并且我们已经下载了数据,
‫将其放在这里｡
‫这里有一个数据集, 是测试CSV｡
‫这就是我们要用到的｡
‫如果我们回到Kaggle, 它告诉我们测试CSV是测试集, 直到比赛的最后一周才会发布｡
‫我们目前所掌握的, 由于这个比赛已经过去了,
‫它包含的数据是从2012年5月1日到2012年11月｡
‫好吧, 那是在我们的验证集之后的六个月左右｡
‫真漂亮｡
‫我们的模型在验证集上表现良好｡
‫所以你可能会看到我们如何对未来六个月的数据进行预测｡
‫所以我们会读rdv测试等于PDF或者读see为v｡
‫我们只需要按照一开始对训练集和有效数据集所做的那样来做｡
‫推土机蓝皮书｡
‫好极了｡
‫这叫做测试csv, 我们会传递内存不足等于假｡
‫我们还要传递日期, 因为我们没有像对其他数据集那样, 对这个数据集进行任何操作｡
‫我们将在稍后看到它的作用, 然后我们将检查DF测试点的头部｡
‫哦, 我的天
‫发生什么事了？
‫哦, 错别字｡
‫真漂亮｡
‫这个看起来很眼熟
‫这是我们以前见过的东西｡
‫除了现在｡
‫这一次, 测试数据集缺少销售列｡
‫原因是因为这是我们要预测的专栏｡
‫我们何不试试看能不能做到呢？
‫所以我们测试利差等于理想模型｡
‫我们使用理想模型, 这个时间模型预测理想模型的表现最好, 我们应该可以把整个数据帧传递给它,
‫对吗？
‫因为这将是我们的X值, 我们不需要删除任何列, 因为它没有销售列｡
‫让我们看看会发生什么｡
‫实际上, 他们在这里做了一点评论, 对测试数据集做了预测,
‫我只是在运行这个单元之前想到了一个小挑战, 我想让你们想想可能会发生什么｡
‫我们的机器学习模型已经在一个特定的数据集上进行了训练, 现在我们已经导入了测试数据集｡
‫如果我们试图对这个数据集进行预测, 会发生什么呢？我给予你们一个提示, 基于我们模型训练的数据｡
‫如果你不确定, 没关系｡
‫我们马上就能看到了｡
‫我们现在就应该看到｡
‫哦, 我们走吧｡
‫值错误｡
‫好吧, 我会的
‫这是怎么回事？
‫无法将字符串转换为浮点数｡
‫哦, 好吧｡
‫如果你们还记得前面的内容, 让我们回顾一下我们一直在研究的笔记本｡
‫在我们能够训练机器学习模型之前, 我们做了什么？
‫当我们刚开始建模的时候, 我们也看到了类似的错误｡
‫如果我能找到就好了｡
‫我们的模型｡
‫没起作用｡
‫我们走吧｡
‫好吧, 我会的
‫建立模型｡
‫因此, DF模板下降｡
‫无法将字符串转换为航班｡
‫下面是相同的错误消息｡
‫现在发生这种情况的原因是什么？
‫这是因为当我们导入原始数据集时, 我们对它做了一些操作｡
‫我们做了什么？
‫我们确保我们的数据是数字的, 我们确保没有缺失值｡
‫我们现在所做的就是导入DF测试｡
‫它可能有一些缺失值, 确实如此｡
‫而且可能不全是数字｡
‫还有｡
‫很远｡
‫我们已经做了相当多的数据处理｡
‫如果我们拿着柱子｡
‫这些就是所有的功能｡
‫但如果我们查一下火车前的柱子｡
‫噢, 不用括号｡
‫我们注意到列长度不同｡
‫嗯嗯嗯
‫所以我们的x列中有102列｡
‫而在DF测试中, 我们得到了什么？
‫我们以前在这里见过, 当我们做点头｡
‫52列｡
‫嗯嗯嗯
‫因此, 我们的机器学习模型目前无法在测试数据集上进行预测的原因是,
‫它的格式与模型训练时使用的格式或模型训练时使用的数据集不同｡
‫所以这就是我们要做的｡
‫好吧, 我会的
‫我们把这些扔掉吧｡
‫那又怎样？
‫我们如何才能做到这一点？
‫所以我们可能要对数据进行预处理｡
‫换句话说, 获取与训练数据集格式相同的测试数据集｡
‫好极了｡
‫那么我们该如何做呢？
‫所以我们可以做的, 我想, 就是创建一个函数来实现这个功能｡
‫因此, 如果我们要导入一个新的数据集, 比如说测试数据集, 我们实际上对训练数据集进行了一些操作｡
‫我们可以把那些在训练数据集上做的函数, 在测试数据集上做完全相同的事情｡
‫这样它们就都一样了｡
‫有道理｡
‫让我们先看看｡
‫让我们看看我们能不能做到｡
‫因此, 需要对数据进行预处理或向其传递数据帧｡
‫我们会在这里留个小纸条｡
‫所以对DF执行转换并返回转换后的DF simple, 对吗？
‫我们要创建一个函数, 它接受某种类型的数据帧｡
‫它会对数据帧进行一系列操作, 然后最终返回数据帧｡
‫所以现在我们要填充所有的转换, 我们最初在这里做temp时做的｡
‫所以我们可以往上走｡
‫我们可能要在这里做几份拷贝和踱步｡
‫所以记住, 回到顶部｡
‫所以这是一个小规则, 一个小花絮｡
‫对训练数据集所做的, 也必须对测试数据集做｡
‫这是一个机器学习的花絮｡
‫好吧, 我会的
‫这是我们做的第一组操作｡
‫它可能会复制｡
‫好极了｡
‫我们只要记住这句话就行了｡
‫我们根据日期时间列销售日期在此处添加了一些信息, 然后将其删除｡
‫所以这是我们要做的前两步｡
‫好吧, 我会的
‫我们将滚动到笔记本的末尾｡
‫这段视频会有很多滚动条, 因为我们做对了三件大事｡
‫我们在这里添加了一些信息到日期时间或我们提取｡
‫这可能是一个更好的主意｡
‫我们从日期时间列中提取信息, 并将其添加到数据框中｡
‫因此, 我们可以使用def dot drop, 在完成此操作后, 我们将删除销售日期列｡
‫我们会得到轴等于1, 到位等于真｡
‫好极了｡
‫我们必须从所有这些文件中删除temp, 因为我们只使用DF｡
‫这里有一个小技巧, 如果你在mac上, 移动你的光标并按住command, 或者如果你在Windows上,
‫它是control, 我们可以在这里退格｡
‫太棒了, 对｡
‫因为我们不是在和DF临时工合作, 我们是在和DF合作｡
‫因此, 任何任意命名的DataFrame都将与我们的函数一起工作｡
‫接下来我们要做的就是用中值填充数字行｡
‫而我们也一样｡
‫充满了绝对性｡
‫丢失的数据又变成了数字｡
‫把分类变成数字｡
‫这就是我们要找的东西｡
‫让我们让我们先这样做｡
‫我们会找到失踪的新奇迹｡
‫幸运的是, 我们已经把笔记本放好了｡
‫我们在这里添加了这些标题, 以便我们可以看到我们在做什么｡
‫这都是为了帮你自己, 对吧
‫因此, 请用中值填充数字行｡
‫我们需要所有这些代码｡
‫我们会收到的
‫真漂亮｡
‫因此, 当您想要处理事情和清理事情时,
‫笔记本上的注释和不同的标题可以真正帮助您未来的自我｡
‫我们又来了｡
‫我们必须删除DF temp, 以便获得DF temp｡
‫我们不要那个DF临时工, 我们只要DF｡
‫好吧, 我会的
‫真漂亮｡
‫我们仍然需要填补分类缺失的数据, 并将分类转化为数字｡
‫现在, 让我们看看我们是否能记住如何做, 而不是必须向上滚动, 因为我们已经做了足够的滚动,
‫说实话｡
‫所以我们能做到｡
‫如果不是, 如果我们记得, 如果它不是一个数字类型, 这就是我们如何做到的｡
‫Typekit是数值类型内容, 因为我们在循环｡
‫我们在同一个循环里｡
‫知足吧我们要走了｡
‫定义标签加下划线缺少yes等号｡
‫所以它会检查它是否为空, 如果为空.
‫我们想添加一个标签, 它是缺失的, 即缺失的特定数据点｡
‫还记得我们是如何在类别代码中加上“+1”的吗, 因为熊猫和代码中缺少的类别是“-1”｡
‫所以这就是我们可以去的地方｡
‫定义标签等于PD分类, 因此将其转换为分类｡
‫因此, 把一个特定列的内容变成一个类别, 然后访问它的代码, 也就是把它变成一个数字,
‫然后加一｡
‫好吧, 我会的
‫不是一个坏的功能｡
‫这就是笔记型电脑工作流程中的情形, 对吗？
‫那是在这里吗？
‫你可能会把大部分的东西归类为相当混乱｡
‫我们在评论中用不同的标题和诸如此类的东西来帮助自己｡
‫但是, 随着您对该过程的深入, 您将开始构建这些帮助器函数｡
‫所以你要把一大堆不同的步骤整理成一个函数, 这样它就可以真正同步笔记本里的东西｡
‫你可以调用这样的函数, 就像我们的show scores函数一样, 它每次执行的过程都是一样的,
‫而不是在笔记本上滚动, 在不同的单元格中找到内容｡
‫现在我们可以按shift回车键, 或者发生了什么, 预期丢失的块｡
‫我觉得我们不需要｡
‫哦, 我的天
‫所以我们才需要它｡
‫我们需要它在这里跳舞｡
‫我们走吧｡
‫很经典｡
‫这就是我们复制和粘贴代码时发生的情况｡
‫对不对？
‫格式并不总是完美的｡
‫真漂亮｡
‫所以我们这里有一个函数, 它会预处理一些数据帧｡
‫它将根据销售日期列添加一些信息｡
‫它会用中值来填充数字行｡
‫它会把缺失的分类数据转换成零值, 剩下的数据转换成分类代码｡
‫真漂亮｡
‫所以它要经过几个步骤｡
‫但没关系, 我们有功能, 因为这一切都将发生在一起｡
‫现在我们该怎么办？
‫实际上, 一个很好的问题是, 这个函数在哪里会中断｡
‫我可能会让你在这段视频上, 保存它变得太长｡
‫我想让你们看看我们创建的这个大函数, 并思考一下｡
‫如果我们通过了它, 我们的训练数据框架, 它会如何工作？
‫如果我们通过了测试数据帧, 右DF测试, 就是上面这个, 我们就通过了这个数据帧｡
‫它会怎么破？
‫我们将在下一个视频中回答这个问题｡