logo
Loading...

使用葉編碼的問題 - Cupoy

大家好,關於葉編碼的過程,想要做個確認。謝謝。DAY30 葉編碼作業中,根據鐵達尼號作業的案例。1....

ml100-2,ml100-2-d30

使用葉編碼的問題

2019/05/17 下午 04:26
機器學習共學討論版
蔡汶修
觀看數:49
回答數:1
收藏數:1
ml100-2
ml100-2-d30

大家好,關於葉編碼的過程,想要做個確認。謝謝。


DAY30 葉編碼作業中,根據鐵達尼號作業的案例。

1. 會先透過「隨機森林」來產生「葉點位置」。

2. 將「葉點位置」透過OneHotEncoder來編碼。

3. 透過羅吉斯回歸作運算。


案例中的隨機森林是採取n_estimators=20及max_features=4的條件。

產出的葉點位置為 222 * 20的矩陣(222個樣本*20棵樹)。


rf.apply(train_X)[3]  4號樣本的20棵樹位置為

[ 3,  6,  4,  4,  6, 10, 10,  8,  8,  4,  4,  4, 10,  6,  6,  5,  4, 7,  7,  6]


rf.apply(train_X)[4]  5號樣本的20棵樹位置為

[ 3,  7,  4,  6, 11, 11, 11,  8,  8, 13, 11,  3, 13,  6,  6,  8, 11, 6,  6,  6]


問題1. 

第1棵樹而言(0號位置,視為1號特徵),4號樣本與5號樣本都放在第3個葉子中。

所以代表他們在這個特徵之中是雷同的。請問以上認知是否正確?謝謝。


問題2.

dfa = pd.DataFrame(rf.apply(train_X))

將RF的結果輸出成df觀察:

np.unique(dfa[[0]])  ### 編號0號樹的葉子位置

[ 3,  4,  6,  7, 10, 11, 13, 14]


np.unique(dfa[[1]])  ### 編號1號樹的葉子位置

[ 3,  4,  6,  7, 10, 11, 12]


np.unique(dfa[[2]]) ### 編號2號樹的葉子位置

[ 3,  4,  6,  7, 10, 11, 13, 14]


>>> 以編號0號樹舉例,34的相似性,是否高於314的相似性?

換句話說,單棵樹中的葉子位置編號是否具有順序性?謝謝。


 

問題繁多,還請各位前輩見諒。謝謝。


BR,

Kam

回答列表

  • 2019/05/17 下午 07:20
    陳明佑 (Ming You Chen)
    贊同數:2
    不贊同數:0
    留言數:2

    1. 完全正確, 表示兩筆資料的第一個新特徵, 內容完全相同


    2. 之前我並沒有挖掘到這麼深, 同學的好學精神很值得鼓勵

    以同學呈現出的資料來看, 我推論很有可能這些數字代表的是4層完整二元樹(complete binary tree)的位置

    4層完整二元樹的葉點最多應該有16個, 以Python的習慣應該是 0~15 號

    那麼你把對應的數字寫出來, 就可以知道這些類別在哪邊分支了

    例如 3與4, 應該是在 0~3 vs 4~7 的這次判別分開, 而 3與14, 則是在 0~7 vs 8~15 這次分開

    因為比較早期就分開了, 所以確實前者有較高的相似性