Возможно, лучше, чем люди!

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

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

В частности, PredPol, используемый LAPD и Департаментом полиции Атланты, использует место, время и тип преступления для создания карт горячих точек, которые помогают полиции определять маршруты ночного патрулирования. Другой инструмент машинного обучения, HunchLab «», используемый полицией Нью-Йорка и полиции Майами, ориентирован на социальный и поведенческий анализ для создания прогнозов. По данным LAPD, после развертывания инструментов машинного обучения количество краж со взломом значительно снизилось. Даже Шерлок Холмс был бы впечатлен логикой, использованной в такой детективной работе с помощью машин!

Давайте взглянем на научные данные, лежащие в основе успеха такого программного обеспечения. В этом тематическом исследовании давайте рассмотрим базу данных о преступлениях округа Северная Каролина в США для анализа и построим на ней простую «линейную модель» для прогнозирования будущих преступлений. По мере продвижения мы узнаем, действительно ли существует такое предположение о линейной связи между функциями, и если да, то каковы свойства этой связи.

Что такое линейная модель?

Линейная модель предполагает линейную связь между зависимыми и независимыми переменными. Зависимая переменная - это значение, которое нам нужно предсказать (здесь уровень преступности). Когда зависимая переменная является действительным значением, мы используем модель линейной регрессии, а когда категориальная - модель логистической регрессии. Поскольку уровень преступности является реальной величиной, мы будем использовать линейную регрессию для моделирования проблемы.

Линейная регрессия

Используя линейную регрессию, мы ищем линейное уравнение, y = ax + b, , которое фиксирует взаимосвязь в данных. Имея такую ​​линию тренда, легко вычислить соответствующее значение y для будущего значения x.

Содержание

- * Применение линейной регрессии: шаги

- * О входных данных

- * Пошаговое руководство по коду

- * а) Загрузка данных

- * б) Анализ данных

- * c) Исследовательский анализ данных (EDA)

- - 1. Одномерный анализ
- - - ** Распределение целевой переменной
- - - ** Распределение всех характеристик
- - - ** Вероятность / Кумулятивная функция распределения (CDF)

- —2. Двумерный анализ
- - - ** Коробчатая диаграмма
- - - ** Скрипка
- - - ** Подгонка линейной регрессии сильно коррелированных характеристик
- - - ** Анализ корреляции характеристик
- - - ** Увеличенная тепловая карта

- * г) Очистка данных

- * д) Модельное строительство
- -1. Создание модели с наиболее коррелированным признаком
- –2. Создание модели с двумя коррелированными признаками
- —3. Модель со всеми функциями
- —4. Удаление функций из полнофункциональной модели
- —5. Удаление дополнительных функций из полнофункциональной модели
- –6. Оценка модели с использованием перекрестной проверки и RMSE
- —7. Построение окончательной модели

- * f) Обучение и оценка модели

- * g) Выводы по чертежам

- * Заключительные мысли

- * Ссылки

Применение линейной регрессии: шаги

Этот блог - попытка продемонстрировать, как модель линейной регрессии может использоваться для прогнозирования уровня преступности. Для большей ясности мы проведем пошаговые инструкции ниже вместе с кодом Python. Обратите внимание, что программное обеспечение в реальном мире использует более сложные модели, а входной набор данных может быть намного больше.

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

а) Загрузка данных: загружает данные из заданного CSV-файла.

б) Анализ данных: для анализа и подготовки данных для EDA.

c) Исследовательский анализ данных (EDA): для визуализации распределений и установления корреляций между атрибутами. Есть 2 способа выполнить EDA:

i) Одномерный анализ: чтобы выяснить, насколько одна функция в наборе данных может быть полезна для определения целевой функции, то есть уровня преступности.

ii) Двумерный анализ: для определения взаимосвязи между заданными атрибутами и уровнем преступности.

г) Очистка данных: для очистки данных на основе анализа данных и EDA путем удаления нерелевантной и неполной информации. Это самый важный шаг.

д) Построение модели: для разработки подходящей линейной модели с уровнем преступности в качестве зависимой переменной на основе результатов EDA.

е) Обучение и оценка: для обучения модели и оценки эффективности прогнозирования.

g) Выводы по чертежам: для оценки и предложения улучшений модели.

О входных данных

Описание данных

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

Источник данных: https://github.com/AdroitAnandAI/Crime-Analysis-Prediction/blob/master/crime_v2.csv

Атрибуты данных

Атрибуты столбца в наборе данных определяются здесь:

Https://github.com/AdroitAnandAI/Crime-Analysis-Prediction

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

Пошаговое руководство по коду

а) Загрузка данных

Пример вывода:

б) Анализ данных

