Методы классификации в машинном обучении

Задний план

Цель анализа:

Понимать факторы, определяющие успехи студентов, чтобы Открытый университет мог выделять ресурсы для повышения успеваемости студентов.

Описание набора данных:

Набор данных Open University Learning Analytics — это общедоступный набор данных, содержащий данные о курсах, студентах и ​​их взаимодействии с VLE для семи выбранных курсов (модулей).

Поскольку уникальными идентификаторами во всех таблицах данных были идентификатор студента, модуль и описание курса, данные были агрегированы на этом уровне. В анализе использовались следующие переменные:

Variable NameVariable TypeVariable NameVariable Typeid_student уникальный идентификатор/первичный ключimd band categorical code_modulecategoricalage band categorical code_presentation categorical количество предыдущих попытокnumericalgender категориальный изученные кредиты категориальный регион категориальный инвалидность категорический высшее образование категориальный окончательный результат числовая сумма взвешенная оценка числовая средняя длина модуля Среднее числовое значение Длительность представления Среднее числовое значение Доля содержания, доступ к которому было получено Среднее числовое значение Дата регистрации Числовое усеченное Тип оценки Категориальное

Методология

Преобразование данных

  • Объединяйте наборы данных на основе уникального идентификатора (идентификатор учащегося, курс и code_description).
  • Совокупные переменные на уровне уникального идентификатора
  • Обновить номинальные типы переменных от символа до фактора

Предикторы:

  • кодовый модуль
  • представление кода (изменено на 1 = B и 2 = J),
  • пол, регион, высшее образование, диапазон IMD, возрастной диапазон, количество предыдущих попыток, изученные кредиты,
  • средняя продолжительность отправки (усредняется, поскольку одна презентация кода может иметь несколько оценок с разной продолжительностью подачи),
  • средняя длина модуля,
  • средняя доля доступного контента (основанная на сумме кликов по контенту «ou» и ресурсам/викторинам/глоссарию, деленная на общую сумму кликов на описание кода),
  • средняя дата регистрации и
  • усеченный тип оценки (поскольку одно описание кода может иметь несколько оценок и несколько оценок одного и того же типа. Важно определить, влияют ли типы оценок на курс и описание на успех учащихся)

Исключенные переменные: идентификатор учащегося и сумма взвешенных баллов

Причина исключения: идентификатор учащегося – идентифицирующая информация, сумма взвешенных баллов — коррелирует с окончательным результатом

