在上周我們介紹給大家介紹了有監(jiān)督問(wèn)題中樹(shù)模型leaf編碼的操作,在搜索資料的過(guò)程中筆者偶然發(fā)現(xiàn)在sklearn中有無(wú)監(jiān)督的樹(shù)模型leaf編碼,本問(wèn)將介紹Kaggle知識(shí)點(diǎn):RandomTreesEmbedding的原理和使用。
基礎(chǔ)介紹RandomTreesEmbedding使用高維稀疏進(jìn)行無(wú)監(jiān)督轉(zhuǎn)換,數(shù)據(jù)點(diǎn)根據(jù)它被分類到樹(shù)的葉子節(jié)點(diǎn)進(jìn)行編碼,這導(dǎo)致編碼維度與森林中的樹(shù)木一樣多。
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()
輸出結(jié)果:
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.]])
編碼后的維度最多為n_estimators * max_leaf_nodes,若max_leaf_nodes設(shè)置為None,則無(wú)限數(shù)量的葉節(jié)點(diǎn)。
實(shí)現(xiàn)原理
1.隨機(jī)產(chǎn)生隨機(jī)數(shù)作為標(biāo)簽y,數(shù)量與訓(xùn)練集樣本個(gè)數(shù)相同;
2.使用ExtraTreeRegressor完成訓(xùn)練數(shù)據(jù)與標(biāo)簽y進(jìn)行訓(xùn)練。
3.得到ExtraTreeRegressor的leaf編碼,然后進(jìn)行onehot編碼。
rnd = check_random_state(self.random_state)
y?=?rnd.uniform(size=_num_samples(X))
super().fit(X,?y,?sample_weight=sample_weight)self.one_hot_encoder_?=?OneHotEncoder(sparse=self.sparse_output)
return?self.one_hot_encoder_.fit_transform(self.apply(X))
與其他方法對(duì)比
1.RandomTreesEmbedding是一種無(wú)監(jiān)督leaf編碼,可以用任意樹(shù)模型來(lái)完成。
2.RandomTreesEmbedding本質(zhì)是一種降維操作,利用樹(shù)模型節(jié)點(diǎn)分裂完成樣本聚類操作。
3.RandomTreesEmbedding輸出的是leaf節(jié)點(diǎn)的onethot編碼,可以視為稀疏數(shù)據(jù)。
學(xué)習(xí)數(shù)據(jù)學(xué)術(shù)活動(dòng),組隊(duì)參賽,交流分享
請(qǐng)掃碼添加翰林顧問(wèn)老師詳細(xì)咨詢【免費(fèi)領(lǐng)取】相關(guān)賽題及解析!

以上就是關(guān)于【Kaggle知識(shí)點(diǎn):RandomTreesEmbedding的原理和使用】的解答,如需了解學(xué)校/賽事/課程動(dòng)態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
??2027年QS最佳留學(xué)城市排名發(fā)布!倫敦位列第三,北美竟無(wú)緣Top10 ?
王虹、鄧煜!兩位中國(guó)數(shù)學(xué)家同獲菲爾茲獎(jiǎng)!中國(guó)數(shù)學(xué)史新紀(jì)元!

? 2026. All Rights Reserved. 滬ICP備2023009024號(hào)-1