Въведение:
Въпросът за полицейското насилие в Съединените щати е тема на дълбока загриженост и дебат. Трагичните инциденти, случили се през последните години, разпалиха национален разговор за използването на сила от органите на реда. За да хвърля светлина върху този неотложен проблем, предприех пътуване, управлявано от данни, за да картографирам и анализирам инциденти с полицейско насилие в различни щати в САЩ.

Събиране и предварителна обработка на данни:
За този проект събрах данни от дадения източник (https://mappingpoliceviolence.org/). Данните обхващат различни параметри, като дата, местоположение, демографски данни и обстоятелствата около всеки инцидент. Предварителната обработка на данни беше критична стъпка, включваща почистване, обединяване и структуриране на данните, за да бъдат подходящи за анализ.

Проучвателен анализ на данни (EDA):
Първата стъпка в нашия анализ беше извършването на проучвателен анализ на данни (EDA). Чрез визуализации, като топлинни карти и стълбовидни диаграми, получихме представа за разпределението на инциденти с полицейско насилие в щатите. EDA разкри, че определени региони са претърпели непропорционално голям брой инциденти, което подчертава необходимостта от допълнителни разследвания.

Методология:
За да анализирам данните, използвах техники за машинно обучение, включително групиране и прогнозно моделиране. Групирането помогна да се идентифицират региони с подобни модели на полицейско насилие, докато прогнозното моделиране ни позволи да разберем факторите, допринасящи за тези инциденти. Нашата методология има за цел да отговори на въпроси като: Какви фактори са свързани с по-високите нива на полицейско насилие? Има ли връзка с полицейско обучение или програми за ангажиране на общността.

Инженерни функции:

Започнах с инженеринг на функциите на набора от данни. Подходът за изчистване на данните имаше 6 стъпки:

  1. Проверете колко липсващи стойности има във всяка функция. Ако липсващите стойности са по-малко от 10% от общите стойности във функцията е премахната
  2. Проверете типа функция и я коригирайте, ако е необходимо
  3. Премахване на дублиращи се редове
  4. Проверете за отклонения в местоположението и ги елиминирайте, ако е необходимо
  5. Заменете False и True с нули и единици
  6. Създайте нови функции, като извлечете месеца, деня и часа от колоната „Дата“.

Целеви избор:

Дефинирах тези неща, които биха били интересни за прогнозиране с тези данни:

  1. Признак на психично заболяване
  2. Причина за смъртта

Реших да използвам функцията „Признак на психично заболяване“ като цел

Разделяне на данни:

Процесът на разделяне на набора от данни беше извършен на две стъпки:

  1. Извлечете X_features и y_target от моя кадър с данни
  2. Разделете данните с помощта на train_test_split от Scikit Learn

Избор на модел:

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

  1. K-най-близки съседи-Той прави прогнози въз основа на мнозинството клас или средната стойност на k-най-близките точки от данни в пространството на характеристиките.
  • Точност на данните за валидиране = 0,61
  • Точност на данните от теста =

2. Support Vector Machine (SVM):SVM са особено подходящи за сценарии, при които трябва да разделите точките от данни в отделни категории/

  • Точност на данните за валидиране = 0,6608426407165764

3. RandomForestClassifier-RFs обучават всяко дърво независимо, като използват произволна извадка от данните. Тази произволност помага да се направи моделът по-стабилен от едно дърво на решения и е по-малко вероятно да пренастрои данните за обучение *5

  • Точност на данните за валидиране = 0,6676987725312397
  • Точност на данните от теста = 0,5904467049977886

Важност на функцията

Проверихте важността на функцията, като използвате следните методи

  • Ръчно изтриване: Дървовидната важност на функцията класира функциите