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

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

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

Данные

Это не удивит любого, кто участвовал в местных выборах, но результаты выборов застряли в почти нечитаемых файлах pdf в разных форматах. Благодаря сочетанию конвертеров PDF в текст и результатов, скопированных вручную, была создана история выборов в SG на протяжении 21 века.

Несколько замечаний по поводу данных (их можно найти на моем github). Est означает учреждение, которое я также буду называть Системой. Система широко изучалась в академических кругах, наиболее известная работа принадлежит Дэвиду Брэдшоу, который написал по ней диссертацию в 2013 году. Он (точно) определил систему как удивительно сложную систему патронажа и торговли лошадьми, которая является коалиция подавляющего большинства греческой общины UF и нескольких наиболее известных негреческих студенческих организаций в кампусе, многие из которых представляют определенные группы меньшинств и часто называются «общинами ». Сообщества в основном состоят из Азиатско-американского студенческого союза (AASU), Ассоциации латиноамериканских студентов (HSA) и Союза чернокожих студентов (BSU). Посты в студенческом правительстве распределяются между греческими домами и предоставляются видным членам общин, чтобы создать видимость разнообразия и интеграции. Система пришла к власти в UF на протяжении 1970-х и 1980-х годов, чтобы гарантировать, что важные и престижные должности в университетском городке были недоступны для кого-либо, кроме белых мужчин из высшего класса, особенно для цветных людей, которые в то время интегрировали UF. Вы можете узнать больше о Системе здесь или здесь или даже посмотреть видео о ней здесь, но суть этого проекта заключается в изучении SG через статистическую призму.

Независимые возможности благодаря исследовательскому анализу данных

Исследовательский анализ данных (или EDA) технически - это «Процедуры анализа данных, методы интерпретации результатов таких процедур и способы планирования сбора данных, чтобы облегчить их анализ», что является более длинным способом сказать «Задавать вопросы ваших данных. "

Мой первый вопрос после того, как база данных была заполнена, был: «Насколько доминирующей была Система в 21 веке?» Партия «Система» выиграла все президентские выборы, за исключением двух: в 2004 г. - с Джамалом Соуэллом и еще раз в 2015 г. - с Джозелином Падрон-Расинесом, но возможен ли более детальный анализ? Я взглянул на сенат и составил график процентов победителей с 2000 года на весенних выборах и обнаружил, что опять же, независимые партии выиграли в среднем только 21,5% выборов, в которых участвовали, в то время как Система партии набрали поразительные 81,5% (внимательный читатель заметит, что эти проценты не равны 100; это связано с тем, что в некоторые годы существует несколько независимых партий, а в другие годы выборы проводятся безальтернативно).

Этот график показывает эту разницу во времени.

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

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

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

Выборы SG разбиты на осенние и весенние выборы: осенние сенаторы избираются по географическому региону (общежитие или почтовый индекс), а весенние сенаторы избираются колледжем (инженерное дело, бизнес) или годом (первокурсник, второкурсник). Так же, как и на национальных выборах, есть места, которые избирают кандидатов Системы со ставками, намного превышающими и без того достаточно высокий средний показатель, даже с течением времени. Например, в Районе А (район к востоку от кампуса, где находятся все общежития и близлежащие жилые комплексы) почти никогда не выигрывалось место вне системы или Независимой партии . Округ А, в зависимости от года, контролирует от 5% до 10% сената.

Есть также места, которые, как правило, голосуют за независимых. Ниже приведен график процента побед по местам для независимых партий, который дает (псевдо) рейтинг силы. На момент сбора данных размер выборки для Infinity был равен 1, а среднее значение определенно искажено. Помимо этого, есть только два места, где независимые партии выигрывают более 50% времени: семейное жилье и выпускник.

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

В области моделирования выборов ученые и организации СМИ часто используют так называемые фундаментальные принципы для прогнозирования результатов выборов. Дэвид Байлер, который в настоящее время работает над моделью сената на ноябрь 2018 года, определил основные принципы гораздо лучше, чем я, говоря:

«Основы охватывают практически все, кроме личных опросов - одобрение президента,… прошлые результаты выборов в штате, информацию о кандидатах».

По сути, это те данные, которые у нас есть. Подходя к такой проблеме, я подумал о двух основных подходах.

Машины опорных векторов

Во-первых, я хотел создать алгоритм, который, если бы данные были перенесены в двухмерное пространство, мог бы создать гиперплоскость (в двухмерном пространстве это выглядело бы как линия. В нашем случае он существует как многомерная плоскость с тем же количеством измерений, что и данные), которая разделяла бы каждые выборы (с учетом года, возраста партии, предыдущих результатов выборов, количества кандидатов и т. д.) на две категории: победа и поражение. В Data Science мы называем это линейным классификатором. Существует большое количество потенциальных алгоритмов для этой работы, от K-Nearest Neighbours, который находит K ближайших точек в обучающем наборе и позволяет каждому голосовать за прогноз, до Perceptron, который обновляет веса алгоритма с каждым новым фрагментом данных. это становится. В итоге я выбрал классификатор SVM (машина опорных векторов), потому что предположил, что существует большое количество выборов, которые легко предсказать, и небольшое количество, которые намного сложнее. Это привело меня к классификатору SVM, потому что SVM максимизирует разницу между близкими случаями в линейном классификаторе. Если последний абзац не имел для вас смысла, это на 100% нормально, потому что какой-то выдающийся человек построил график, который значительно упрощает понимание.

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

