06.11 實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

翻譯:白靜

校對:閔黎

本文約2200字,建議閱讀8分鐘。

本文為你介紹如何通過犯罪記錄應用監督學習及無監督學習將暴力案件正確分類。

介紹

很高興知道Data Science的應用超越了商業場景和企業盈利的目的。最近我有幸承擔了全國安全社區網絡的一項非盈利項目,使我能夠親身體驗應用機器學習的方法來服務我們的社區。紐約州約翰傑伊刑事司法學院的研究部門分享了地方檢察官提供的的城市數據,由於簽署了不公開協議,所以我不會列舉這些數據。

研究焦點是親密伴侶暴力案件,併為此類案件提供外展計劃。主要問題在於,從這麼多不同的案例記錄中,找出他們正在尋找的案例是非常低效的,因此我們的目標是開發一種更簡單的方法來解決這一難題。

無監督學習

數據跨度是從2015年到2017年。DA(地方檢察官)數據包含描述以前案件詳情的特徵,例如受害者/嫌疑犯姓名,犯罪地點,可疑行為等。以其原始形式記錄的數據沒有符合客戶對“親密”的確切定義的標籤,但有列可以指出它。

然而,由於這些詳細的信息是針對這些案件給出的,所以我首先會盡我所能使用一個無監督的學習方法來總結數據。我決定根據所有記錄中的可疑行為對案件進行聚集。 我的目標是根據嫌疑人的表現的相似性來聚集案件。如果可以創建行為概況,那麼我們就可以根據它們屬於哪個集群,更有效地給嫌疑犯分配各種外展活動。

1. PCA數據轉換

有39個特徵描述了我們可以跟蹤的嫌疑犯的行為。這些包括“受損”,“推動”和“投擲物品”等動作。 唯一的問題是,這些是二進制特徵,處理它們可能有點棘手。

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

經過多次失敗的系統聚類實驗以及使用不同相異性度量的測試後,我發現在使用主成分分析法對變量進行轉換之後應用K均值聚類產生了解釋度非常高的聚類。

整個過程可以總結在下圖中:

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

通常情況下,我們認為通過PCA選擇解釋足夠差異的主要成分的數量,是降低維度的一種手段。 數據降維的情況如下所示:

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

但是,我們的目標不是要減少我們擁有的特徵量,我們的目標是將它們轉換為我們可以聚類的數字數據。為此,我們將所有39個主成分得分(又稱特徵向量),保留100%的原始方差並對它們進行聚類。

2. 聚類

K均值聚類中的目標函數是最小化群內差異。 看看陡坡圖,5、6個集群看起來是正確的。 在對兩者進行試驗之後,我得出結論認為5個集群最具可解釋性。

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

3. 集群檔案

在為每個觀察分配一個聚類標籤並將它們與原始數據集匹配後,描述它們就變得非常容易。 回顧二進制數據,我們可以簡單地將每個特性和每個集群中的所有1加起來。 具有較高總和的特徵在描述該集群時將被賦予更多權重。下面是集群前3個最突出的特徵的例子,這些特徵被描述為“在影響下相遇”:

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

根據上面的示例分析,最終集群看起來像這樣! 每個案件將被標記為屬於這些集群中的一個,並且每種情況下的嫌疑人都被假定為採用其中一個檔案。

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

監督學習

在開始任何監督學習方法之前,我首先需要一個可以幫助指導機器學習的功能。重申一下,我們的目標是能夠對案件進行分類,不管它是否親密,因為發現並非所有案件都被正確分類。

1. 特徵工程—標記“親密”

全國安全社區網絡將“親密關係”定義為目前或以前的任何密切關係。 這包括結婚,約會或者一起生孩子。使用數據集中的各種列,我通過定義python函數設計了監督功能“親密關係”:

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

2. 選擇一個模型

