Введение:

Ранее база данных Центров по контролю за заболеваниями (CDC) по раку взрослых (собранная в рамках 2015 NATIONAL HEALTH INTERVIEW SURVEY иЭПИДЕМИЧЕСКОГО НАДЗОРА, ЭПИДЕМИОЛОГИИ И КОНЦА ПРОГРАММА РЕЗУЛЬТАТОВ) была использована для разработки прогнозов того, сколько сигарет в день будет выкуривать курильщик, на основе поведенческих данных (https://medium.com/@asg_akn/how-much-do-personal-habits-influence- сколько-человек-курит-45f798a5bc1b). Эти данные не собирались специально для того, чтобы предсказать, сколько курильщик, вероятно, выкурит. Эта работа привела к повышению точности проверки модели прогнозирования с исходного уровня 0,2865 до 0,4037, что составляет улучшение на 40,9%. Эта работа завершилась тем, что было отмечено, что модель можно улучшить, в частности, улучшив путаницу категоризации между ячейками 1 и 3 в исходной модели. В этом сообщении блога описаны результаты двух дополнительных раундов моделирования, расширяющих исходную модель. Представлено влияние эмпирического комбинирования «правильных» методов моделирования на повышение точности модели. В частности, оптимизация гиперпараметров на основе экспериментальных данных с использованием CV поиска по сетке и сокращение количества функций на основе важности функций перетаскиваемых столбцов объединяются в первом раунде и разработка функций и рекурсивное устранение функций с перекрестной проверкой. объединяются во втором туре. В конечном счете, это сообщение в блоге еще раз демонстрирует проблему, связанную с достижением высокой точности при использовании набора данных, который не был создан специально для категоризации конкретной цели.

Примечание. Это продолжение предыдущего сообщения: https://medium.com/@asg_akn/how-much-do-personal-habits-influence-how-much-a-person-smokes-45f798a5bc1b?sk= e9378e6b4018370c12823244ede9156d

Взгляд на данные:

Создание окончательного проверочного графика в виде графика логарифмических потерь (рис. 1) подчеркивает плоскостность проверочной кривой на графике ниже и, таким образом, поддерживает попытку исследования гиперпараметров с использованием метода поиска по сетке.

Моделирование I:

Учитывая интенсивный вычислительный характер поиска по сетке, дополнительная очистка данных была выполнена заранее. Следующий код использовался для удаления объектов с коэффициентом корреляции выше 0,98:

Это уменьшило количество признаков в наборе данных на 36%, с 92 до 78.

Были проведены эксперименты с предыдущей моделью для определения значений параметров-кандидатов, ведущих к относительно высоким показателям точности проверки. Затем эти значения параметров-кандидатов использовались в качестве входных данных для оптимизации гиперпараметров с использованием следующего кода:

Поиск по сетке был настолько ресурсоемким, что его нельзя было выполнить за 12 часов, отведенных Colab, поэтому эта часть работы была выполнена в ноутбуке Jupyter на моем локальном компьютере с использованием четырех ядер. Ниже показано, что расчет потребовал 1092 минуты для выполнения в общей сложности 43 740 задач. Выполнение задачи с течением времени соответствует кубическому уравнению (рис. 2).

Полученные оптимальные параметры:

использовались в конвейере scikit-learn для кодирования категориальных переменных и подбора модели классификатора случайного леса, в результате чего оценка точности проверки составила 0,398422090729783, ничем не примечательный результат. Это привело к набору важности функций (рис. 3), который полностью отличается от того, что было получено в предыдущем сообщении в блоге:

Например, в предыдущем посте в блоге наивысшая важность функции досталась candy_eat_times_per_month, тогда как здесь наивысшая важность функции принадлежит pop_corn_eat_times_per_month. В отличие от предыдущего сообщения в блоге, эта функция не будет поддерживать высокий уровень важности функции по мере развития модели.

Кривая проверки (рис. 4) теперь может быть определена с использованием того же кода, который использовался ранее.

Кривая ошибки обучения такая же, как и в предыдущем блоге. Кривая ошибки проверки достигает пика при max_depth = 3, как на графике в предыдущем посте, но вторичный перегиб кривой ошибки проверки здесь более тонкий и при max_depth 5 по сравнению с 7 в предыдущем посте. Пиковая точность, наблюдаемая для кривой ошибки проверки с почти совпадающей кривой ошибки обучения, указывает на то, что может быть место для модели с более высоким показателем точности.

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

После настройки случайного классификатора Форреста было обнаружено, что 20 наиболее важных признаков (рис. 5):

Это отличается как от предыдущей таблицы важности функций (рис. 3) в этом сообщении блога, так и от аналогичной таблицы важности функций в предыдущем сообщении блога.

Здесь наибольшую важность имеет функция cookie_eat_serve_per_month с кардинальностью 28:

Количество элементов cookie_eat_serve_per_month довольно велико, особенно по сравнению с предыдущим сообщением в блоге, где наибольшая важность функции досталась candy_eat_times_per_month, количество элементов которого было всего 7.

Влияние гораздо более высокой кардинальности cookie_eat_serve_per_month по сравнению с candy_eat_times_per_month дополнительно демонстрируется с помощью значений важности раскрывающегося столбца (перестановки). Для cookie_eat_serve_per_month важность отбрасываемого столбца меньше нуля: -0,0019723865877712132. Это означает, что наличие cookie_eat_serve_per_month на самом деле снижает точность модели. Сравните это с важностью раскрывающегося столбца для candy_eat_times_per_month из предыдущего сообщения в блоге, которое оказалось равным 0,012491781722550943.

Важность столбца перетаскивания языковой функции рассчитывается для модели в этом посте, как это было для модели в предыдущем посте. Здесь она равна 0,017751479289940808, что немного ниже важности языковой функции в столбце перетаскивания в модели из предыдущего поста в блоге, которая равнялась 0,018408941485864583. Таким образом, языковая функция стала менее важной в настоящей модели.

Библиотека Eli5 используется для получения полного набора важностей раскрывающихся столбцов:

Языковая функция поднялась по важности с 10-го на 2-е и 1-е места по мере развития модели в этом сообщении в блоге. Языковая функция была на 2-м месте по важности раскрывающихся столбцов в модели предыдущей записи в блоге, но она имела вдвое больший вес функции в модели предыдущей записи в блоге (0,0158), чем в текущей модели записи в блоге (0,0079). В целом, важность функции перетаскиваемого столбца в модели здесь заметно меньше, чем важность функции столбца в модели из предыдущего поста в блоге. Кроме того, порядок важности раскрывающихся столбцов в этих двух моделях практически полностью различается.

Как и в модели из предыдущего поста в блоге, для выбора признаков используются значения перестановки признаков, на этот раз количество признаков уменьшается с 78 до 27 (уменьшение на 65%). Это более чем в два раза превышает уменьшение количества признаков на 37% (с 91 до 57), которое было выполнено на основе важности перестановки признаков для модели в предыдущем сообщении в блоге. Более важным, чем резкое сокращение количества функций, является скачок точности проверки до 0,4076265614727153 (сопоставимая точность проверки составляла всего 0,3892176199868508 на данный момент в модели из предыдущего сообщения в блоге).

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

В модели из предыдущей записи в блоге использование повышения градиента привело к повышению точности проверки модели до 0,40368178829717294. Поэтому здесь была предпринята попытка повышения градиента с использованием следующих параметров:

но это обеспечило точность проверки всего 0,394892. Как и в случае с моделью из предыдущего поста в блоге, наилучшая ошибка классификации проверки была как минимум при использовании 6 оценок, но кривая ошибки классификации обучения для настоящей модели падает быстрее (рис. 6), чем для модели предыдущий пост в блоге.

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

Интересно сравнить графики парных зависимостей (рис. 7) как для этой модели, так и для предыдущей модели, каждая из которых построена путем изменения языковой функции при неизменности других функций.

Слева — график для текущей модели, а справа — график для предшествующей модели для первой и третьей выборок (строк). Обратите внимание, что пары серых точек расположены ближе друг к другу, а кривая, проведенная между красными точками, для текущей модели «взлетает» раньше (между 2 и 4 по сравнению с 3 и 5).

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

Полезно посмотреть на графики частичной зависимости с одним признаком для каждого из двух важных признаков, как и прежде, и языка, и weather_discourages_walk. Напомним из предыдущего блога, что график частичной зависимости в основном дает «средний» тренд этой переменной (интегрируя все остальные в модели). Чем больше относительная важность (показана на оси Y), тем важнее переменная, когда эта переменная имеет значение, показанное на оси X.

Здесь мы видим, что количество сигарет в день увеличивается по мере увеличения количества языков с 2 до 5, при этом язык меняется с преимущественно испанского на преимущественно английский. В настоящей модели это увеличение происходит быстрее. После этого он не меняет количество сигарет_в_день_бин.

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

Эти две характеристики нанесены на комбинированные графики частичной зависимости (рис. 8):

Функция weather_discourages_walk закодирована следующим образом (без «6»):

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

Возможно, наиболее резкое отличие в визуализации результатов содержится в трехмерном графике сил Шепли (рис. 9). Напомним, что важность признаков варьируется как в зависимости от выбранной выборки, так и в зависимости от того, какой класс категориальной целевой переменной выбран для рассмотрения. Таким образом, значения (или силы) признаков для выборки (строка 170) для всех категорий классов мусорных ведер 8 сигарет в день можно представить на трехмерном поверхностном графике, который иллюстрирует, как для этого конкретного образца силы признаков изменяются в зависимости от целевого класса:

Здесь вы можете видеть, что трехмерный график силы Шепли для строки 170 в текущей модели представляет собой гораздо более гладкую поверхность, чем трехмерный график силы Шепли для строки 170 в предыдущей модели. Это говорит о том, что по мере повышения точности модели важность признаков стала более избирательной.

Различия между двумя матрицами путаницы более тонкие, чем те, которые очевидны при сравнении трехмерных графиков силы Шепли (рис. 10).

Текущая модель отражена в таблице слева. Хотя эти таблицы «после» и «до» очень похожи, улучшения показаны в отображении прогнозируемого 1 на фактическое 1 и в удалении ложных значений в столбце прогнозируемого 2 в целом. Тем не менее, между бинами 1 и 2 по-прежнему существует очевидная путаница в классификации, что обеспечивает основу для дальнейших улучшений модели.

В качестве окончательной оценки улучшения текущей модели мы сравниваем кривые ROC для нескольких классов как для настоящей, так и для предыдущей моделей (рис. 11).

Кривые слева, соответствующие текущей модели, показывают улучшение AUC для классов 3, 4, 5 с наибольшим увеличением AUC для класса 4. Напомним, что площадь под ROC-кривой (AUC) является мерой того, насколько хорошо Параметр может различать два класса или категории. То есть AUC для бина/класса/категории измеряет различение или способность правильно классифицировать образцы по отношению к указанному бину/классу/категории. Таким образом, исходя из площади под значениями кривой, предыдущая модель продемонстрировала наибольшую дискриминационную способность для бина 8 и следующую наибольшую дискриминирующую способность для бинов 1 и 6. В настоящей модели наибольшая дискриминационная способность остается у бина 8, но следующая наибольшая дискриминационная способность относится к ячейке 4. Здесь снова значение площади для ячейки 7 равно NaN, потому что в проверочном наборе данных не было выборок, которые можно было бы должным образом отнести к ячейке 7.

Моделирование II:

Намерение здесь состоит в том, чтобы попытаться еще больше повысить точность нашей модели. И проектирование признаков, и рекурсивное устранение признаков с перекрестной проверкой.

Обзор первоначального набора функций привел к созданию шести дополнительных инженерных функций для включения в исходный набор функций:

Таким образом, на этом этапе размер набора признаков увеличился с 91 до 97 признаков. Удаление высококоррелированных функций привело к уменьшению набора функций на 17% с 97 до 81 функции (по сравнению с предыдущим падением на 36% с 92 до 78).

На следующем этапе конвейер scikit-learn используется для кодирования категориальных переменных и подбора модели классификатора случайного леса, как это было сделано в модели, описанной выше. Это приводит к точности проверки 0,398422090729783, что было достигнуто без разработки признаков. Однако результирующий набор важности функций (рис. 12) отличается от того, что был сгенерирован и показан выше (рис. 3 и 5), однако:

Кривая проверки (рис. 13) такая же, как описано для модели выше (рис. 4), за исключением перегиба, который был на предыдущем графике, где max_depth = 5 теперь отсутствует.

Повторная настройка гиперпараметров для случайного классификатора Форреста снова подтверждает, что по-прежнему лучше всего использовать «среднее» в простой стратегии вменения. Соответствующая точность перекрестной проверки составляет 0,3953297155073179, что немного меньше, чем результат 0,398422090729783, полученный выше с использованием конвейера scikit-learn для кодирования категориальных значений и соответствия классификатору случайного леса. Пересмотренная таблица важности признаков (рис. 14) отличается от любых других ранее созданных таблиц важности признаков (рис. 3, 5 и 12) для этого набора данных.

Теперь, при выполнении важности перестановки для языковой функции, мы получаем важность перестановки 0,019066403681788302, что выше как 0,017751479289940808 из последней модели, подробно описанной выше, так и 0,018408941485864583 из первой модели, подробно описанной в предыдущем блоге.

Библиотека Eli5 теперь дает новый полный набор значений перестановок:

Хотя приведенный выше список полностью отличается от списка для предыдущей модели, описанной выше, язык находится в верхней части обоих списков, хотя важность языковых функций увеличилась с 0,0079 более чем в два раза до 0,0168, что согласуется с тем, что падение результаты функции.

Удаление признаков с важностью менее 0,0003 снижает количество признаков на 43% с 81 до 46. Это намного меньше, чем сокращение на 65% с 78 до 27 в модели, подробно описанной выше, но немного больше, чем 37%. сокращение характеристик с 91 до 57, достигнутое в исходной модели, описанной в предыдущем блоге.

Выполнение классификатора случайного леса для данных после последнего сокращения признаков дает точность проверки 0,4049967126890204. Этот результат является промежуточным между точностью проверки модели, описанной выше в этом сообщении, 0,4076265614727153, и сопоставимой точностью проверки 0,3892176199868508, которая была получена на данный момент при использовании модели из предыдущего сообщения в блоге.

Вот отход от того, что было сделано в предыдущих моделях: применяется рекурсивное устранение признаков с перекрестной проверкой.

Результат рекурсивного исключения признаков с перекрестной проверкой можно нанести на график (рис. 15), чтобы показать, как процент правильной классификации увеличивается с количеством выбранных признаков.

Получение оптимального количества функций и точности проверки после вышеизложенного:

Оптимальное количество функций теперь уменьшено до 42 из полного набора из 91 функции, что представляет собой сокращение функций на 54%. Что еще более важно, при использовании рекурсивного устранения признаков с перекрестной проверкой была достигнута точность проверки 0,41946088099934253, что представляет собой улучшение на 46,4% по сравнению с базовым уровнем.

Эту точность можно проверить, сначала отбросив неважные функции:

Вышеприведенный результат дает точность 0,41946088099934253, как отмечалось ранее.

Были опробованы два дополнительных элемента (без внесения «постоянных изменений» в исходные данные) для дальнейшего повышения точности, но точность не подтвердилась. Один из элементов, который был опробован, — это масштабирование функций:

Другой пункт, который был опробован, — это стандартизация:

Поскольку ни один из двух вышеперечисленных элементов не улучшил точность модели, анализ модели исходит из результата рекурсивного исключения признаков с перекрестной проверкой. Повышение градиента выполняется с использованием тех же оптимизированных параметров, что и в предыдущей модели. На рисунке 16 наилучшая ошибка классификации проверки минимальна при использовании 8 оценок (по сравнению с 6 оценками для предыдущей модели) и кривой ошибки классификации обучения (слева), очень похожей на график из предыдущей модели (справа).

Также обратите внимание, что кривая обучения на текущем графике падает быстрее, чем кривая обучения на предыдущем графике справа. Сравнение соответствующих графиков журнала ошибки классификации (рисунок 17):

График текущей модели слева на рис. 17 показывает более плоскую кривую проверки и более неравномерную кривую обучения по сравнению с графиком предыдущей модели справа.

Сравнение парной зависимости языковой функции для строк 1 и 2 (рис. 18):

Сравнивая график для текущей модели (рис. 18 слева) с графиком для предыдущей модели (рис. 18 справа), среднее значение прогнозов для двух строк (выделено красным) остается почти таким же при более низком уровне. значения для классов 1–3, делает резкий переход в классе 4 к более высокому значению, а затем остается почти таким же при более высоком значении для классов 5–8. График для предыдущей модели аналогичен, но делает переход в классе по сравнению с классом 4. Кроме того, разделение между верхними серыми точками (для строки 1) и нижними серыми точками (для строки 2) больше в текущей модели. график затем на графике предыдущей модели.

Сравнение трехмерного графика силы Шепли для ряда 170 в текущей модели (рис. 19 слева) с трехмерным графиком силы Шепли для ряда 170 предыдущей модели (рис. 19 справа):

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

Сравнение матрицы путаницы для настоящей модели с матрицей путаницы для предыдущей модели (рис. 20):

большая диагонализация результатов очевидна для последней модели (слева). Кроме того, настоящая модель имеет меньше значений (4 против 8) в прогнозируемом столбце 2.

Наконец, при сравнении кривых ROC для настоящей и предыдущей модели (рис. 21):

Кривые слева на рисунке 21, соответствующие текущей модели, показывают минимальное увеличение AUC для классов 1 и 8 и резкое снижение для классов 4 и 5. В предыдущей модели (показанной справа на рисунке 21) наибольшее дискриминационная способность была в ячейке 8, а следующая по величине дискриминирующая способность была у ячейки 4. В настоящей модели наибольшая дискриминационная способность по-прежнему находится в ячейке 8, но следующая по величине дискриминационная способность принадлежит ячейке 1.

Обсуждение:

Хорошо известно, что курильщики, как правило, занижают свое потребление табака (https://www.tobaccoinaustralia.org.au/chapter-2-consumment/2-3-self-reported-measures-of-tobacco-consumption ), так что наличие инструмента для косвенной и надежной оценки количества сигарет, выкуриваемых курильщиком в день, на основе других, более достоверно сообщаемых им аспектов жизни курильщика, может быть очень полезным. Количество сигарет, выкуриваемых человеком в день, может быть связано со статистикой, которая связывает риск таких вещей, как рак легких и эмфизема, с количеством выкуриваемых сигарет в день, и, таким образом, позволяет использовать данную модель для оценки риска рака. Этот факт, а также возможность работать с данными, не предназначенными для прогнозирования поведения в отношении курения, послужили мотивом для этой работы.

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

В основе подхода Модели I лежит понимание смысла и значения гиперпараметров. Гиперпараметр модели — это характеристика модели, которая является внешней по отношению к модели и значение которой не может быть оценено по данным. Значение гиперпараметра должно быть установлено до начала процесса обучения.

Grid-поиск (https://www.coursera.org/lecture/data-analysis-with-python/grid-search-e4fyg) используется для поиска оптимальных гиперпараметров моделей в этих блогах. Поиск по сетке используется для поиска набора гиперпараметров, который приводит к наиболее точным прогнозам. Поиск по сетке можно использовать для улучшения любой конкретной оценочной метрики, хотя здесь в качестве метрики для работы была выбрана точность. В этом сообщении в блоге поиск по сетке был применен к классификатору случайного леса. Важно отметить, что поиск по сетке страдает от проклятия размерности: количество раз, которое вам требуется для оценки вашей модели во время оптимизации гиперпараметров, растет экспоненциально по количеству параметров. Проявлением этого является длительное время выполнения, которое потребовалось для завершения поиска по сетке здесь. Кроме того, нет гарантии, что будет найдено наилучшее решение, поскольку может произойти наложение на лучшую конфигурацию, хотя здесь этого не произошло.

Важность признаков использовалась несколько раз во время работы, чтобы лучше понять логику модели для проверки правильности модели, а также для улучшения модели, сосредоточив внимание только на важных переменных или параметрах. При использовании классификатора случайного леса важность признаков определяется путем усреднения уменьшения примесей по деревьям в лесу. Стоит отметить, что чем точнее модель, тем больше можно доверять измерениям важности признаков и другим интерпретациям. Также стоит отметить, что это предвзятый подход, поскольку он имеет тенденцию преувеличивать важность непрерывных признаков или категориальных переменных высокой мощности (что наблюдалось во всех трех использованных моделях). Таким образом, важность признака перестановки использовалась, чтобы преодолеть эту предвзятость, несмотря на то, что это требует больших вычислительных ресурсов. Подход eli5 был использован здесь, потому что результаты подхода перестановки легко использовать для выбора признаков с помощью RFE Scikit-learn. Важность признаков столбца отбрасывания также используется здесь в работе, поскольку это наиболее точный способ получения важности признаков и потому, что он дает отрицательные значения важности признаков, которые идентифицируют признаки, которые при удалении из модели фактически повышают точность модели. Это использовалось во всех трех моделях для устранения второго признака, результаты которого приведены в таблице ниже.

Рекурсивное устранение признаков (RFE) включает в себя многократное построение модели (например, SVM или регрессионную модель) и выбор лучшего или худшего признака (например, на основе коэффициентов), откладывание этого признака и затем повторение процесса с остальными. особенностей. Этот процесс применяется до тех пор, пока все функции в наборе данных не будут исчерпаны. Затем функции ранжируются в соответствии с тем, когда они были исключены. Таким образом, это жадная оптимизация для поиска наиболее эффективного подмножества функций. Стабильность RFE сильно зависит от типа модели, используемой для ранжирования признаков на каждой итерации. Как нерегулярная регрессия может быть нестабильной, так и RFE при ее использовании может дать более стабильные результаты. Здесь перекрестная проверка используется, чтобы избежать переобучения. RFE является одной из ключевых частей модели II и вносит значительный вклад в достижение этой моделью наивысшего показателя точности.

Трехмерные графики Шепли, основанные на методе интерпретации на основе перестановок, используются здесь, чтобы понять вклад значения признака в разницу между фактическим прогнозом и средним прогнозом с заданным полным набором значений признаков: простое значение для признака без модель предсказания. Эти графики уязвимы из-за включения нереалистичных экземпляров данных, когда объекты коррелируют, но все же показывают, как вклад функций меняется с изменением точности.

Матрицы путаницы также используются для измерения производительности категоризации алгоритмов машинного обучения путем суммирования количества правильных и неправильных прогнозов с разбивкой по классам. Это показывает не только ошибки, допускаемые классификатором, но, что более важно, типы совершаемых ошибок. Матрицы путаницы используются, чтобы дать представление здесь из-за неравного количества наблюдений в каждом классе и наличия более двух классов в наборе данных. В этой работе матрицы путаницы показывают, что модели особенно сложны в различении членов класса 1 и класса 3. Постепенное увеличение значения в верхнем левом углу матрицы путаницы, представляющей прогнозируемый класс 1/фактический класс 1 , согласуется с повышением точности, как показано в таблице выше.

Последним инструментом, используемым для оценки качества модели, является график ROC для нескольких классов. Как и матрицы путаницы, графики ROC для нескольких классов служат для освещения показателей точности и полноты. ROC представляет собой кривую вероятности для разных классов. ROC сообщает нам, насколько хороша модель для различения заданных классов с точки зрения прогнозируемой вероятности, особенно в случаях, когда наборы данных несбалансированы, как в данном случае. Чем больше площадь под ROC-кривыми (AUC), тем лучше модель различает данные классы. Когда есть четкое различие между всеми классами, AUC для каждого класса близка к единице. Для представленных здесь моделей значения AUC варьируются от 0,52 до 0,77, причем самые высокие значения постоянно связаны с классом 8 (это класс с наименьшим количеством фактических членов), согласно таблице выше.

Выводы:

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

Работа здесь демонстрирует подход к классификации набора данных, который не был создан специально для классификации выбранной цели. Приложив некоторые усилия, за три цикла моделирования было достигнуто улучшение точности на 46,4% по сравнению с базовой линией. Первый раунд моделирования, описанный в предыдущем сообщении в блоге, представляет собой первоначальную работу по моделированию, служащую для определения кандидатов на выбор гиперпараметров, что приводит к относительно высоким показателям точности.

Второй раунд моделирования, описанный в этом сообщении в блоге, начинается с комбинации отбрасывания сильно коррелированных функций, за которыми следует выполнение экспериментальной оптимизации гиперпараметров с использованием CV поиска по сетке. За этим следует уменьшение признаков на основе важности признаков перестановки, что в конечном итоге дает показатель точности, который на 4,5% лучше, чем то, что было достигнуто с моделью во время первого раунда моделирования.

Третий раунд моделирования, также описанный здесь, направлен на дальнейшее повышение точности, достигнутой во втором раунде моделирования, за счет использования как разработки признаков, так и рекурсивного исключения признаков с перекрестной проверкой. Это привело к повышению точности на 46,4% по сравнению с базовой точностью, упомянутой ранее.

Вероятно, есть возможности для дальнейшего совершенствования модели. Существуют две конкретные возможности для улучшения показателя точности.

· Использование интерпретатора дерева для определения вклада каждой функции в конечное значение на основе базовой древовидной структуры в случайном лесу.

· Использование гребневого классификатора вместо используемого здесь классификатора случайного леса

Блокноты Jupyter, соответствующие приведенной выше работе, можно просмотреть:

https://github.com/AlexGerwer/Unit2ProjectRev2.git