Данные реального мира всегда далеки от совершенства. Мы найдем аномалии во входных данных и удалим их, выполнив следующие действия.

Наблюдение: последний столбец считывался как данные "объекта", а не "с плавающей точкой". Было обнаружено, что это произошло из-за специальный символ во входном CSV-файле.

Наблюдение: Максимальное значение вероятности функций, prbarr и prbconv, обнаружено как ›1, что является аномалией данных. Мы удалили такие строки из дальнейшего анализа.

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

c) Исследовательский анализ данных (EDA):

  1. Одномерный анализ:

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

Распределение целевой переменной

Распространение всех функций

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

Вероятность / функция кумулятивного распределения (CDF)

Наблюдения:

a) Как ни странно, более 95% еженедельной заработной платы в сфере услуг (wser) находится ниже 400, но максимальная заработная плата составляет около 2250. Следовательно, мы удалим «округ 185» из исходных данных.

б) Хотя максимальное значение налоговых поступлений на душу населения составляет 120, более 50% значений лежат ниже 40.

c) Хотя максимальное значение полиции на душу населения составляет 0,009, более 60% значений лежат ниже 0,001.

Давайте рассмотрим дальше, используя двумерный анализ.

2. Двумерный анализ:

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

Наблюдения:

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

б) Как ни странно, характеристики еженедельной заработной платы и уровень преступности оказались слегка положительно коррелированными. Это означает неравное распределение доходов или, возможно, высокий уровень безработицы.

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

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

Чтобы выявить различия, давайте сделаем коробчатый и скрипичный график уровня преступности в сравнении с логическими функциями «запад», «центральный» и «городской».

Коробчатая диаграмма: расположение

Сюжет для скрипки: расположение

Наблюдения:

а) Уровень преступности в городских районах значительно высок. Таким образом, функция "город" полезна для прогнозирования.

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

Подгонка строго коррелированных характеристик линейной регрессией

Так как функций много, мы возьмем только наиболее коррелированные, чтобы оценить качество линейного соответствия.

Есть 6 сильно коррелированных значений с уровнем преступности:

crmrte 1.000000
плотность 0.728963
городская 0.615602
wfed 0.486156
taxpc 0.450980
wtrd 0.410106

Анализ корреляции между функциями

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

Увеличенная тепловая карта

Наблюдения:

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

б) «Характеристики заработной платы» в разных сферах положительно коррелированы. Это тоже интуитивно понятно, так как повышение или понижение заработной платы в одной сфере обязательно повлияет на другую.

Приведенные выше наблюдения EDA используются для построения модели.

г) Очистка данных

Перед построением модели важно очистить данные на основе наблюдений из анализа данных и EDA.

д) Построение модели

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

  1. Создание модели с наиболее коррелированными характеристиками

На основе EDA мы знаем, что уровень преступности больше всего коррелирует с плотностью

Промежуточные наблюдения:

  • Поскольку p-значение плотности очень мало, уровень преступности тесно связан с плотностью
  • Значение R-квадрата = 0,525 означает, что 52,5% изменчивость уровня преступности объясняется характеристикой плотности.

2. Создание модели с двумя основными взаимосвязанными элементами

Промежуточные наблюдения:

  • Значение R-Squared увеличивается до 0,527, когда «город» сочетается с «плотностью» в качестве переменных-предикторов. Но R-квадрат всегда увеличивается, когда вы добавляете больше переменных-предикторов, независимо от того, помогает ли добавленная переменная в прогнозировании или нет.
  • Скорректированный R в квадрате, штрафует за добавление дополнительных переменных. Таким образом, он будет уменьшаться, когда вы добавляете переменные, которые не вносят вклад. Обратите внимание, что значение Скорректированного R-квадрата снизилось с 0,519 до 0,514. Кроме того, значение AIC увеличено с -470 до -469. [См. примечания ниже]
  • Обратите внимание, что p-значение функции «плотность» также немного увеличилось по сравнению с предыдущей моделью. Таким образом, модель стала менее надежной для объяснения уровня преступности.

Примечания:

Если мы добавим переменные, которые не используются для прогнозирования, это приведет к «переобучению». Тогда модель прогнозирования будет лучше работать с данными обучения, но меньше с данными реального мира. Отслеживая скорректированный квадрат R, p-значение, AIC и BIC, мы можем тщательно включать или исключать переменные в модель. Еще один стандартный метод определения переобучения - это проверка расхождения кривых потерь при поездке и тестовых потерь. [8]

Информационный критерий Акаике (AIC) оценивает относительную информацию, потерянную данной моделью: чем меньше информации теряет модель, тем выше качество модели. Таким образом, чем ниже AIC, тем лучше. AIC & BIC (байесовский информационный критерий) представляет качество модели по сравнению с другой.

