Все какают - это вечная история о людях и животных, которые едят и какают. Таро Гоми не подготовил нас к тому, что некоторые люди какают на улице. Здесь, в Сан-Франциско, растущая проблема - отходы жизнедеятельности человека; как для людей, которые сталкиваются с этим, так и для людей, у которых нет другого выхода, кроме как помогать себе на общественных улицах.

Мы можем наблюдать рост количества отходов жизнедеятельности на улицах, о чем сообщает Сан-Франциско 311. 311 - это городская служба, которая поможет направить любые звонки на улучшение инфраструктуры. Абоненты могут сообщить о чем угодно - от разбитого уличного фонаря до переполненных мусорных баков. Отчеты о человеческих отходах - это третья по популярности услуга на платформе и самая быстрорастущая проблема.

Это многогранная проблема со многими потенциальными решениями, которые лучше всего решают социологи. Однако я думаю, что в этом разговоре есть место науке о данных. Я хотел внести свой вклад, построив модель, которая предсказывала, где и когда появятся человеческие отходы. Эту модель можно использовать для лучшего информирования о распределении ресурсов для таких программ, как Pitstop в Сан-Франциско. Pitstop - это программа, которая предоставляет переносные ванные комнаты в районы с большим количеством бездомных. Эти пит-стопы представляют собой достойный вариант для людей, у которых нет регулярного доступа к туалетам, и при этом избегают опасности для здоровья населения.

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

Данные

Данные предоставляются с 311 с базовой информацией, такой как: категория, широта, долгота и временная метка.

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

Как смоделировать проблему

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

С одной стороны, я мог бы попытаться сделать прогнозы для каждого квартала Сан-Франциско на каждую минуту. Такой дизайн был бы очень полезен для градостроителей, но его практически невозможно смоделировать. С точностью до минуты знать, что в конкретном квартале Сан-Франциско будут отходы жизнедеятельности человека, было бы очень важно. Однако с учетом того, насколько детализирован этот дизайн, частота встречаемости человеческих отходов (все квадратные футы и минуты в нашем анализе, сколько было человеческих отходов?) Составляет ~ 0,0001%.

Это означает, что создание модели на несбалансированных классах было бы практически невозможно. В подобных ситуациях модель будет предсказывать 0 для каждого наблюдения (в нашем примере 0 означает отсутствие фекалий). Модель будет иметь точность 99,9999%, если каждый раз угадывать 0, но на 100% бесполезна, потому что для этого нам не нужна наука о данных.

С другой стороны, мы могли бы разбить Сан-Франциско на 12 основных районов и просматривать данные только час за часом. Такой дизайн давал бы очень точные прогнозы, но они не были бы очень полезными. Модель может предсказывать, что в 9 утра миссии будут человеческие отходы, но эта модель не скажет нам того, чего мы еще не знали.

В конце концов, я обратился к временному аспекту этой проблемы, задав вопрос: «Были ли человеческие потери до или после 12 часов дня в какой-либо конкретный день?» Я использовал алгоритм кластеризации k-средних, чтобы итеративно группировать блоки вместе. Я протестировал множество различных уровней агрегирования и был удовлетворен компромиссом между точностью и полезностью, когда сгруппировал 4 блока вместе.

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

Внешние данные

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

Вторым внешним источником данных был набор данных о землепользовании, предоставленный DataSF Open Data. Этот набор данных предоставил информацию о том, какие здания были в каждом квартале. Он ответил на такие вопросы, как: сколько квадратных метров занимают жилые дома по сравнению с коммерческими?

Третьим источником данных был обзор пешеходного движения для каждого квартала; эти данные также были из DataSF. В нем была указана средняя посещаемость за год, а также предоставлена ​​описательная информация по каждому кварталу, например, наличие светофора или знака остановки.

После объединения всех этих наборов данных я получил обширное представление о кварталах Сан-Франциско, и они предоставили достаточно сигналов для эффективного моделирования проблемы.

Модель

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

После поиска по сетке различных гиперпараметров, таких как max_depth, n_estimators и class_weights, моя модель имела показатель F1 равный 0,43. Хотя это не может быть аппетитной оценкой выше 90, я думаю, что она все же помогает в решении возникшей проблемы. Модель определяет горячие точки и обнаруживает решения, которые меняются в зависимости от времени суток, сезона и т. Д.

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

Как это может помочь

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

Посмотрите исходный код на моем Github и запустите его, чтобы увидеть интерактивные элементы этой диаграммы!