После тщательной очистки данных я использовал пакет каретки (используемый для прогнозного моделирования / машинного обучения / статистического анализа, как бы вы его ни называли) для реализации алгоритма SVM. Результат? Точность около 80% при тестировании на исторических данных. Прилагается матрица путаницы (верхняя строка - это прогноз, а первый столбец - это фактический результат. Таким образом, это можно прочитать как на выборах SVM предсказал, что сенатор проиграет, он получил 130 правильных и 34 неправильных) .

Этот алгоритм, созданный перед выборами весны 2018 года, предсказывал, что Inspire (Независимая партия) выиграет места в Сенате выпускников и проиграет все другие конкурентные выборы. В этом случае он предсказал перебор заявок и крах сената 38/50 для Системы. Это оказалось почти правдой: Inspire выиграла места в Сенате для аспирантов, стоматологов и изящных искусств и проиграла все остальные конкурсные места. Общий результат сената составил 36/50 с проверкой исполнительных документов, что было примерно 96% с точностью. Неплохо! Однако точность, которую мы получили, находится за пределами 95% доверительного интервала (от 76% до 84% точности), что, вероятно, является функцией выборов 2018 года, когда в совокупности была третья (хотя и довольно неорганизованная и небрежная) партия вместо обычные два. Верно и одно: увеличение числа партий оказывает значительное и отрицательное влияние на количество мест в сенате, которые получит независимая партия, что повлияло на Выборы весны 2018.

Случайные леса

Второй подход, который я хотел попробовать, заключался в использовании дерева решений (мой любимый фрагмент, посвященный деревьям решений, можно найти здесь). Опять же, существуют десятки различных реализаций и механизмов оценки для деревьев решений, включая классические деревья классификации и алгоритмы, а также деревья ансамблей, такие как Boosted Tree и Random Forest (отличную статью о базовой реализации можно найти здесь). Графически деревья решений выглядят так.

Это довольно простой, но чрезвычайно полезный метод. Более надежная модель называется случайным лесом, которая объединяет большое количество деревьев решений со случайно выбранными переменными и использует набор (вероятно, довольно плохих) алгоритмов прогнозирования для создания единой новой модели (это называется ансамблевым обучением). Я думал, что эта модель будет работать лучше, поскольку деревья решений - это то, что я обычно думаю о выборах. Кандидат работает в бизнес-колледже? Они работают с Системой? Тогда они наверняка выиграют.

После внедрения мы получили эту матрицу путаницы, точность которой составляет 89%, что намного выше, чем у методологии SVM.

Еще одно преимущество алгоритма случайного леса заключается в том, что благодаря способу выбора различных переменных мы можем определить, насколько важна каждая переменная (Примечание: MeanDecreaseGini на оси X - это способ измерения примеси категории. Более высокое среднее значение уменьшение индекса Джини означает, что переменная важнее).

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

Используя методологию случайного леса на весенних выборах 2018 года, случайный лес показал точно такую ​​же скорость в классификаторе SVM (96%), но с более высокой точностью на тестовых данных - 89%. Даже учитывая все это, я решил опубликовать в Твиттере слегка измененный прогноз, сказав, что я думал, что Inspire выиграет Graduate вместе с Engineering и CLAS. Неудивительно, что человек работал намного хуже, чем алгоритмы, и Impact поразил как Engineering, так и CLAS. Урок выучен.

Вывод: оказывается, машинное обучение работает

На протяжении всего этого проекта я был очарован, узнав, насколько предсказуемы выборы в UF, даже несмотря на выборы, которые Боб Грэм, бывший сенатор США и губернатор Флориды, описывает, говоря:

«Я никогда не встречал в политике штата и на федеральном уровне такой агрессивной деятельности, как в Университете Флориды».

Моей первоначальной целью было предсказать результаты выборов, и после понимания данных и нескольких попыток я был очень доволен результатами. Опять же, все данные и скрипты являются общедоступными, и я всегда готов ответить на вопросы о Data Science, UF SG, их пересечении или конкретно об этом проекте. Напишите мне по электронной почте или найдите меня в твиттере.

В заключение, я попытался создать эти модели, обладая всем опытом в предметной области и без моего мнения о том, как Система активно делает UF хуже, и нет никаких веских причин для кого-либо принять участие в живом пережитке 1970-х годов. Но я уверен, что моя предвзятость просочится.

Я хотел бы публично поблагодарить Уильяма Ферра, который внес неоценимый вклад в сбор данных и очистку части проекта. Без него этот проект был бы невозможен или, по крайней мере, длился бы гораздо дольше.