Я работаю над проблемой классификации текста на несколько классов. Для этого я построил модель повышения градиента.
О наборе данных:
В наборе данных есть два столбца: Test_name и Description.
В столбце Test_Name шесть меток и соответствующее описание в столбце Description.
Мой подход к проблеме
ПОДГОТОВКА ДАННЫХ
Создайте вектор слов для описания.
Постройте корпус, используя вектор слов.
Задачи предварительной обработки, такие как удаление чисел, пробелов, игнорируемых слов и преобразование в нижний регистр.
Создайте матрицу терминов документа (dtm).
Удалите редкие слова из приведенного выше dtm.
Вышеупомянутый шаг приводит к матрице частоты счета, показывающей частоту каждого слова в соответствующем столбце.
Преобразуйте матрицу частот подсчета в двоичную матрицу экземпляров, которая показывает вхождения слова в документе как 0 или 1, 1 для присутствия и 0 для отсутствия.
Добавьте столбец метки из исходного набора данных заметок с преобразованным dtm. Столбец меток имеет 6 меток.
Построение модели
Используя пакет H2o, постройте модель gbm.
Полученные результаты
Четыре ярлыка класса классифицируются хорошо, а остальные два плохо классифицируются.
ниже вывод:
Extract training frame with `h2o.getFrame("train")`
MSE: (Extract with `h2o.mse`) 0.1197392
RMSE: (Extract with `h2o.rmse`) 0.3460335
Logloss: (Extract with `h2o.logloss`) 0.3245868
Mean Per-Class Error: 0.3791268
Confusion Matrix: Extract with `h2o.confusionMatrix(<model>,train = TRUE)`)
Body Fluid Analysis = 401 / 2,759
Cytology Test = 182 / 1,087
Diagnostic Imaging = 117 / 3,907
Doctors Advice = 32 / 752
Organ Function Test = 461 / 463
Patient Related = 101 / 113
Totals = 1,294 / 9,081
Ошибки неправильной классификации функциональных тестов органов и пациентов относительно выше. Как я могу это исправить?