Original size 736x965

Программирование для креативных индустрий: статистика и преступность

PROTECT STATUS: not protected
14

Концепция финального проекта

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

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

Общие задачи задания по анализу данных и визуализации: 1. Выбрать данные, которые мне интересны, предпочтительно в табличной форме (Excel, CSV) 2. С помощью Pandas провести анализ данных и визуализацию 3. Стилизовать визуализацию, чтобы получить некоторую консистентную инфографику в оригинальном стиле

Вводная часть

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

Данные собраны из http://crimestat.ru/opendata — это портал правовой статистики с открытыми данными о состоянии преступности. Формат файлов на сайте: XML (eXtensible Markup Language — расширяемый язык разметки, язык программирования для создания логической структуры данных) и XSD (это язык описания структуры XML документа, содержит схему проекта).

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

Этапы работы

О чем эта часть проекта: — Расскажите, как вы обрабатывали данные. Желательно поэтапно прикреплять свой код. — Если пользовались нейросетями, то какими, для чего, какие промпты писали. — Как вы стилизовали графики. Возможно, вы выбрали какую-то референсную картинку или вдохновились чем-то и решили создать графики в определённом стиле. Если это так, покажите свои источники вдохновения.

Какие данные я собрала и как я обрабатывала имеющиеся данные?

Моя цель: вычислить сколько преступлений по 4 категориям было зарегистрировано и в каком соотношении. Попробую вычислить соотношения преступлений за период времени с 2014 по 2022 по регионам и в общем. Плюс сделаю инфографики с информацией за 2020, 2021 и 2022 годы отдельно, так как это наиболее актуальная сейчас информация. Буду сравнивать несколькие больших файлов с официально предоставленной информацией.

Преступления 4 категорий: 1. Особая тяжесть преступления 2. Тяжкие преступления 3. Средняя тяжесть преступления 4. Небольшая тяжесть преступления

Категории данных для сбора с сайта: 1. Всего зарегистрированных преступлений (чтобы код смог высчитать из него все что нужно) 2. Зарегистрировано преступлений особой тяжести 3. Зарегистрировано тяжких преступлений 4. Зарегистрировано преступлений средней тяжести 5. Зарегистрировано преступлений небольшой тяжести

Переформатировать файлы из XML в CSV или таблицы Excel для меня оказалось задачей сложной — слишком большой массив данных и ни один конвертер бесплатно браться за это дело не хотел. Поэтому я решила работать с исходными файлами, подстраиваясь под ситуацию.

В процессе работы над кодом я выявила специфику самого кода с данными файлами формата XML. Для того, чтобы адаптировать код под структуру XML файлов для меня было важно учесть, что сами данные имеют особенную структуру. В файлах содержатся теги под разные задачи. Например, есть < indicatorData >, внутри которых находятся строки < row >, данные о количестве преступлений содержатся в теге < value >. А ещё каждый < row > имеет временные метки и название региона.

Исходя из этого я извлекала данные из XML с использованием библиотеки Pandas (и внутренней структуры DataFrame). Помимо этой библиотеки пришлось воспользоваться библиотекой ElementTree XML API, потому что именно эта библиотека дает возможность нормально работать и редактировать XML-файлы. Ещё я попыталась поработать с библиотеками Matplotlib и Numpy, так как это достаточно популярные пакеты для визуализации и обработки данных в Python.

Подробнее про мои XML-файлы и то, как я их пыталась понять.

В файлах я нашла корневой элемент < data >, элемент < indicatorData > (группа данных по конкретному индикатору), элемент < row > (Каждый элемент < row > представляет собой отдельную запись для региона за определённый период)

Внутри них конкретные данные для каждого включая: < value > — Число зарегистрированных преступлений < report_period_begin > — начало отчетного периода (например, 1 января 2020 года) < region_name > — название региона, для которого собраны данные (например, «Псковская область» или «г.Санкт-Петербург») < report_period_end > — конец отчетного периода, в этих файлах он совпадает для всех строк

Original size 2099x1599

Скриншот исходных данных XML-файлов, с которым я работала

