工作生活数目字生存

Kaggle实战系列之"San Francisco Crime

2019-07-01  本文已影响0人  askka
Online mapping tool of SFPD

There is a strong association between past and present criminal behaviour. (Nagin and Paternoster, 2000).
Future events are based on the past events, which has helped in the prediction of crime.(Johnson and Bowers 2004).

时间信息预处理

时间特征构建

\quad\,\,历史犯罪记录是犯罪预测的重要依据,在Kaggle的SF Crime Classification项目的源数据中提供了犯罪记录报告的时间戳。但大部分模型不能处理时间戳数据类型,因此需将时间戳 Dates 拆分为 Year、Month、Day 等新字段构建。
\quad\,\,按时间特征统计犯罪记录数的柱图如图 8 所示。

data_raw['Year'] = [x.year for x in data_raw['Dates']] #年
data_raw['Month'] = [x.month for x in data_raw['Dates']] #月
data_raw['Day'] = [x.day for x in data_raw['Dates']] #日
data_raw['Hour'] = [x.hour for x in data_raw['Dates']] #小时
data_raw['Minute'] = [x.minute for x in data_raw['Dates']] #分
data_raw['Week'] = [x.week for x in data_raw['Dates']]

\quad\,\,图中可见,逐年(Year)、逐月(Month)、逐天(Day)和星期(DayofWeek)统计的记录数差别不大。2015年由于只有半年的记录,因此数量明显减小,但这并不代表当年的犯罪锐减。同理,每月31日的数量明显小于其它日期。按小时(Hour)统计结果差异较为明显:发生在凌晨 5 点前后的犯罪记录最少,而晚上 18 点前后这是犯罪高发期。对每周而言,犯罪记录数并无明显区别,星期五的记录数略高于其它时间。这里只显示了所有犯罪记录总数的逐时汇总记录,如果按照不同犯罪类别分别统计,有可能会有其它规律被发现。

各类别犯罪记录时间序列

\quad\,\,参考文献《Case study report San francisco crime classification》中提到,2006 年旧金山警方对于'RECOVERED VEHICLE'和'VEHICLE THEFT'的定罪标准似乎有所变化。如图 9 所示,2003-2005 年期间没有'RECOVERED VEHICLE'的记录,这部分记录是合并在'VEHICLE THEFT'一起的。此外,查询'Descript'字段可见,描述中包含“RECOVERED”但不包含“STOLEN”,类似的记录共 11062 条,接近 2006年之前 Category=='VEHICLE THEFT'所有记录共计 25452 总数的一半。有理由怀疑,这部分记录是否修改将其'Category'由'VEHICLE THEFT'改为'RECOVERED VEHICLE'值得考虑。而且从时间曲线可见,2013 年 12 月 29 日后'RECOVERED VEHICLE'的定罪似乎又有较大的变化,数据集中没有该日期以后的记录。
\quad\,\,按照参考文献的说法,数据集中的('VEHICLE THEFT', 53781)有一部分(2006 年以前)应为('RECOVERED VEHICLE', 3138)。

'VEHICLE THEFT' 与 'RECOVERED VEHICLE' 时间序列曲线
利用Pandas提供的时间序列分析的函数,如resample()等可对时间序列进行汇总分析。
指定时间点7日内的犯罪记录数统计示例
按类别逐季度的时间序列折线图的代码及结果如图所示。从图中并不能发现明显的趋势或周期;此外,有部分类别的数据,其时间序列曲线存在较为明显的突变。这些陡然上升或下降或许意味着执法政策的变化,亦或有其它值得引起注意的细节。

Catbydates=data_raw[['Dates','Category']].pivot_table(index=['Dates'],columns=['Category'],aggfunc=len,fill_value=0)
Catbydates.index=Catbydates.index.to_period('D')
cols = data_raw['Category'].value_counts().index.tolist() #按出现频数降序排列
Catbydates['TREA'].resample('Q',how='sum').plot(); #按季度汇总绘制'TREA'折线图

绘制各犯罪类别的时间序列图 按类别**逐季度**的时间序列折线图
参考资料

All Tomorrow's Crimes: The Future of Policing Looks a Lot Like Good Branding
Nagin D S, Paternoster R. Population Heterogeneity and State Dependence: State of the Evidence and Directions for Future Research[J]. Journal of Quantitative Criminology, 2000.
Bowers K J, Johnson S D, Pease K, et al. Prospective Hot-Spotting: The Future of Crime Mapping?[J]. British Journal of Criminology, 2004, 44(5): 641-658.
Case Study Report: San Francisco Crime Classification

上一篇 下一篇

猜你喜欢

热点阅读