Определить целевую переменную «успех»

  • Переменная ответа: Успех («Пройдено» или «Отлично» = «Да», «Не пройдено» или «Отказано» = «Нет»

Причина отказа от использования «конечного результата» в качестве фактора успеха: в наборе данных имеется непропорционально большое количество «прошедших» записей, что снижает точность модели при прогнозировании «не пройдено», «отменено» и «отлично». Таким образом, переменная ответа была преобразована в бинарную форму.

  • Проверка на наличие пустых значений, отсутствующих значений и выбросов для каждой переменной, которая будет введена в модель

Почему мы проверяем недостающие данные? — Если большая часть данных отсутствует или равна нулю, выборка недостаточно репрезентативна для получения точных результатов. Это не тот случай, когда отсутствующие/нулевые данные отсутствуют по уважительной причине.

Настройка данных

• Разделите данные на обучающие и тестовые наборы для номинальных и бинарных предикторов, чтобы проверить точность модели.

Почему мы разделяем данные на обучающие и тестовые наборы — модель обучается на обучающем наборе. Точность модели проверяется на тестовом наборе, чтобы определить, насколько хорошо модель способна прогнозировать успех по сравнению с неудачей на данных, которые она «не видела».

Моделирование данных

  • Аналитический метод: машина повышения градиента (GBM).
  • Можно было бы использовать альтернативные методы, но точность модели была достаточно высокой — распределенный случайный лес (DRF) и обобщенная линейная модель (GLMNET).
  • Проверьте точность модели, используя матрицу путаницы (т. е. пропорцию, которая была предсказана правильно) и площадь под кривой (насколько хорошо мы справились по сравнению со случайным случаем).

Вывод

  • Лучшие предикторы (по переменной важности)

ETL данных

Все исследование данных, преобразование и загрузка окончательного набора данных были выполнены в Alteryx, чтобы избежать написания кода и проверить его функциональность для основных шагов преобразования данных, которые обычно выполняются в R, таких как соединения, изменение и группировка.

Сначала я объединил три набора данных — Assessments.csv, studentAssessments.csv и Courses.csv по ID оценок (первичный ключ).

Затем я разработал две функции: weighted_score и submit_duration. Даты обычно бессмысленны, если они не преобразованы в полезные функции. В описании курса было только две категории, которые я преобразовал в 1 и 2 для удобства поиска.

Следующим шагом было добавление данных о взаимодействии учащихся с виртуальной обучающей платформой (VLE). Для простоты анализа были разработаны некоторые функции, такие как создание новой переменной с именем activity_type_sum, которая сокращает количество категорий в типе активности на две широкие категории — доступ к контенту и просмотр. Причина этого заключается в том, что детализированные категории приводят только к большему количеству функций и уменьшают количество наблюдений в каждой категории. Количество кликов суммировалось по признаку типа активности. Также была рассчитана доля активности от общей активности, связанной с просмотром и доступом к контенту. Это хороший способ создать характеристику, относительную к другой характеристике и масштабируемую по общей активности, таким образом гарантируя, что все учащиеся будут представлены в одинаковой шкале по их типу деятельности.

Блок 1 был присоединен к Блоку 2 с использованием student_id, code_module и code_presentation в качестве первичного ключа. Полученный результат показан ниже.

Приведенный выше вывод — блок 3 — был объединен с регистрационными данными учащихся с использованием student_id, code_module и code_presentation, чтобы передать поле data_registered.

Поле date_unregistered было проигнорировано, так как в нем было много отсутствующих значений. Кроме того, учащиеся с пустыми незарегистрированными ячейками поля имеют значение отказ в качестве значения final_result. Эта переменная является нашей переменной target/response. Таким образом, поле date_unregistered представляется косвенным показателем для final_result, поэтому имеет смысл исключить эту переменную из нашего анализа.

Как показано выше, для заданных id_student, code_module и code_presentation длина module_presentation, пропорция_содержания и дата_регистрации повторяются. Поскольку мы хотим иметь уникальные записи, мы можем агрегировать данные следующим образом:

  • Суммируйте взвешенный балл, используя общую сумму
  • Средняя продолжительность отправки
  • Среднее представление модуля (вы также можете использовать другие агрегаты, такие как минимум, максимум и медиана)
  • Среднее значение ratio_content_access
  • Среднее значение date_registration

Данные теперь находятся на уровне student_id, code_module, code_presentation и Assessment_type; однако целевая переменная — final_result — находится на уровне student_id, code_module и code_presentation. Следовательно, эти данные необходимо будет дополнительно агрегировать.

Давайте сначала посмотрим на информацию о студенте. Уникальной записью здесь является id_student, code_module, code_presentation.
Итак, нам нужно будет вернуться на шаг назад и обобщить student_id, code_module и code_presentation, чтобы представить все оценки, полученные отдельным лицом. Мы по-прежнему будем использовать предыдущие формулы суммирования.

При этом у нас есть 8 уникальных типов оценки, которые студент может пройти для данного модуля кода и представления кода. Типы оценок не повторяются (только сокращаются), поэтому, если учащийся прошел 3 ТМА, это не отражается, как показано ниже.

Можно создать переменную для подсчета количества оценок для каждого типа оценки, но она будет содержать много пропущенных значений, поскольку не все оценки имеют все три типа оценок.
Теперь мы готовы присоединиться к данным об учащихся с помощью вывод показан ниже.

Теперь у нас есть 18 столбцов.
Нам сказали, что презентация может отличаться, если она представлена ​​в феврале или в октябре. Предположим, что он не отличается из года в год (т. е. 2013B совпадает с 2014B). Таким образом, мы перекодируем code_presentation в 1 для B и 2 для J в качестве двоичной переменной.

Окончательный результат показан ниже.

Наконец-то пришло время для исследования данных.

Исследовательский анализ данных

Категориальные переменные могут быть представлены в виде гистограмм, где ось Y — это частота появления данной категории. Например, на приведенной ниже диаграмме видно, что наиболее часто используемым модулем кода является FFF, за которым следует BBB. Существует семь уникальных модулей кода без пропущенных значений.

Данные также можно резюмировать численно, используя сводку по пяти точкам для непрерывных переменных и используя режим для категориальных переменных, как показано ниже.

Выводы, которые мы можем сделать из приведенного ниже резюме, заключаются в том, что более распространенным студентом является шотландский студент мужского пола без инвалидности с Imd_band от 20 до 40% с типичным Pass в качестве их окончательного результата.

Теперь мы можем перейти к моделированию набора данных.

Модель машинного обучения

Нас попросили помочь Открытому университету лучше понять успехи учащихся.
• Мы будем исходить из того, что успехи учащихся измеряются конечным результатом, где зачет и отличие являются показателями «успеха», а отказ и неуспех — показателями «неуспеха». -success».
• В качестве независимых переменных мы будем использовать все переменные из предыдущей таблицы, кроме weighted_score. Причина этого в том, что взвешенная оценка определяет окончательный результат для данного студента. Таким образом, он сильно коррелирует (мультиколлинеарно) с конечным результатом и поэтому будет исключен.
• ID учащегося является идентифицирующей информацией и поэтому не будет использоваться в качестве предиктора.

Модель GBM (Gradient Boosted Model) была выбрана в качестве предпочтительной модели. Этот тип модели создает серию слабых учеников (мелких деревьев), где каждое новое дерево пытается улучшить частоту ошибок предыдущего дерева. Последнее дерево имеет наименьшую частоту ошибок. Это ансамблевый метод машинного обучения, поскольку для получения окончательных результатов создается несколько деревьев. Однако, в отличие от randomForest, эти деревья создаются последовательно, а не параллельно. Кроме того, эти деревья не являются независимыми и зависят от частоты ошибок предыдущего дерева, где следующие три будут усерднее пытаться улучшить прогноз для более сложных случаев. Это контролируется параметром, называемым скоростью обучения hte.

Модель была запущена с 500 раундами (500 деревьев) с минимальной и максимальной глубиной 4 для дерева. Как правило, иметь очень глубокие деревья нехорошо, так как это может привести к переоснащению, когда алгоритм пытается объяснить каждое наблюдение в наборе данных, поскольку он увеличивает глубину дерева, что приводит к листьям, содержащим очень небольшое количество наблюдений, которые соответствуют заданному. правило.

Из приведенного выше вывода видно, что модель имеет значение RMSE (среднеквадратическая ошибка) 0,55, что довольно высоко. Это особенно плохо для прогнозирования Отличия и Неудачи, что может быть связано с дисбалансом в наборе данных, где из нашего исследовательского анализа данных мы знаем, что Удачноэто наиболее распространенный конечный результат.

Чтобы противодействовать этой проблеме дисбаланса, целевая переменная была переопределена как «успех» (отличие и успех) и «неудача» (неудача и отзыв). Для работы с несбалансированными наборами данных принято объединять категории. Другими способами являются недостаточная выборка (т. е. уменьшение количества экземпляров для наиболее частого класса) или избыточная выборка (т. е. создание искусственных наблюдений для нечастых классов).

Модель была повторно запущена со следующим результатом. Здесь мы видим, что средняя ошибка для каждого класса значительно снизилась. Площадь под кривой (AUC) — это еще одна метрика точности, которая говорит вам, насколько хорошо модель правильно классифицирует случаи (т. е. максимизирует истинно положительный уровень (TPR)). Чем выше AUC, тем точнее модель. Поскольку AUC измеряется в диапазоне от 0 до 1, значение AUC 0,87 является довольно хорошим показателем.

Еще одна метрика, которая обычно используется в задачах классификации, — это оценка F1, которая представляет собой гармоническое среднее значение точности и полноты. Обе метрики направлены на максимизацию TPR при минимизации либо частоты ложноотрицательных результатов (отзыв), либо уровня ложноположительных результатов (точность). Истинно положительный — это когда успех или неудача классифицируются правильно. Ложноотрицательный результат – это когда успех помечен как провал. Ошибочное срабатывание – это когда ошибка помечается как успешная. Чтобы оценка F1 была высокой, должны быть высокими как точность, так и отзыв.

Матрица путаницы указывает на общую частоту ошибок 17,11%, которая в основном определяется тем, насколько хорошо модель классифицирует успехи. Модель не так хорошо классифицирует отказы с частотой ошибок 39,07%. Опять же, это может быть связано с тем, что данные чрезмерно представлены «проходами». Таким образом, к результатам следует относиться с осторожностью и повторно запускать модель с более сбалансированным набором данных.

Теперь давайте посмотрим на основные предикторы успеха или неудачи, взглянув на список важности переменных.

  • Первые 3 переменные — это модуль кода, trimmed_assessment_type и средняя продолжительность отправки.
  • Нижние 3 переменные для прогнозирования того, будет ли достигнут успешный результат для данного учащегося, — это статус инвалидности, средняя дата регистрации и пол.
  • Примечание. Поскольку модуль кода и представление кода являются частью уникального идентификатора, их следует исключить из анализа. Однако, поскольку презентации в феврале и октябре могут отличаться для некоторых курсов, обе переменные были сохранены в модели. Возможно, что исключение этих переменных может повысить точность или сделать другие переменные более «важными».

Теперь давайте визуализируем информацию о главных предикторах, чтобы лучше понять модель. Гистограмма с накоплением ниже показывает пропорцию записей по модулям курса и final_result. Мы можем сделать вывод, что учащиеся с большей вероятностью преуспеют в прохождении курсов AAA, EEE и GGG по сравнению с другими курсами.

  • Из приведенной выше таблицы видно, что вероятность успеха составляет 100%, если экзамен является единственной оценкой для данного курса и презентации.
  • Если компонент курса составляют только оценки, отмеченные компьютером, процент отказов/отказов очень высок. Было бы интересно выяснить, почему наличие CMA как части оценки презентации приводит к снижению процента успеха.

Приведенные выше гистограммы показывают среднюю продолжительность отправки в зависимости от успеха и неудачи.

Похоже, что когда учащиеся успешны, они с большей вероятностью отправят свое задание в течение 10 дней (+/-) с даты отправки оценки.

Подведение итогов

Машинное обучение использовалось для быстрого выявления основных факторов, способствующих успеху учащихся.

Рекомендации по улучшению модели включают:

  • Работа со сбалансированным набором данных
  • Включение прокси-мер для распределения ресурсов в наборе данных
  • Подсчет количества оценок по типу на курс и презентация как функция
  • Удалите категориальные переменные, которые связаны друг с другом (например, использование критерия независимости хи-квадрат)

Надеюсь, теперь вы лучше понимаете использование GBM для задачи классификации, подводные камни задачи классификации (например, несбалансированный набор данных) и использование различных показателей точности.

Ссылка на весь код R предоставлена ​​в моем репозитории git: https://github.com/shedoesdatascience/openlearning