Какой общий алгоритм у меня был при работе над сбором данных для проекта: 1. Зайти на сайт: http://crimestat.ru/opendata 2. Выбрать нужные файлы формата XML, так как других вариантов нет (eXtensible Markup Language — это расширяемый язык разметки, предназначенный для хранения и передачи данных в структурированном виде) 3. Скачать их на свой ПК 4. Открыть https://colab.google/ 5. Создать там свой документ для кода, подписать его 6. Положить в документ файлы (положила 2-мя путями: загрузка файлов в соответствующий раздел вручную в среду Google Colab и через код: from google.colab import files uploaded = files.upload ()) 7. Пишу код, основываясь на вышеописанных учебниках и видеоуроках 8. Ищу и максимально быстро изучаю различные библиотеки Python по теме создания графиков и работы с XML-файлами 9. Правлю и редактирую код до тех пор, пока не получу удобоваримый, читаемый график того вида, который я хочу. Сначала я пробовала написать коды просто чтобы у меня получался график, потом перешла на работу с реальными массивами данных, подстраиваясь под ситуацию.

Графики: от поиска вдохновения до итога

О чем эта часть проекта: — Презентуйте ваши графики. Рекомендуемый объем: 4-5 графиков. — Прикрепите блокнот с кодом и датасет (загрузите их в любое облачное хранилище и дайте ссылку, проверьте доступность для просмотра и скачивания файла)

Поиск вдохновения для графиков по теме преступности

0

Поиск вдохновения для графиков от ИИ Leonardo AI

Original size 2324x1401

Скриншот работы над поиском вдохновения для инфографики от Leonardo AI

Промпты для инфографиков

Промпт 1: Make a simple black and white infographic on crime. The image should only contain a histogram or pie charts. The design is brutal and severe. No anime and realistic graphic.

Промпт 2: Create a detailed and visually striking infographic on the topic of crime.This version focuses on breaking down different aspects of crime, such as types of offenses, offender demographics, and the impact on victims, while maintaining a sleek, informative design. The infographic should feature a combination of colorful charts, maps, and icons to illustrate key crime statistics and trends. Include elements such as: Crime rate trends: A graph or timeline showing the evolution of crime rates over the past decades, using different colors for different crime types like violent crimes, theft, cybercrime and etc.

Original size 832x960

Графики

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

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

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

Original size 1428x482

Код для таблицы с четырьмя категориями преступления с 2014 по 2022 год

Original size 1735x1208

Код для таблицы с четырьмя категориями преступления с 2014 по 2022 год

Original size 1189x590

Гистограмма всех преступлений по регионам России с 2014 по 2022 года

Original size 1765x1188

Код для Гистограммы всех преступлений по регионам России

Original size 2480x3508

Круговой график преступлений с 2014–2022 годы про преступления всех категорий по регионам России

Original size 1113x1212

Код для кругового графика преступлений с 2014–2022 года про преступления всех категорий по регионам России

Original size 1044x504

Круговая инфографика: общее количество преступлений в России за все время с 2014 по 2022

Original size 1433x1091

Код для круговой инфографики

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

Красный — в английской литературной традиции символизирует насилие и опасность — преступления особой тяжести (к особо тяжким относятся только умышленные преступления, похищение, изнасилование или убийство с особой жестокостью, создание и деятельность в ОПГ и т. д.)

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

Синий — в картинах Пикассо это символ тревоги, страдания, холода — преступления средней тяжести (длительное (более 3 недель) расстройство здоровья; — значительная стойкая утрата общей трудоспособности менее чем на одну треть и т. д.)

Original size 1231x659

Распределение преступлений по трём категориям для 2020 года

Original size 1241x659

Распределение преступлений по трём категориям для 2021 года

Original size 1212x659

Распределение преступлений по трём категориям для 2022 года

Код для распределения преступлений по трём категориям для 2020–2021 годов

Original size 1538x877

Код для круговой диаграммы 2022 года

Original size 750x510

Описание применения генеративных моделей Модели: Leonardo AI и ChatGPT 4o mini

О чем эта часть проекта: — В случае использования ИИ, согласно новой редакции ПОПАТКУС, в презентацию необходимо добавить раздел «Описание применения генеративной модели», где будет объяснено, как и с какой целью применялся искусственный интеллект, а также указана использованная модель и предоставлена ссылка на неё.

Original size 857x545

В процессе работы над проектом были использованы такие инструменты, как: 1. https://leonardo.ai/ 2. https://chatgpt.com/

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

Второй искусственный интеллект был использован для самообучения. Когда я самостоятельно писала код и более 30 раз пыталась исправить код, то были ситуации, когда я не могла физически увидеть/понять ошибку и то, как её исправить. Тогда я просила машину указать мне на ошибки и объяснить почему они получились. Таким образом я повышала свою квалификацию как программистки на языке Python, внимательнее писала код и лучше видела ошибки.

Пример взаимодействия меня с ИИ

Original size 800x793
Программирование для креативных индустрий: статистика и преступность
14
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more