現在我已經對每個案例做了標記(“親密”/“非親密”),我需要建立一個分類模型。出於多種原因,我決定採用Logistic迴歸模型,對多項式樸素貝葉斯(Multinomial Naive Bayes)分類器進行建模:

  • 由於訓練規模較小,生成的樸素貝葉斯(Naive Bayes)模型將超越本文Andrew Ng所述的判別性Logistic迴歸模型;
  • 樸素貝葉斯(Naive Bayes)及其獨立特徵的假設使得模型更簡單,更普通,因此變體更少;
  • 樸素貝葉斯(Naive Bayes)因其用於文本數據和垃圾郵件檢測而名聲鶴唳。

增加最後一點非常有趣的,提供的數據集包含了現場警官的文字敘述。 我們可以通過警官敘述的詞語選擇來檢測親密關係嗎?我決定找出答案。

3. 自然語言處理

為了運行樸素貝葉斯分類器(Multinomial Naive Bayes classifier),我需要首先清理文本數據。 在Python中使用NLTK模塊,採取了以下步驟:

  • 標記敘述(使用RegexpTokenizer)
  • 刪除無用詞(使用無用詞)
  • 應用詞形(使用WordNetLemmatizer)

由此產生的敘述看起來像這樣:

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

處理完文本之後,我將標記化和詞元化的敘述轉換為一個交易對象,其中每個單詞都是自己的特徵,每一行都是敘述或“文檔”。 這也可以被稱為“文檔術語矩陣”。

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

4. 降維

文檔術語矩陣生成了3,805個特徵。 為了減少這一點,以提高我們的模型的準確性,不夠頻繁的特徵被刪除。通過使用驗證集合,我得出結論,刪除所有出現少於兩次的單詞就足夠了。這已經將維度降低到1861個特徵。

5. 調整多項式樸素貝葉斯(Multinomial Naive Bayes)

多項式樸素貝葉斯分類器(Multinomial Naive Bayes classifier)默認將alpha設置為1. Alpha是一個平滑參數,用於處理出現在未在訓練集中訓練的保留集中的單詞。 使用GridSearchCV,alpha被調整為2.53。

6. 模型評估

在用α= 2.53重置多項式樸素貝葉斯(Multinomial Naive Bayes)並將數據分解成訓練集和測試集後,結果出人意料地好。

訓練精度:84%

測試精度:81%

混合矩陣如下:

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

7. 結論

總之,該模型的真陽性,即敏感性為80.4%(82 /(82 + 20)),該模型的真陰性又稱特異性為82.4%(14 /(3 + 14))。兩者都遠超我的預期,由於敘述為許多不同的警官所寫,而每個警官都有自己的寫作風格。但是模型顯示,無論警官是誰,處理親密案件時,都會傾向於頻繁地使用某些關鍵詞。這才是該模型性能的關鍵。

尾語

希望上述模型能夠被我們的社區廣泛使用。聚類可以非常有幫助,特別是當我們沒有足夠的數據為我們的案例提供標籤時。它可以讓我們快速瞭解嫌疑人是什麼樣的(實際上我更願意稱他們為病人)。 鑑於我們確實有足夠數據的幸運情況,樸素貝葉斯分類器可以大大減少將潛在患者篩選到治療計劃所需的時間。早期發現早期干預可以減少我們社區中的暴力案件,這只是數據科學可以做的許多有價值的事情之一。迫不及待想要看看還有什麼事情可以做!

關於作者

Kenny Moy,Kenny在為市場營銷,醫療保健,房地產和公共服務等行業提供數據驅動解決方案方面有多年經驗。除了機器學習外,他熱愛頓悟時刻,講故事,以及數據科學的創造性。

原文標題:Clustering Criminal Behavior and Classifying Intimate Partner Violence

原文鏈接:https://nycdatascience.com/blog/ student-works/clustering-criminal-behavior-and-classifying-intimate-partner-violence/

譯者簡介

實例|利用犯罪記錄聚類和分類暴力行為(附步驟解析)

白靜,英語專業碩士在讀,愛好翻譯。希望能在數據派多多瞭解與大數據有關的知識,結識更多熱愛翻譯的朋友。


分享到:


相關文章: