Данные были взяты из соревнования на kaggle.com San Francisco Crime Classification. Цель – предсказать по координатам и времени категорию преступления
Используются следующие библиотеки:
library(lubridate)
library(ggplot2)
library(dplyr)
Были введены переменные year, month, hour (исходя из даты события). Общая информация о датасете:
## 'data.frame': 878049 obs. of 12 variables:
## $ Dates : chr "2015-05-13 23:53:00" "2015-05-13 23:53:00" "2015-05-13 23:33:00" "2015-05-13 23:30:00" ...
## $ Category : Factor w/ 39 levels "ARSON","ASSAULT",..: 38 22 22 17 17 17 37 37 17 17 ...
## $ Descript : Factor w/ 879 levels "ABANDONMENT OF CHILD",..: 867 811 811 405 405 407 740 740 405 405 ...
## $ DayOfWeek : Factor w/ 7 levels "Friday","Monday",..: 7 7 7 7 7 7 7 7 7 7 ...
## $ PdDistrict: Factor w/ 10 levels "BAYVIEW","CENTRAL",..: 5 5 5 5 6 3 3 1 7 2 ...
## $ Resolution: Factor w/ 17 levels "ARREST, BOOKED",..: 1 1 1 12 12 12 12 12 12 12 ...
## $ Address : Factor w/ 23228 levels "0 Block of HARRISON ST",..: 19791 19791 22698 4267 1844 1506 13323 18055 11385 17659 ...
## $ X : num -122 -122 -122 -122 -122 ...
## $ Y : num 37.8 37.8 37.8 37.8 37.8 ...
## $ year : num 2015 2015 2015 2015 2015 ...
## $ month : num 5 5 5 5 5 5 5 5 5 5 ...
## $ hour : int 23 23 23 23 23 23 23 23 23 23 ...
Пропущенных значений нет. DayOfWeek соответствует дате.
sum(is.na(dat))
## [1] 0
sum(as.character(dat$DayOfWeek) !=
as.character(wday(dat$Dates, label=TRUE, abbr=FALSE)))
## [1] 0
Самые массовые преступления:
Всего 39 категорий приступлений. Некоторые немного перекрываются друг с другом.
## 1 LARCENY/THEFT 174900 | Воровство, кражи
## 2 OTHER OFFENSES 126182 | Другие правонарушения (административные, например, просрочены права или неподчинение полиции)
## 3 NON-CRIMINAL 92304 | Не преступления (покусала собака, сообщение о смерти, найдены чьи-то вещи)
## 4 ASSAULT 76876 | Нападение
## 5 DRUG/NARCOTIC 53971 | Вещества
## 6 VEHICLE THEFT 53781 | Угон ТС
## 7 VANDALISM 44725 | Вандализм
## 8 WARRANTS 42214 | (нарушение судебных предписаний ?)
## 9 BURGLARY 36755 | Кража со взломом
## 10 SUSPICIOUS OCC 31414 | Подозрительное происшествие
## 11 MISSING PERSON 25989 | Пропал человек
## 12 ROBBERY 23000 | Ограбление
## 13 FRAUD 16679 | Мошенничество
## 14 FORGERY/COUNTERFEITING 10609 | Подделка
## 15 SECONDARY CODES 9985 | (?) - преступления совершенные несовершеннолетними (стрельба, банды), также содержит "домашние насилие"
## 16 WEAPON LAWS 8555 | Нарушение оборота оружия и взрывчатых веществ
## 17 PROSTITUTION 7484 | Проституция
## 18 TRESPASS 7326 | (?) Посягательства (нахождение на запрещенной территории и т.п.)
## 19 STOLEN PROPERTY 4540 | Украденная собственность (владение чужими вещами, электроникой)
## 20 SEX OFFENSES FORCIBLE 4388 | Насильственные сексуальные преступления (принуждения к сексу, попытки и изнасилования, содомия!!)
## 21 DISORDERLY CONDUCT 4320 | Хулиганство
## 22 DRUNKENNESS 4280 | Нахождение (быдлеж?) в нетрезвом виде
## 23 RECOVERED VEHICLE 3138 | (типа, нашли украденное ТС?)
## 24 KIDNAPPING 2341 | Похищение (людей)
## 25 DRIVING UNDER THE INFLUENCE 2268 | Вождение в нетрезвом виде
## 26 RUNAWAY 1946 | Побег (?)
## 27 LIQUOR LAWS 1903 | Нарушение оборота спиртного
## 28 ARSON 1513 | Поджог
## 29 LOITERING 1225 | Бродяжничество (попрошайничество, отказ покинуть территорию школы или парка и т.п.)
## 30 EMBEZZLEMENT 1166 | Хищение (чего-то с работы или у партнеров)
## 31 SUICIDE 508 | Самоубийства
## 32 FAMILY OFFENSES 491 | Семейные преступления
## 33 BAD CHECKS 406 | (подделка счетов/бумаг ?)
## 34 BRIBERY 289 | Взяточничество
## 35 EXTORTION 256 | Вымогательство
## 36 SEX OFFENSES NON FORCIBLE 148 | Ненасильственные сексуальные преступления
## 37 GAMBLING 146 | Азартные игры
## 38 PORNOGRAPHY/OBSCENE MAT 22 | Порнография/запрещенные материалы
## 39 TREA 6 | Околачиваться около производства :)
Количество преступлений в течение дня имеет характерный вид, одинаковый для всех лет и месяцев.
Количество преступлений в теченее дня имеет различия для разных дней недели. Рабочие дни имеют схожие графики, однако в пятницу и субботу они возрастают в вечерние и ночные часы. Их уровен высок в выходные, но в воскресенье вечерняя тендеция схожа с рабочими днями (убывает). Например:
Количество преступлений в год соизмеримо.
Преступления по месяцами распределены почти одинаково от года к году. Две основные тенденции:
Преступления разбиты на районы, каждый из которых (вероятно) закреплен за своим полицейским департаментом. Всего их 10.
## [1] "BAYVIEW" "CENTRAL" "INGLESIDE" "MISSION" "NORTHERN"
## [6] "PARK" "RICHMOND" "SOUTHERN" "TARAVAL" "TENDERLOIN"
Относительное распределение преступлений по районам сохраняется каждый год. А также каждый месяц и по дням недели (гистограммы не приведены). Очевидно, районы можно разделить на криминальные и более-менее благополучные.
В зависимости от времени суток, относительная частота преступлений плавает для некоторых районов. Например, для районов Mission, Northern она возрастает до уровня Southern ночью и падает до среднего в дневные часы.
## ----------------------
## District: BAYVIEW
## Var1 Freq
## 1 OTHER OFFENSES 17053
## 2 LARCENY/THEFT 10119
## 3 ASSAULT 9857
## 4 VEHICLE THEFT 7219
## 5 NON-CRIMINAL 6099
## ----------------------
## District: CENTRAL
## Var1 Freq
## 1 LARCENY/THEFT 25060
## 2 NON-CRIMINAL 10940
## 3 OTHER OFFENSES 8901
## 4 ASSAULT 6977
## 5 BURGLARY 4519
## ----------------------
## District: INGLESIDE
## Var1 Freq
## 1 OTHER OFFENSES 13203
## 2 LARCENY/THEFT 10236
## 3 VEHICLE THEFT 8960
## 4 ASSAULT 8533
## 5 NON-CRIMINAL 6853
## ----------------------
## District: MISSION
## Var1 Freq
## 1 OTHER OFFENSES 19330
## 2 LARCENY/THEFT 18223
## 3 NON-CRIMINAL 12372
## 4 ASSAULT 11149
## 5 DRUG/NARCOTIC 8757
## ----------------------
## District: NORTHERN
## Var1 Freq
## 1 LARCENY/THEFT 28630
## 2 OTHER OFFENSES 12233
## 3 NON-CRIMINAL 10240
## 4 ASSAULT 8318
## 5 VEHICLE THEFT 6291
## ----------------------
## District: PARK
## Var1 Freq
## 1 LARCENY/THEFT 9146
## 2 OTHER OFFENSES 6184
## 3 NON-CRIMINAL 5925
## 4 VEHICLE THEFT 3963
## 5 ASSAULT 3515
## ----------------------
## District: RICHMOND
## Var1 Freq
## 1 LARCENY/THEFT 9893
## 2 NON-CRIMINAL 5744
## 3 OTHER OFFENSES 5632
## 4 VEHICLE THEFT 4117
## 5 ASSAULT 3202
## ----------------------
## District: SOUTHERN
## Var1 Freq
## 1 LARCENY/THEFT 41845
## 2 OTHER OFFENSES 21308
## 3 NON-CRIMINAL 19745
## 4 ASSAULT 12183
## 5 DRUG/NARCOTIC 9228
## ----------------------
## District: TARAVAL
## Var1 Freq
## 1 LARCENY/THEFT 11845
## 2 OTHER OFFENSES 8614
## 3 NON-CRIMINAL 6919
## 4 VEHICLE THEFT 6142
## 5 ASSAULT 5463
## ----------------------
## District: TENDERLOIN
## Var1 Freq
## 1 DRUG/NARCOTIC 17696
## 2 OTHER OFFENSES 13724
## 3 LARCENY/THEFT 9903
## 4 ASSAULT 7679
## 5 NON-CRIMINAL 7467
Практически все координаты соответствуют районам. Есть несколько выбросов и точек, не соответствующих департаменту, но их нетрудно заметить. Точечный график по первым пяти тысячам строк:
Некоторые данные неправильно введены. Они имеют координаты [-120.5;90.0]. Их можно заметить в общей информации (или построив точечный график). Эти 67 строк можно попытаться восстановить (по улицам и районам), однако пока они исключены из рассмотрения.
summary(dat[c('X','Y')])
## X Y
## Min. :-122.5 Min. :37.71
## 1st Qu.:-122.4 1st Qu.:37.75
## Median :-122.4 Median :37.78
## Mean :-122.4 Mean :37.77
## 3rd Qu.:-122.4 3rd Qu.:37.78
## Max. :-120.5 Max. :90.00
nrow(dat[dat$Y>40,])
## [1] 67
dat <- dat[dat$Y<40 ,]
Все преступления:
Возможно имеет смысл учитывать плотность преступлений. Самая высокая плотность сосредоточена в районе TENDERLOIN и его окрестностях.
Некоторые преступления имеют разные тепловые карты, например, DRUGS и ASSAULT:
С другой стороны, некоторые могут быть равномерно распределены по всему городу (VEHICLE THEFT):
Адреса с наибольшим количество преступлений:
## Var1 Freq
## 1 800 Block of BRYANT ST 26533
## 2 800 Block of MARKET ST 6581
## 3 2000 Block of MISSION ST 5097
## 4 1000 Block of POTRERO AV 4063
## 5 900 Block of MARKET ST 3251
## 6 0 Block of TURK ST 3228
## 7 0 Block of 6TH ST 2884
## 8 300 Block of ELLIS ST 2703
## 9 400 Block of ELLIS ST 2590
## 10 16TH ST / MISSION ST 2504
Для простоты пусть имя улицы будет последними 2 словами из адреса. Улицы с самым большим количеством происшествий:
## Var1 Freq
## 1 MISSION ST 36826
## 2 MARKET ST 34366
## 3 BRYANT ST 30757
## 4 TURK ST 13078
## 5 EDDY ST 11604
## 6 OFARRELL ST 11215
## 7 ELLIS ST 11125
## 8 JONES ST 10148
## 9 HYDE ST 9371
## 10 FOLSOM ST 9271
## 11 3RD ST 9018
## 12 LEAVENWORTH ST 8785
## 13 TAYLOR ST 8225
## 14 6TH ST 8039
## 15 POTRERO AV 7798
## 16 16TH ST 7717
## 17 POWELL ST 7698
## 18 HARRISON ST 7419
## 19 POLK ST 7408
## 20 GEARY BL 7343
Возможно стоит обучить классификатор, который по координатам будем выдавать принадлежность к улице.
Самые богатые на происшествия улицы. Все они находятся рядом (см. координаты).
Пожалуй, для таких улиц трудно выявить какую-либо специализацию по преступлениям. Она будет окрашена в цвет наиболее массовых преступлений, а среди них явных тендеций нет.
Большинство происшествий оказыаются без результата:
## Var1 Freq
## 1 NONE 526757
## 2 ARREST, BOOKED 206384
## 3 ARREST, CITED 76994
## 4 LOCATED 17101
## 5 PSYCHOPATHIC CASE 14533
## 6 UNFOUNDED 9584
## 7 JUVENILE BOOKED 5563
## 8 COMPLAINANT REFUSES TO PROSECUTE 3974
## 9 DISTRICT ATTORNEY REFUSES TO PROSECUTE 3934
## 10 NOT PROSECUTED 3714
## 11 JUVENILE CITED 3332
## 12 PROSECUTED BY OUTSIDE AGENCY 2504
## 13 EXCEPTIONAL CLEARANCE 1530
## 14 JUVENILE ADMONISHED 1455
## 15 JUVENILE DIVERTED 355
## 16 CLEARED-CONTACT JUVENILE FOR MORE INFO 217
## 17 PROSECUTED FOR LESSER OFFENSE 51
Распределение решений по преступлениям:
## ----------------------
## Resolution: NONE
## Var1 Freq
## 1 LARCENY/THEFT 156571
## 2 NON-CRIMINAL 68521
## 3 VEHICLE THEFT 49236
## 4 ASSAULT 44730
## 5 VANDALISM 39226
## ----------------------
## Resolution: ARREST, BOOKED
## Var1 Freq
## 1 DRUG/NARCOTIC 43749
## 2 OTHER OFFENSES 41208
## 3 WARRANTS 38782
## 4 ASSAULT 23446
## 5 LARCENY/THEFT 9913
## ----------------------
## Resolution: ARREST, CITED
## Var1 Freq
## 1 OTHER OFFENSES 47267
## 2 LARCENY/THEFT 5236
## 3 PROSTITUTION 4744
## 4 DRUG/NARCOTIC 4497
## 5 ASSAULT 3547
## ----------------------
## Resolution: LOCATED
## Var1 Freq
## 1 MISSING PERSON 15012
## 2 RUNAWAY 1217
## 3 NON-CRIMINAL 448
## 4 SUSPICIOUS OCC 110
## 5 OTHER OFFENSES 105
## ----------------------
## Resolution: PSYCHOPATHIC CASE
## Var1 Freq
## 1 NON-CRIMINAL 13485
## 2 MISSING PERSON 216
## 3 ASSAULT 214
## 4 OTHER OFFENSES 127
## 5 VANDALISM 104
## ----------------------
## Resolution: UNFOUNDED
## Var1 Freq
## 1 NON-CRIMINAL 2919
## 2 VEHICLE THEFT 2142
## 3 SUSPICIOUS OCC 1012
## 4 OTHER OFFENSES 619
## 5 ASSAULT 593
## ----------------------
## Resolution: JUVENILE BOOKED
## Var1 Freq
## 1 OTHER OFFENSES 1047
## 2 ASSAULT 814
## 3 WARRANTS 624
## 4 ROBBERY 540
## 5 DRUG/NARCOTIC 509
## ----------------------
## Resolution: COMPLAINANT REFUSES TO PROSECUTE
## Var1 Freq
## 1 ASSAULT 1017
## 2 NON-CRIMINAL 715
## 3 SECONDARY CODES 323
## 4 SUSPICIOUS OCC 311
## 5 OTHER OFFENSES 300
## ----------------------
## Resolution: DISTRICT ATTORNEY REFUSES TO PROSECUTE
## Var1 Freq
## 1 ASSAULT 1308
## 2 SEX OFFENSES FORCIBLE 364
## 3 OTHER OFFENSES 309
## 4 SECONDARY CODES 268
## 5 ROBBERY 262
## ----------------------
## Resolution: NOT PROSECUTED
## Var1 Freq
## 1 FRAUD 946
## 2 LARCENY/THEFT 760
## 3 FORGERY/COUNTERFEITING 698
## 4 NON-CRIMINAL 385
## 5 SUSPICIOUS OCC 237
## ----------------------
## Resolution: JUVENILE CITED
## Var1 Freq
## 1 OTHER OFFENSES 921
## 2 LARCENY/THEFT 675
## 3 VANDALISM 383
## 4 ASSAULT 293
## 5 DRUG/NARCOTIC 274
## ----------------------
## Resolution: PROSECUTED BY OUTSIDE AGENCY
## Var1 Freq
## 1 FORGERY/COUNTERFEITING 914
## 2 FRAUD 441
## 3 OTHER OFFENSES 345
## 4 NON-CRIMINAL 250
## 5 SUSPICIOUS OCC 129
## ----------------------
## Resolution: EXCEPTIONAL CLEARANCE
## Var1 Freq
## 1 ASSAULT 320
## 2 NON-CRIMINAL 259
## 3 LARCENY/THEFT 203
## 4 OTHER OFFENSES 110
## 5 SUSPICIOUS OCC 93
## ----------------------
## Resolution: JUVENILE ADMONISHED
## Var1 Freq
## 1 ASSAULT 328
## 2 OTHER OFFENSES 272
## 3 SUSPICIOUS OCC 201
## 4 LARCENY/THEFT 152
## 5 WEAPON LAWS 102
## ----------------------
## Resolution: JUVENILE DIVERTED
## Var1 Freq
## 1 NON-CRIMINAL 102
## 2 OTHER OFFENSES 80
## 3 MISSING PERSON 46
## 4 SUSPICIOUS OCC 21
## 5 LARCENY/THEFT 18
## ----------------------
## Resolution: CLEARED-CONTACT JUVENILE FOR MORE INFO
## Var1 Freq
## 1 ASSAULT 40
## 2 SEX OFFENSES FORCIBLE 38
## 3 MISSING PERSON 33
## 4 NON-CRIMINAL 29
## 5 SUSPICIOUS OCC 21
## ----------------------
## Resolution: PROSECUTED FOR LESSER OFFENSE
## Var1 Freq
## 1 OTHER OFFENSES 14
## 2 DRUG/NARCOTIC 11
## 3 ASSAULT 9
## 4 WARRANTS 3
## 5 FRAUD 2
В PSYCHOPATHIC CASE, LOCATED и ARREST, CITED есть явные лидеры с большим отрывом.
Из-за того, что объемы достаточно большие, значения переменных с малой частотой следует исключить, например, это происшествие TREA или решение PROSECUTED FOR LESSER OFFENSE
На основе карт, графиков и т.п. надо синтезировать новые переменные, которые смогут помочь разделить выборку.
Необходимо выявить преступления, которые локализованы в определенных районах/улицах и те, которые размазаны ровным слоем. Возможно, можно будет найти и другую переменную, по которому преступления буду как размазаны равномерно, так и иметь островки сосредоточений.
Еще карты преступлений можно найти в более высоком разрешении (возможно это поможет с новыми идеями, на Гитхабе выбрать представление Raw и смотрет в исходном масштабе):
Преступления по районам, можно увидеть как координаты не соответствуют району. То же, в более мелких деталях, где можно увидеть сетку.
Код этого документа доступен в ГитХабе: edaSFC.Rmd
NON-CRIMINAL и безКарта всех событий
Карта без `NON-CRIMINAL