分类中的超参数
可以将超参数视为用于训练的设置。 例如,我们可以选择缓慢或快速训练。 超参数会影响训练,所以它们会影响最终模型性能。 实际可用的超参数取决于我们要训练的模型类型。 我们通常使用超参数进行试验以优化模型的性能。
以随机森林为例
随机森林具有不同类型的超参数。 特别是对于随机森林,体系结构决策超参数之间的界限可能比较模糊。 这是因为超参数不仅会影响模型内部的参数,而且还会影响树和森林的结构。
回想一下,在训练开始时,每棵决策树都提供了大量的样本,例如 100 名体操运动员,其中一些运动员已获得奖牌。 必须创建一棵树,将这些运动员样本划分为更小的子组。 目标是,这些子组包含相似的运动员,例如在每个子组中所有运动员都获得了奖牌,或者都没有获得奖牌。 我们来看看可能会影响此训练过程的一些超参数。
拆分条件
在训练过程中,优化器必须确定何时拆分节点。 有不同的确定方法,选择哪种方法被称为超参数。 本质上,不同的方法是指评估样本相似程度的不同方法。
拆分节点的常用方法基于信息理论。可以大致将这种方法视为拆分一个样本,以便得到的两个子样本比原始样本更“纯净”。 可用的方法略有不同,并可能导致生成的最终树存在细微差异,这与梯度下降使用代价函数可以给出不同的最终模型非常相似。 我们将在下一组练习中试验两个条件。
最小不纯度减少
可以进一步自定义用于拆分节点的条件。 例如,设置“最小纯度减少”意味着只有在节点将对模型进行一些或更多改进时才能对其进行拆分。 有几个相关的超参数可能会阻碍新节点的创建,例如最大深度或节点上的最小样本数。
我们限制树生长太快的原因是为了避免过度拟合。 虽然更大的树更擅长匹配训练数据集,但它们可能会变得对该训练集太过优化,以至于停止对其他数据的匹配。 换句话说,限制树的复杂程度可以减少其过度拟合的倾向。
最大特征数
创建随机森林中的树时,需要会为它们提供要拟合的训练数据子集和要使用的特征列表。 重要的是,每棵树可以接收不同的特征集合。 例如,一棵树可以使用“体重”和“身高”特征,而另一棵树可以使用“身高”和“年龄”特征。
增加每棵树可能接收到的特征的最大数量,提供的信息就会更多,这样就更有可能提高每棵树拟合训练集的程度。 这是有助于还是削弱其在测试集上的能力,还需要试验。 这是因为,总是提供许多特征可能意味着森林中的树最终会变得更加相似,从而降低了随机森林相对于简单决策树的优势。 要在这两个极端之间找到平衡,通常需要进行一些试验。
种子设定
模型拟合有时通常依赖于随机数。 计算机不会生成真正的随机数,而是包含一些规则,说明如何在给定一个初始数(称为随机种子)的情况下生成一系列随机数。
例如,如果种子值是 10,然后取前三个随机数,计算机可能会生成 0.75、0.13、0.68。 虽然这些数字看起来是随机的,但只要我们从 10 开始设定种子,就会得到相同的一组数字。
在机器学习中,我们使用随机数初始化模型参数和/或将数据集拆分为训练集和测试集。 如果设定了随机种子,那么每次重新运行代码时,训练过程中使用的随机值都是相同的,这意味着每次重新运行代码时,都会向测试集或训练集分配相同的数据,并训练具有相同初始化状态(初始参数)的模型。
相比之下,如果不设定种子,计算机将为我们选择一个种子(例如基于时间),这意味着运行训练两次得到的结果会略有不同。
严格来说,随机种子并不是超参数,我们在这里引入它只是为了强调这个外部参数可以在训练的有效性中发挥作用。 虽然这种作用通常很小,但如果模型非常复杂,或者可用数据量很少,那么当使用两个不同的种子时,模型的测试集性能可能会显著不同。 在这种情况下,通常需要使用多个不同的种子进行训练,以评估模型设计在多大程度上是适当的,以及性能提升在多大程度上纯粹是“靠运气”。