У меня проблема с классификацией с несколькими классами, например A, B, C и D. Мои данные имеют следующие метки y:
y0 = [['A'], ['B'], ['A','D'], ['A'], ['A','C','D'], ['D'], ..., ['C'], ['A','B','C','D'] , ['B']]
Я хочу обучить классификатор случайного леса на этих этикетки. Сначала мне нужно закодировать метки. Сначала я попробовал LabelEncoder
:
from sklearn.preprocessing import OneHotEncoder, LabelEncoder
le = LabelEncoder()
le.fit_transform(y0)
# encoded labels: array([0, 1, 2, 0, 3, 4, ... 5, 6, 1], dtype=int64)
Я также попробовал OneHotEncoder
, но, очевидно, ни LabelEncoder
, ни OneHotEncoder
здесь не работали. Дело в том, что я не могу кодировать данные с несколькими метками классов (например, ['A','B','C']
). Я предполагаю, что эти тривиальные методы кодирования здесь не способствуют достижению go, так как лучше всего кодировать метки моих классов? Чтобы уточнить, я не хочу рассматривать, например, ['A','B']
как совершенно другой класс, чем ['A']
или ['B']
. Я хочу, чтобы это был другой класс, но в то же время все еще унаследовал функции от классов A и B.