MultilabelBinarizer будет знать только то, что вы отправите в нем.Когда он видит только 3 отдельных класса, он назначает только 3 столбца.
Вам необходимо установить параметр classes
, чтобы задать общее количество классов, которые вы ожидаете в наборе данных (в порядке, который вы хотите встолбцы):
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer(classes=[0,1,2,3,4])
mlb.fit_transform([[1, 2], [4]])
#Output
array([[0, 1, 1, 0, 0],
[0, 0, 0, 0, 1]])