<p><strong>Q1.1</strong>:为什么我们使用验证数据而不是测试数据?<em>(在上述场景中)</em></p>
<pre><code>train_x, val_x, train_y, val_y = train_test_split(X, y,test_size=0.3)
</code></pre>
<blockquote>
<p>First of all, the terms validation set and test set are very loosely
used in many tutorials and sometimes interchangeably. It is quite
possible to call the above <code>val_x, val_y</code> as <code>test_x, test_y</code></p>
</blockquote>
<p><strong>Q1.2</strong>:为什么不是全部、训练、val和测试?<em>(为什么分开?)</em></p>
<p>我们所有的机器学习算法都将用于一些实际数据(参考实际测试数据)。然而,在设计出一个算法之后,我们要“测试”它的性能,它的准确度,等等</p>
<blockquote>
<p>Actually we currently don't have the real world data! Right?</p>
</blockquote>
<p>但是我们有什么?列车数据!因此,我们巧妙地将它的一部分(拆分)放在一边,以便以后测试该算法。一旦模型准备好,测试数据用于评估性能。在</p>
^{pr2}$
<p><strong>问题2。</strong>:对于模型.预测()声明,为什么我们要把val_x放在那里?我们不想预测价值吗?在</p>
<p>我们想要预测<code>val_y</code>,但是模型需要<code>val_x</code>来预测y。这正是我们作为参数传递给predict函数的内容。在</p>
<blockquote>
<p>I understand it might be confusing to read <code>model</code> <code>predict</code> <code>val_x</code>. </p>
<p>So the better way is to interpret it, as <code>model</code> could you u please <code>predict</code>
from <code>val_x</code>, and return <code>predicted_y</code>.</p>
</blockquote>
<p>我说<code>predicted_y</code>而不是{<cd1>},因为两者并不完全相似。它们有多大的不同?这就是分数。在</p>
<p><strong>一些术语</strong></p>
<ul>
<li><strong>数据集</strong>:手头数据。这是后来被分割的数据</li>
<li><strong>训练集</strong>:它是我们模型学习的数据集的一部分。通常较大,约70-80%。通常用“x”列和“y”列表示</li>
<li><strong>测试集</strong>:我们为评估模型性能而预留的部分数据集。这个“测试”模型因此得名。表示为测试x和测试y</li>
<li><strong>验证集</strong>:如果我们希望在学习过程中对准确度进行无偏估计,我们使用另一个数据集分割。通常是为了找到超参数等
<ul>
<li>选择最佳执行算法(NB vs DT vs…)</li>
<li>微调参数(树深,kNN中的k,SVM中的c)</li>
</ul></li>
</ul>
<p><strong>Q1.3</strong>:使用哪个组合的用例是什么?在</p>
<blockquote>
<p>You will always have train & test, or all three. However in your case
the test is just named as val.</p>
</blockquote>
<p><strong>额外问题</strong>:在许多教程中,我看到了如何应用标准缩放器。但是,在本教程中,它并不是这样出现的,或者其他函数是否已经扩展了它而不必显式地声明它?在</p>
<blockquote>
<p>It all depends on your data. If the data is pre-processed and all scaled properly then StandardScalers need not be applied. This particular tutorial just implies that data is already normalised accordingly. </p>
</blockquote>