將元素進行二元變換
輸入的資料會轉換成一個 一維 classes_
每組資料會轉換成和 classes_ 相同大小的一維陣列
如果資料有對應到 classes_ 就為 1 否則為 0
[[1,3],[2,6]]
classes_ [1 2 3 6]
=> [[1 0 1 0] , [0 1 0 1]]
使用 inverse_transform 變換回去
可以使用 classes 改變 classes_ 默認的排序
code
import pandas as pd
import numpy as np
from sklearn.preprocessing import MultiLabelBinarizer
#將全部的元素 進行二元變換
# 每個陣列都會對應到 data 產生的 classes_
# 每個陣列中的元素如果有對應到 classes_ 即為1 無對應為0
# 也支援字串陣列使用
data = [[1,3],[2,6]]
mlb = MultiLabelBinarizer()
mlb.fit(data)
print("MultiLabelBinarizer classes_ :\n" , mlb.classes_)
transform_data = mlb.transform(data);
print(transform_data)
print(mlb.inverse_transform(transform_data))
# 多增加參數 classes 可以自行排列元素順序
mlb = MultiLabelBinarizer(classes = [6,3,1,2])
mlb.fit(data)
print("MultiLabelBinarizer classes_ :\n" , mlb.classes_)
print(mlb.transform(data))
output
MultiLabelBinarizer classes_ :
[1 2 3 6]
[[1 0 1 0]
[0 1 0 1]]
[(1, 3), (2, 6)]
MultiLabelBinarizer classes_ :
[6 3 1 2]
[[0 1 1 0]
[1 0 0 1]]
source code
沒有留言:
張貼留言