Machine learning 随机林是否对每棵树的数据进行随机采样?

Machine learning 随机林是否对每棵树的数据进行随机采样?,machine-learning,Machine Learning,我很欣赏bagging为每棵树随机重新采样训练集,随机森林为每棵树随机选择特征子集 但我的问题是,随机森林是否也会对训练集进行重采样,以及随机抽取特征子集。它实际上是双重随机的吗?如果你想的话,大多数时候答案都是肯定的 随机林引导数据并随机选择特征。 引导意味着它对与原始数据集大小相同的数据集进行采样,但需要替换。因此,如果您有N个数据点,则每个树将使用N个数据点,但有些数据点可能会重复(因为它会用替换逐个采样) 然而,你做什么真的取决于你自己。在sklearn实现中,默认值是bootstrap

我很欣赏bagging为每棵树随机重新采样训练集,随机森林为每棵树随机选择特征子集


但我的问题是,随机森林是否也会对训练集进行重采样,以及随机抽取特征子集。它实际上是双重随机的吗?

如果你想的话,大多数时候答案都是肯定的

随机林引导数据并随机选择特征。 引导意味着它对与原始数据集大小相同的数据集进行采样,但需要替换。因此,如果您有N个数据点,则每个树将使用N个数据点,但有些数据点可能会重复(因为它会用替换逐个采样)

然而,你做什么真的取决于你自己。在sklearn实现中,默认值是bootstrap,但您可以将bootstarp标记为False,然后您只能选择随机特性。 请参阅此处的文档:

答案是肯定的,大多数情况下,如果你愿意的话

随机林引导数据并随机选择特征。 引导意味着它对与原始数据集大小相同的数据集进行采样,但需要替换。因此,如果您有N个数据点,则每个树将使用N个数据点,但有些数据点可能会重复(因为它会用替换逐个采样)

然而,你做什么真的取决于你自己。在sklearn实现中,默认值是bootstrap,但您可以将bootstarp标记为False,然后您只能选择随机特性。 请参阅此处的文档:

我要澄清的是,sklearn默认情况下并不是这样实现的。Random Forest的现成sklearn实现不会“随机选择”功能。
max\u features
的默认值为
auto
,即
n\u features
。因此,RF具有可使用的全部功能集。然后根据定义的标准(基尼、熵、均方误差等)找到最佳分割。您必须将
max_features
设置为小于
n_features
的值,以便它在每次分割时实际随机采样特征。如果为“自动”,则max_features=sqrt(n_features),而不是n_features,但是它的平方根只适用于分类Auto is n_features for regressionI要澄清的是,这并不是sklearn默认实现它的方式。Random Forest的现成sklearn实现不会“随机选择”功能。
max\u features
的默认值为
auto
,即
n\u features
。因此,RF具有可使用的全部功能集。然后根据定义的标准(基尼、熵、均方误差等)找到最佳分割。您必须将
max_features
设置为小于
n_features
的值,以便它在每次分割时实际随机采样特征。如果为“自动”,则max_features=sqrt(n_features),而不是n_features,但其平方根仅用于分类auto是n_features用于回归