
- •Оглавление
- •Глава 1 8
- •Глава 2 12
- •Глава 3 17
- •Глава 1
- •Применение языка Python для анализа данных
- •Глава 2
- •2.1. Значимость анализа данных о преступности
- •2.2. Краткие сведения о содержании столбцов
- •Глава 3
- •Импорты библиотек Python
- •Тепловая карта уровня преступности
- •Матрица корреляции
- •Анализ процентного соотношения преступлений
- •Выполнение прогнозирования
Глава 3
Импорты библиотек Python
Для данной работы были использованы следующие библиотеки:
import numpy as np import pandas as pd import os import seaborn as sns import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from statsmodels.tsa.statespace.sarimax import SARIMAX from statsmodels.tsa.seasonal import seasonal_decompose from pmdarima import auto_arima |
Ниже приведено описание каждой библиотеки для общего понимания причины выбора именно этих наборов связанных модулей [2 - 5]:
import numpy as np: NumPy используется для работы с массивами и выполнения математических операций.
import pandas as pd: Pandas используется для работы с табличными данными, предоставляя средства для их манипулирования и анализа.
import os: Библиотека os позволяет взаимодействовать с файловой системой, например, для управления файлами и директориями.
import seaborn as sns: Seaborn используется для создания статистических графиков, обеспечивая высокоуровневые визуализации.
import matplotlib.pyplot as plt: Matplotlib используется для создания различных типов графиков и диаграмм.
from sklearn.linear_model import LinearRegression: LinearRegression из Scikit-learn используется для построения и применения модели линейной регрессии.
from statsmodels.tsa.statespace.sarimax import SARIMAX: SARIMAX из Statsmodels используется для построения и анализа моделей временных рядов.
from statsmodels.tsa.seasonal import seasonal_decompose: seasonal_decompose из Statsmodels используется для декомпозиции временных рядов на тренд, сезонность и остатки.
from pmdarima import auto_arima: auto_arima из Pmdarima используется для автоматического выбора параметров модели ARIMA.
Тепловая карта уровня преступности
В начале необходимо загрузить набор данных в рабочее окружение Visual Studio Code:
crime = pd.read_csv(‘Crime_Data.csv’, sep=’,’) crime |
Вывод: (рисунок 1)
Рис. 1. Сокращенный показ набора данных
Начнем подготовку данных к обработке. Предобработка (приложение: листинг 1) включает в себя: проверку и вывод данных о количестве пропущенных значений в каждом столбце, удаление столбцов, в которых более 50% значений отсутствует, заполнение пропущенных значений в категориальных столбцах наиболее частым значением (модой), а в числовых — средним значением, проверка наличия пропусков после предобработки. На рисунках 2-3 представлены результаты предобработки.
Рис. 2. Пропущенные значения после предобработки
Рис. 3. Первые пять строк обработанного набора данных
Выделим информацию об уровне преступности в регионе и создадим еще один столбец – crime_level, который будет содержать эти данные:
# добавляем новый столбец с именем «crime_level» в DataFrame, округляем значение: crime[‘crime_level’] = (df[‘Crm Cd’] / 100).apply(np.floor) crime |
Получается новый набор данных со столбцом crime_level (рисунок 4)
Рис. 4. Дополненный набор данных
Целью данной обработки является создание тепловой карты, который наглядно покажет нам уровень преступности в Лос-Анджелесе с помощью зависимости уровня преступности (crime_level) от координат широты (LAT) и долготы (LON). Однако, сначала нам нужно округлить значения в столбцах LAT и LON для лучшей наглядности и удобства представления данных. Создадим новые столбцы с округленными значениями lon_round и lat_round:
detail = 0.01 crime[‘lon_round’] = crime[‘LON’].round(2) crime[‘lat_round’] = crime[‘LAT’].round(2) crime |
Получаем новые столбцы lon_round и lat_round (рисунок 5):
Рис. 5. Дополненный набор данных
Теперь мы группируем данные для тепловой карты, сделав отдельный набор данных heatmap_crimes.csv (рисунок 6) (приложение: листинг 2), включающий только нужные нам столбцы lon_round (округленная долгота), lat_round (округленная широта), crime_level (уровень преступности), DR_NOcount (количество уникальных значений):
Рис. 6. Новый набор данных heatmap_crimes.csv
Полученные результаты будут представляться в виде тепловой карты (приложение: листинг 3), которая покажет, где и сколько преступлений было совершено в различных географических областях с разными уровнями преступности, что является мощным инструментом для визуализации и анализа данных о преступности. Он может быть полезен в нескольких ключевых аспектах:
Идентификация горячих точек преступности
Оптимизация ресурсов полиции
Разработка превентивных мер
Информирование и вовлечение общественности
Помощь в городском планировании
Таким образом, тепловая карта, отображающая географическое распределение преступлений (рисунок 7), является незаменимым инструментом для правоохранительных органов, исследователей, городских планировщиков и общественности. Он способствует более глубокому пониманию проблемы преступности, улучшению стратегий по ее снижению и повышению уровня безопасности в городах.
Рис. 7. Тепловая карта уровня преступности