共享類別特徵的編碼方法
首先,來解釋下啥是共享類別特徵。
假設一個電影數據集有多個topic。比如第一部電影主題是喜劇、愛情、幻想。第二部電影的主題是愛情、音樂。「愛情」就是數據1,2共享的主題特徵。topic1、2、3就是共享類別特徵。
那麼如何把三個特徵共享的類別值統一編碼呢?這裡可以用到sklearn的MultiLabelBinarizer。
先來看一個官方例子
>>> mlb.fit_transform([set([sci-fi, thriller]), set([comedy])])
array([[0, 1, 1],
[1, 0, 0]])
>>> list(mlb.classes_)
[comedy, sci-fi, thriller]
如果數據裡面有空值,MultiLabelBinarizer會報錯。
TypeError: < not supported between instances of float and str
我們可以先為nan填充一個特殊值,比如unknown。調用後,再刪掉unknown所在的列即可。
推薦閱讀: