当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn RandomTreesEmbedding用法及代码示例


本文简要介绍python语言中 sklearn.ensemble.RandomTreesEmbedding 的用法。

用法:

class sklearn.ensemble.RandomTreesEmbedding(n_estimators=100, *, max_depth=5, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_leaf_nodes=None, min_impurity_decrease=0.0, sparse_output=True, n_jobs=None, random_state=None, verbose=0, warm_start=False)

完全随机的树的集合。

数据集到高维稀疏表示的无监督转换。数据点根据它被分类到每棵树的哪个叶子进行编码。使用叶子的one-hot 编码,这导致二进制编码与森林中的树一样多。

结果表示的维度是 n_out <= n_estimators * max_leaf_nodes 。如果 max_leaf_nodes == None ,叶子节点的数量最多为 n_estimators * 2 ** max_depth

在用户指南中阅读更多信息。

参数

n_estimators整数,默认=100

森林中的树数量。

max_depth整数,默认=5

每棵树的最大深度。如果没有,则扩展节点直到所有叶子都是纯的或直到所有叶子包含少于min_samples_split 个样本。

min_samples_splitint 或浮点数,默认=2

拆分内部节点所需的最小样本数:

  • 如果是 int,则将 min_samples_split 视为最小数字。
  • 如果是浮点数,那么 min_samples_split 是一个分数,而 ceil(min_samples_split * n_samples) 是每个拆分的最小样本数。
min_samples_leafint 或浮点数,默认=1

叶节点所需的最小样本数。只有在左右分支中的每个分支中至少留下min_samples_leaf 训练样本时,才会考虑任何深度的分割点。这可能具有平滑模型的效果,尤其是在回归中。

  • 如果是 int,则将 min_samples_leaf 视为最小数字。
  • 如果是浮点数,那么 min_samples_leaf 是一个分数,而 ceil(min_samples_leaf * n_samples) 是每个节点的最小样本数。
min_weight_fraction_leaf浮点数,默认=0.0

需要在叶节点处的权重总和(所有输入样本的)的最小加权分数。当未提供sample_weight 时,样本具有相同的权重。

max_leaf_nodes整数,默认=无

以best-first 方式用max_leaf_nodes 种植树。最佳节点定义为杂质的相对减少。如果 None 则无限数量的叶节点。

min_impurity_decrease浮点数,默认=0.0

如果该分裂导致杂质减少大于或等于该值,则该节点将被分裂。

加权杂质减少方程如下:

N_t / N * (impurity - N_t_R / N_t * right_impurity
                    - N_t_L / N_t * left_impurity)

其中N是样本总数,N_t是当前节点的样本数,N_t_L是左孩子的样本数,N_t_R是右孩子的样本数.

N , N_t , N_t_RN_t_L 都是指加权和,如果通过了 sample_weight

sparse_output布尔,默认=真

是否返回稀疏 CSR 矩阵作为默认行为,或者返回与密集管道运算符兼容的密集数组。

n_jobs整数,默认=无

并行运行的作业数量。 fittransformdecision_pathapply 都在树上并行化。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关更多详细信息,请参阅术语表。

random_stateint、RandomState 实例或无,默认=无

控制用于拟合树的随机 y 的生成以及树节点处每个特征的分割绘制。有关详细信息,请参阅词汇表。

verbose整数,默认=0

控制拟合和预测时的详细程度。

warm_start布尔,默认=假

当设置为 True 时,重用上一次调用的解决方案以适应并向集成添加更多估计器,否则,只需适应一个全新的森林。请参阅词汇表。

属性

base_estimator_ ExtraTreeClassifier 实例

用于创建拟合sub-estimators 集合的子估计器模板。

estimators_ ExtraTreeClassifier 实例列表

拟合sub-estimators 的集合。

feature_importances_ndarray 形状 (n_features,)

基于杂质的特征重要性。

n_features_int

已弃用:属性 n_features_ 在版本 1.0 中已弃用,并将在 1.2 中删除。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

n_outputs_int

执行fit 时的输出数。

one_hot_encoder_OneHotEncoder 实例

One-hot 编码器用于创建稀疏嵌入。

参考

1

P. Geurts、D. Ernst. 和 L. Wehenkel,“Extremely randomized trees”,机器学习,63(1),3-42,2006。

2

Moosmann, F. 和 Triggs, B. 和 Jurie, F. “使用随机聚类森林的快速判别视觉码本” NIPS 2007

例子

>>> from sklearn.ensemble import RandomTreesEmbedding
>>> X = [[0,0], [1,0], [0,1], [-1,0], [0,-1]]
>>> random_trees = RandomTreesEmbedding(
...    n_estimators=5, random_state=0, max_depth=1).fit(X)
>>> X_sparse_embedding = random_trees.transform(X)
>>> X_sparse_embedding.toarray()
array([[0., 1., 1., 0., 1., 0., 0., 1., 1., 0.],
       [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.],
       [0., 1., 0., 1., 0., 1., 0., 1., 0., 1.],
       [1., 0., 1., 0., 1., 0., 1., 0., 1., 0.],
       [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.ensemble.RandomTreesEmbedding。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。