當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。