Boston Şehri Suç Analitiği (Python & Tableau)

SALOME SONYA LOMSADZE
6 min readApr 8, 2021

Boston Şehri 2015–2018 Suç Verisi

Analyze Boston tarafından sağlanan veri setinine bu linkten ulaşabilirsiniz. Veriler üzerinde Boston bölgesindeki adli kayıtları inceleyerek ileride işlenecek suçlarla ilgili tahminler yapmaya çalışacağım. Cevaplandırmaya ya da en iyi çözümü bulmaya çalışacağım sorular şunlardır:

  1. En yaygın suç türleri nelerdir?
  2. Farklı suç türleri en çok nerede meydana gelir?
  3. Suçların sıklığı gün içinde, hafta içinde ya da yıl içinde değişiyor mu?
  4. Bir suçun nerede ve ne zaman işleneceğini tahmin etmek mümkün mü?
  5. Şehir genelinde farklı suçların dağılımı hakkında ne söyleyebilirsiniz?
  6. Polis merkezleri için en iyi yerler neresidir?

Soruların gizli nesneleri Regional Forecasting ve Transition Optimization. Aklınıza gelebilecek tüm sipariş uygulamaları ve siteleri analizlerini bu iki yaklaşıma dayalı yapmaktadır. Veri analizi ve Machine Learning kısmında Python dilinden, harita görselleştirme ve TS Forecasting kısmında ise Tableau’dan yararlanacağım. Şimdi kendi yaklaşımlarımı sıralamaya başlıyorum.

VERİ ÖN İŞLEME

Zamanınızı, enerjinizi ve hayattaki mutluluğunuzu alan bu bölüme geçmeden neler yapacağız ondan bahsedeyim:

  • Boş değerler var mı? Çok yüksekse discard et, az ise mode() kullan.
  • Datetime bilgisi varsa parse_dates ile okut.
  • Enlem ve boylam düzgün girilmiş mi? Eksiksiz mi? Kontrol et.
  • Kimlik ya da vaka bilgilerinin unique olduğuna dikkat et. Unique değilse tekrarlıyorsa çıkar.
  • Veriler aylar ve yıllar boyunca nasıl dağılmış? Eksik aylar varsa son ve ilk ay yıl değerleri analizleri yanlış yönlendirmene yol açabilir. Buna dikkat etmelisin.
  • Kategorik veriler için büyük küçük harflere dikkat. Hepsini standartlaştır.

İlk gözlemler:

  • Motorlu taşıt kazalarına müdahale en yaygın suçtur, en nadir görülen ise malın alınmadığı hırsızlık (burglary) vakasıdır.

not: Burglarly’nin sözlük anlamı ev veya benzeri kapalı yerlere bir zorlama ile girilerek veya bir başkasıyla anlaşıp zorla, kırarak girilip yapılan hırsızlıktır. Larcency’de böyle bir durum yoktur.

  • En çok suçun işlendiği ilçe B2'dir.
  • En çok suçun bildirildiği alan “111”.

Verilerimiz artık işlenmeye hazır ve nazır durumdadır. Soruları cevaplamaya başlayayım.

  1. En yaygın suç türleri nelerdir?

Motorlu taşıt kazaları ilk sırada, ikinci ve üçüncü sırada ise hırsızlık ve tıbbi yardım yer almaktadır. Tıbbi yardım suç kaydı anlamına gelmese de soruşturma (investigate person) gibi adli bir kayıttır.

Not: “threats to do bodily harm” suç grubu normalde diğer bir çok suç tipleriyle beraber “others” grubunun içinde gizleniyordu. Others yerine Offense Description bilgilerini doldurmak işe yaramışa gözüküyor (df.loc kullanıldı).

2. Farklı suç türleri en çok nerelerde meydana gelir?

Görselleştirme için önce bir pivot table hazırlayalım:

86 ayrı offense grubu olduğu için en sık rastlanan ilk 40 grubu görselleştirmeyi tercih ettim.

Motorlu taşıt kazaları B2'de, hırsızlık D4'te, taşıtlardan mal çalınması D4'te, otomobil hırsızlığı B2'de(buraya park etmeyin), taciz B2'de, kayıp raporları B3'te, dolandırıcılık ise A1'de yoğunlaşmış gözüküyor.

3. Suçların sıklığı gün içinde, hafta içinde ya da yıl içinde değişiyor mu?

2015-06-15 00:00:00
2018-09-03 21:25:00

2015 ve 2018 yılları verisi görüldüğü üzere eksik. sum() metoduyla değil mean() ile gruplandırıp görselleştirmemiz gerekiyor.

a) Yıldan yıla değişim:

  • 2016'dan 2017'e suçlarda artış gözlüyoruz.
  • 2015 ve 2018 için bir şey diyemiyoruz çünkü veriler eksik, aynı zamanda Haziran 2015 ve Eylül 2018 kayıtları normale göre düşük gelecektir bu yüzden bu iki zaman aralığını göz ardı etmeliyiz. Sonrasında ise saatlik, günlük, haftalık ve aylık vaka ortalamalarına göre bu yılları standardize etmeye çalışabiliriz. Örneğin: aylık ortalama vaka sayıları yıldan yıla nasıl değişmiş? Bunun için Pandas Grouper methodundan yararlanacağım.

Aylık ortalama vaka sayısı:

Günlük ortalama vaka sayısı:

2016 ve 2017 yıllarında artan aylık ve günlük ortalama vaka sayısı, 2018 yılında 0.03 oranında azalma göstermiş. 2017'nin Kasım ayında mayor seçimleri olduğunu biliyor muydunuz? Organize suç örgütlerinin seçim sonuçlarına olan etkisini peki? Ya da iyi yönünden bakıp halk iyi bir seçim yapmış da diyebiliriz. Çok fazla parametre var.

b) Aydan aya değişim

Aylık ortalamaya dahil edilmeyecek tarihler Haziran 2016 ve Eylül 2018.

En yüksek ortalamalara sahip aylar Mayıs, Haziran ve Eylül aylarıdır. En düşük ortalamaya sahip aylar ise Ocak, Şubat ve Aralık. Yaz ayları en yüksek suç ortalamasına sahiptir.

c) Haftalık değişim

Suç ortalamaları Cuma günü en yüksek, Pazar ise en düşük.

d) Saatlik değişim

16:00 ile 18:00 aralığı suçların en yoğun toplandığı yer. Peak noktası ise saat 17:00. 04:00–05:00 en düşük yoğunluklu saatler. 18:00'dan sonrası giderek azalıyor, gece yarısında ise hızlı bir artış var.

3. Bir suçun nerede ve ne zaman işleneceğini tahmin etmek mümkün mü?

a) Machine Learning

Tahmin algoratiması olarak DecisionTree kullandım.

Training accuracy: 0.46
Test accuracy: 0.456

Model vakaların neredeyse yarısını tahmin edebildi. Gini indexi kullanmak performansı biraz da olsa arttırdı.

Gini Training accuracy: 0.467
Gini Test accuracy: 0.461

Özellik önemi:

new_df.head()

Suç tahmini için en önemli feature ‘latitude’.

b) Time series forecasting (Tableau):

c) Saat ve suç ilişkisi:

Şöyle bir pivot table oluşturdum. Analiz için vaka bazında yoğunlaşan saatler gerekli olduğu için satır boyunca her bir grup için yüzdelik dönüşüm uyguladım.

ax = sns.heatmap(table2, vmin=20, vmax=100) ile bir heatmap çizelim. Saat ile suç arasında bir yargıya ulaşmaya çalıştığım için vaka oranını en az %20 olarak çizdirdim.

İnsan kaçakçılığı (gönülsüz ve esaret ile) vakalarının yarısı sabah 6 aralığında diğer yarısı ise akşam 20:00 aralığında yapılmış. Biyolojik tehdit 10–13:00 aralığında. 14:00 ise zorla/planlı eve girme vakalarının neredeyse tamamı gerçekleşmiş, 17:00'da ise gözaltından kaçma vakaları yoğun olarak yaşanmış. Kapkaranlık alan gösteriyor ki çoğu vaka türleri için saat ayırt edici bir özellik değildir.

d) Gün ve suç ilişkisi

Toplanma ihlaleri Cumartesi, zimmete para geçirme Pazar, seyyar satıcı ihlaleri Salı günleri yoğun bir şekilde gerçekleşmiş.

Heatmap’leri ay, gün ve saat bazında çizdirdiğimizde yüksek yoğunluklu alanların grafiğin en alt katmanında ortaya çıktığına şahit olduk. Bunun nedeni bu spesifik vakaların aynı zamanda en az sıklıkta görülmesi olabilir. Genel olarak yüksek sıklıkta gerçekleşen vakalar için spesifik bir saat, gün ya da ay olmadığını söyleyebiliriz. Daha genel çerçeveden bakabilmek için ilçe-ay-gün-saat oranlarını da görselleştirebiliriz.

4. Boston polis gücünün optimal boyutunu tahmin etmek mümkün mü?

Polis gücünün optimal boyutunu aşağıdaki heatmap üzerinden tahmin edebiliriz.

a) İlçe ve saatlik % vaka sayısı

b) İlçe ve günlük % vaka sayısı

c) İlçe ve aylık % vaka sayısı

5. Şehir genelinde farklı suçların dağılımı hakkında ne söyleyebilirsiniz?

Distribution yani dağılım sorduğu için veri kümesini standardize etmeyi tercih ettim. D4 ve A1 hariç diğer tüm ilçelerde vakaların çoğunu kazaları oluşturuyor. Vaka türlerinin dağılımında çok büyük farklılıklar yoktur.

İlçe bazında en yüksek ilk üç vaka grupları:

B2: motorlu taşıt kazaları,sözlü tartışmalar, tıbbi yardım

C11: motorlu taşıt kazaları, motorlu taşıt kazaları, tıbbi yardım

D4: Hırsızlık, motorlu taşıt kazaları, soruşturma

B3: motorlu taşıt kazaları,sözlü tartışmalar, soruşturma

A1: Hırsızlık, motorlu taşıt kazaları, basit saldırı

vs. gidiyor.

6. Polis merkezleri için en iyi yerler neresidir?

Vakaların yoğunlaştığı alanlar en iyi yerlerdir. Yazar burda bizden density plot çizmemizi istiyor. Peki bu alanlar neler? Tableau ile hazırladığım Dashboard üzerinde büyük baloncuklu alanlar son vakaların en yüksek olduğu yerleri temsil eder.

Tableau çalışmasına şuradan ulaşabilirsiniz.

Önerileriniz ve sorularınız için bana Linkedln’den ulaşabilirsiniz.

--

--

SALOME SONYA LOMSADZE

Sr. Customer Analytics , BI Developer, Experienced in SQL, Python, Qlik, B.Sc in Chemistry at Bogazici University https://github.com/sonyalomsadze