Gtd全球恐怖主義可視化分析
Gtd全球恐怖主義可視化分析 1
一. 資料來源與資料處理 2
1. 資料來源 2
2. 資料處理 3
二. 資料存盤以及持久化存盤技術的選擇 4
1. 資料庫選擇 4
2. 資料庫設計 4
3. 持久化技術 5
三. 后端開發 5
1. 技術說明 6
2. 可視化平臺框架設計 6
3. 后端設計與實作 7
(1) maven進行的包的管理 7
(2) 實作資料庫的連接 8
(3) 代碼實作 8
(4) 運行結果 9
四. 前端開發 9
1. 技術選擇及開發感想 9
2. 可視分析 10
(1) 整體分析 10
(2) 關系分析 11
(3) 時間維度 12
(4) 地理分布可視 14
基于K-Means演算法的地理上分布可視 14
KNN最近鄰演算法 14
本可視化專案基于全球恐怖主義資料庫進行資料可視分析,對1970年到2017年世界各地恐怖主義案例的資訊進行資料處理、資料存盤、資料挖掘、資料展示的程序,
一.資料來源與資料處理
1.資料來源
網址為:https://www.start.umd.edu/gtd/,在這里對資料進行下載,本專案采用的資料為:1970年到2017年世界各地恐怖主義案例的資訊,
|
1.1 gtd網站 |
資料含義說明:在附件2 GTD全球恐怖主義資料庫變數說明.doc
2.資料處理
簡單的對資料進行處理,首先簡單的對資料的缺失值進行查看,發現資料的缺失值情況良好,
但是觀察資料的資訊可以發現資料的維度較大,并且資料的顆粒度比較細,所以在這里我們需要對資料進行壓縮來方便資料的展示以及資訊的挖掘,
資料簡單處理完之后,將最后的資料匯出,結果保存在:gtd_clean1.csv,這是我們第一步得到的資料,也是后邊入庫、挖掘、展示的基礎,
|
|
|
|
二.資料存盤以及持久化存盤技術的選擇
1.資料庫選擇
在資料庫的選擇上,考慮到我們的資料模式比較具備結構的特性,這里選擇使用面廣的MySql資料庫,來存盤我們的恐怖主義事件資料,
2.資料庫設計
首先現建立gtd資料庫以及表來對資料進行存盤,接下來,針對資料,設計表的結構以及欄位型別等,
|
|
|
|
|
|
整個程序的sql陳述句在:gtd.sql中,
3.持久化技術
為了使資料模型轉換為存盤模型,針對資料物件進行有:保存、更新、洗掉、查詢等的基本操作,這里使用持久化技術來實作,然而,持久化技術眾多:有比較流行的mybatis、jdbc等,在這里結合我后端使用的springboot框架,選用配合其使用的springData家族的JPA技術來進行持久化存盤,當然mybatis也是一個非常不錯的減少耦合的方法,具體使用會在后面的后端開發中進行介紹,
三.后端開發
1.技術說明
在整個平臺的設計框架上主要采用以下配置:
IntelliJ IDEA:
jdk 1.8.0_271
Maven 3.6.1
MySQL 5.1.49
Vscode:
Vue Cli 4.5.12
Vue 2.5.2
Element-UI 2.15.1
dataV +
AntV
D3
2.可視化平臺框架設計
整個可視化平臺實作了前后端分離,后端向前端傳json的形式進行資料傳送回應;前端向后端發送請求后等待回應,整個后端是在IDEA環境下進行開發的,使用的是spring boot框架,并結合Maven進行包的管理,使用了JPA持久化存盤技術,
在前端當中是在Vscode環境開發的,使用的是Vue的腳手車,并用element UI進行布局,在整個布局的邊框設計上使用的是dataV,在畫圖的程序中使用的是AntV以及D3進行繪圖,
下面是本平臺采用的技術堆疊:
|
|
|
|
3.后端設計與實作
1.maven進行的包的管理
|
|
2.實作資料庫的連接
|
|
3.代碼實作
在后端的開發中符合當前的開發邏輯,從Entity物體層到DAO層的資料訪問層,再到將service服務層與controller控制層的結合,符合資料的存盤、查詢、修改等操作的業務邏輯,
|
|
|
|
4.運行結果
|
|
|
|
四.前端開發
1.技術選擇及開發感想
在前端的開發中使用的vue進行開發,其中繪制圖主要使用了AntV以及D3,AntV是以前我從沒有使用過的庫,抱著學習的目的在這次的開發中我選著了它,最后我還是堅持用它完成了幾乎大部分的圖形,當然有一部分的基于演算法的圖形需要根據需求去定制,這讓我不得不使用D3去畫圖,
在布局的設計中,我使用的是element UI進行布局分化,但是其效果并沒有想象中的那么好,感覺沒有基于傳統模式開發使用bootstrap進行分割的效果好,這讓我在布局方面浪費了很多時間,在邊框的選擇上,我選擇的是dataV組件中的邊框裝飾,其效果以及使用方式上都是極為美觀、方便,
2.可視分析
由于資料維度較大,資料內容較多,所以,在可視化平臺的設計上,我分成4個部分對資料進行展示、分析與預測,
其中第1個部分是整體分析,對整體進行分析,對資料有一個大致的感官與想法,對資料的規模、資料量、資料特點、資料的分布有一個較為大致的印象,從而在后面的深入分析中,作為突破口、為下一步深入摸索打好基礎,
第2個部分可以說是第1部分整體分析的深入,主要分析的是各個恐怖事件之間的關系,判斷事件成功的因素、數量分布地域的特點或者各個事件發生之間的關系,在這里基于第1部分的可視化結果,對部分重要的資料重點挖掘,分析其特點,
其中第3部分是對整個時間維度與地理單位中進行分析,為探索出一定的規律,并基于自己的數字指標比較,進行目標的分析,
第4部分是對整個的地理空間的分布可視化,在這里使用了演算法來判斷以及預測自己的猜想,主要使用了kmeans進行模式識別,將恐怖襲擊分成幾個類,判斷其是否能夠構成某些地理群體,使用kNN演算法,對預測全球在地球的某個地方發生恐怖襲擊的攻擊型別以及目標型別,
1.整體分析
第一部分中分成五個模塊進行資料展示,
左上角的用于展示恐怖襲擊持續時間長短的餅圖,可以了解在全世界范圍內的恐怖襲擊呈現時間短的特點,幾乎百分之97以上的恐怖襲擊時間都是不超過24小時的,右上角的Circle Packing用來展示恐怖襲擊事件發生在不同國家的次數,在這里我們只展示了發生次數超過300的國家,可以通過圓圈的大小來判斷,Iraq是發生恐怖襲擊最多的國家,
左下角是折線圖, x軸是時間、y軸表示的是數量,表示的是隨著時間的流逝,每一年世界各地總共的死亡人數,根據圖可以看出總死亡人數的趨勢總體上在上升,期間呈小部分波狀起伏,右下角是刻畫了數量的詞云圖,表示的是從1970年至2017年,47年來參與恐怖襲擊的恐怖組織,字體的大小表示恐怖組織參與的恐怖襲擊次數最多,由圖可以很清晰的看出Taliban組織參與的恐怖襲擊次數最多,
中間是一副點密度圖,每一個點表示的是一次可以恐怖襲擊,由點密度圖可以很好的表示從1970年至2017年各地區總共發生的恐怖襲擊的分布情況,
通過第一部分的分析讓我們對資料有了直接上的感官,但是對資料的分析層次與程度還不夠,需要更深層的挖掘與探索,
|
4.1 整體分析 |
|
4.2整體分析 |
2.關系分析
第二部分是對第一部分的深入分析,主要是針對第一部分的關鍵、主要資料進行可視化與探索性分析,
圖分為五個主體,其中左上與左下圖,是具有承接的關系的,在第一部分中的幾個重要國家,我們分析了重要國家是否為犯罪團伙打擊物件以及各個區域的死亡人數的統計,在程度上比第一部分更細了,右上角是一個桑基圖,重點選取了五個發生恐怖襲擊較多的國家(Iraq、Pakistan、Afghanistan、India、Thailand),從四個維度:國家、區域、襲擊成功或者失敗、襲擊物件型別(country, region, success, targtype)進行分析,通過此圖可以很清楚看到各個國家的被恐怖襲擊的成功或者失敗情況、以及襲擊物件的分布等規律,右下角與中間的圖都表示著關系,其中右下角的關系圖表示的是不同恐怖襲擊性質下,各個事件的關系,
中間的3D關系圖中,每個節點表示的是一個事件,每一個事件都有唯一的ID號,ID號由年、月、日以及該日發生的事件基數表示;與此同時,每個節點還代表著一個恐怖襲擊事件內容以當日報道的總結的內容呈現;顏色表示發生在不同區域的恐怖襲擊事件,節點的大小表示其度的大小,一件事與其他恐怖襲擊事件相關的越多,其節點的大小越大,
|
|
3.時間維度
第三部分更偏側于挖掘,我想基于探索的目標,通過使用可視化的方式來進行深層次的分析,
第三部分由兩個模塊構成,其中右側為等值線圖,探索的目標是:從Weapon Type、Attack Type、Target Type三個主要方向,并針對其各個子項如:Weapon Type方向中可以選取Explosives、Firearms等武器型別,基于時間維度展示了各個區域從傷亡人數的大小的分布,
左側為散點圖,它有3個數字屬性:
X: 死亡,
Y: 受傷,
大小: 計數
使用散點圖通過數字指標比較分類屬性(例如Weapon Type),由于這些屬性中的許多屬性在區域甚至國家之間的比較有所不同,因此增加了按地理單位進行匯總的功能,探索的目標是:
選定的地理單位中找到
- 最致命的武器型別
- 最有效的攻擊型別
- 最脆弱的目標型別
|
|
|
|
|
|
4.地理分布可視
第四部分主要就是在于預測兩字,在本內容中會采用演算法結合可視化的方法對預測結果通過通過視覺圖案進行較為直觀的展示,
基于K-Means演算法的地理上分布可視
猜想,是否一定區域的恐怖組織構成一定地理群體,
使用K-Means用于分析的模式識別,將恐怖襲擊分為幾類(一個想法),恐怖襲擊是否構成某些地理群體,
探索的目標是:通過視覺圖案找到不同恐怖襲擊的地理群體,
在這里可以根據不同的K值,比較分類屬性來尋找不同恐怖襲擊的地理群體,
KNN最近鄰演算法
k近鄰演算法,是一種分類回歸演算法,使用kNN我們能夠根據它的(k)鄰居對地球上的任何點進行分類,
這里的探索的目標是:預測如果全球某個地方發生恐怖襲擊,那么其恐怖襲擊的攻擊型別、目標型別是什么
|
|
|
|
|
|
|
|
|
|
|
|
視頻鏈接:
gtd全球恐怖主義可視化分析-CSDN直播
僅供交流,轉載請注明來源,謝謝!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423965.html
標籤:其他
上一篇:大資料Spark、Mr、Impala使用parquet、textfile、snappy等不同資料存盤編碼和壓縮的效率實測對比以及專案選型



