3. Модель со всеми функциями

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

4. Удаление компонентов из полнофункциональной модели

Промежуточные наблюдения:

а) После удаления двух объектов: «город», «округ», Коррект. R-квадрат улучшился с 0,825 в полнофункциональной модели до 0,830.

б) Значение AIC уменьшилось с -591,3 в полнофункциональной модели до -595,2 после удаления двух функций «город» и «округ».

Таким образом, у нас есть лучшая модель, чем полнофункциональная модель. Постараемся убрать больше функций и проанализировать показатели модели дальше.

5. Удаление дополнительных функций из полнофункциональной модели.

Промежуточные наблюдения:

Корректировка. Значение R-квадрат и AIC вышеупомянутой модели лучше, чем у предыдущей модели. Мы постараемся удалить еще больше функций с помощью p ›0,05 и оценить с помощью RMSE.

6. Оценка модели с использованием перекрестной проверки и RMSE

Мы проверим изменение значения RMSE, когда будут удалены функции с p ›0,05.

Промежуточные наблюдения:

На столбчатой ​​диаграмме значения RMSE работают лучше, когда функции wtrd и avgsen удалены вместе с ранее удаленными функциями.

Но показатели R-squared и AIC ухудшаются, когда оба wtrd и avgsen удалены. Поскольку wtrd имеет более высокое значение p, чем avgsen, мы удалим из нашей модели только wtrd.

7. Построение окончательной модели

Мы определили 9 функций, которые нужно удалить из набора данных. Построим окончательную модель.

f) Обучение и оценка модели

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

Средняя абсолютная ошибка (MAE) = 0,006986915112800922

Среднеквадратичная ошибка (MSE) = 9,631084350128324e-05

Среднеквадратичная ошибка (RMSE) = 0,009813808817237233

Объясненная дисперсия = 0,8203755208633289

Средняя абсолютная ошибка = 0,004534970460507454

g) Выводы по чертежам

a) Обратите внимание, что график «Фактический уровень преступности» против «Прогнозируемого уровня преступности» является линейным. Это означает, что прогноз уровня преступности почти такой же, как и фактический уровень преступности. Следовательно, линейная модель работает правильно.

б) Проектирование элементов: объединение элементов местоположения (запад, центр и город) в категориальный элемент или объединение элементов реальных значений с использованием деревьев решений или функциональных преобразований, например log может повысить точность прогнозов.

c) Чтобы улучшить модель, хорошо спроектировать функции, выполнив EDA, чтобы определить, где велика ошибка. Например: распределение и процентили графика ошибок.
d) Более важные функции прогнозирования преступности, такие как «уровень безработицы», должны быть включены во входной набор данных.

Полный код приведенного выше примера можно найти здесь:
https://github.com/AdroitAnandAI/Crime-Analysis-Prediction

Заключительные мысли

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

В прогнозировании преступности используется не только регрессионный анализ, но и различные методы машинного обучения, такие как Случайный лес, KNN, XGBoost, машина опорных векторов (SVM), а также многоуровневые нейтральные сети. SVM и Multi -уровневая нейтральная сеть, обе превосходят метод логистической регрессии. [4] [5]

Помимо технического аспекта, серьезным недостатком в работе полиции, основанной на данных, является присутствие людей по обе стороны уравнения. Офицеры должны без предвзятости воплощать рекомендации машин в действия. Машины сами по себе свободны от человеческих предубеждений, но только если входные данные беспристрастны, иначе могут возникнуть такие проблемы, как расовое профилирование. [2] С другой стороны уравнения, этические соображения поимки невиновных людей и вопросы ответственности о том, «кто несет ответственность за неправильный арест», остаются без ответа.

Ссылки

  1. Http://www.bauhinia.org/index.php/english/analyses/314
  2. Https://www.smithsonianmag.com/innovation/can-computers-predict-crimes-2397470/
  3. Https://machinelearningmaster.com/save-load-machine-learning-models-python-scikit-learn/
  4. Https://www.researchgate.net/publication/316446574_Prediction_of_crime_occurrence_from_multi-modal_data_using_deep_learning
  5. Https://towardsdatascience.com/the-perils-of-predictive-policing-11928a9f1d60
  6. https://www.neighborhoodscout.com/nc/charlotte/crime
  7. Https://theness.com/neurologicablog/index.php/does-predictive-policing-work/
  8. Https://alliance.seas.upenn.edu/~cis520/dynamic/2017/wiki/index.php?n=Lectures.Overfitting
  9. Https://www.appliedaicourse.com/

Первоначально опубликовано на medium.com 14 декабря 2018 г.