xgboost使用one hot編碼方式是否合理

2021-10-24 21:21:53 字數 408 閱讀 9191

離散特徵為什麼要是用one-hot編碼方式:

在樹模型中,當類別特徵為數很高時,one-hot編碼並不合適:

使用one-hot coding的話,意味著每乙個決策節點上只能用one-vs-rest的切分方式,當特徵維度高時,每個類別的資料都會比較少,產生的切分不平衡,切分增益也會很小

會影響決策數的學習,會把資料切分到很多零散的空間中,而決策樹學習時利用的統計資訊,在這些資料量小的空間中,統計資訊不準確,學習會變差。

在決策數應該如何使用類別特徵:

模擬特徵的最有切分?lightgbm

轉化為數值特徵

a)利用nn將one-hot訓練為乙個embedding

b)統計每個類別對應的label的均值(樣本的均值)

c)其他的編碼方式:

使用Numpy進行one hot編碼

在實現很多機器學習任務的時候,經常需要將labels進行one hot encoding,具體思想這裡就不詳述,借一張圖來表示 numpy實現可以是這樣 函式需不需要返回轉置要根據具體情況看 如果不轉置每個label返回的就是乙個行向量 這裡轉置了,每個label就是對應的列向量 def conve...

使用sklearn訓練xgboost模型

xgboost是提公升樹方法的一種,演算法由gbdt改進而來,在計算時也採用平行計算,速度更快。sklearn中提供分類和回歸的xgboost模型,本文對二分類問題採用xgboost進行訓練。import pandas as pd from sklearn.model selection impor...

xgboost簡單介紹 XGBOOST模型介紹

前言 這是機器學習系列的第三篇文章,對於住房租金 比賽的總結這將是最後一篇文章了,比賽持續乙個月自己的總結竟然也用了乙個月,牽強一點來說機器學習也將會是乙個漫長 的道路,後續機器學習的文章大多數以知識科普為主,畢竟自己在機器學習這個領域是個 渣渣,自己學到的新知識點會分享給大家的。前面的文章談了談這...