У меня проблема с несколькими классами. Я хочу решить эту проблему, используя метод иерархической классификации LCPN (локальный классификатор на родительский узел). Поэтому я вручную разделил исходный набор данных на иерархию из 2 уровней. Уровень 1 имеет 4 родительских класса, и у каждого из родительских классов есть дочерние классы.
Я построил модель для классификации уровня 1 (для прогнозирования родительского класса). Основываясь на предсказаниях уровня 1, теперь я хочу отправить экземпляры, которые были классифицированы как класс 1, во второй классификатор, который различает дочерние метки класса 1. Аналогично, я хочу повторить этот процесс для других родительских классов как хорошо. В основном я делаю это, чтобы избежать проблемы несоответствия, связанной с LCPN.
Это то, что я в основном сделал до сих пор.
X = data_frame.drop([‘region’], axis = 1) # Features
y = data_frame[‘region’] # Labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
sm = SMOTE()
X_resampled, y_resampled = sm.fit_sample(X_train, y_train)
model = DecisionTreeClassifier().fit(X_resampled, y_resampled)
print(classification_report_imbalanced(y_test, predictions))
Я немного изо всех сил пытаюсь найти способ, как перейдите далее ко второму уровню классификации, основанному на предсказаниях уровня 1. Может ли кто-нибудь предложить мне хороший способ сделать это.
Заранее спасибо