1. 서 론
대한민국의 경제 성장과 도로 교통의 질적・양적 발전에 따라, 자동차 보급률이 증가하였다. 자동차 수가 크게 증가함에 따라, 교통사고 발생률이
증가하여 인적・물리적 피해로 인한 사회적 비용을 야기하고 있으며, 지속적인 문제가 되고 있다(1).
대한민국에서 교통사고로 인한 사망자 수는 최근 몇 년간 감소하였지만, 교통사고 사망자 수는 여전히 OECD 국가 중 상위권에 속한다. 이는 교통사고
대응 수준이 매우 낮은 편에 속한다는 것을 의미한다. 이에 따라, 대한민국 정부는 교통사고 발생률을 줄이고 교통사고에 대한 대응책을 개선함으로써 교통사고
사상자를 감소시킬 수 있는 종합 정책을 시행하였다. 아울러, 대한민국 정부는 정부 3.0 정책을 통해 교통사고 빅데이터를 수립하여 교통사고 문제를
해결하기 위한 연구를 적극적으로 추진하고 있다.
교통사고 데이터는 사고에 관련된 다양한 속성으로 구성되며, 데이터를 사용하여 교통사고 발생 시 상황에 따른 사고의 심각성에 대한 인과관계를 분석할
수 있다.
따라서, 본 논문에서는 기계 학습을 이용하여 교통사고 발생 시 차량 탑승자의 부상 정도를 예측하는 방법을 제안한다. 본 논문에서는 기계 학습 알고리즘으로
Decision Tree, Support Vector Machine, 그리고 Logistic Regression을 사용하였으며, Principal
Component Analysis(PCA), Linear Discriminant Analysis(LDA)를 사용하여 기계 학습 모델의 성능을 높이고자
한다. 연구에 사용된 데이터는 NASS-CDS 데이터베이스로, 이는 1979년부터 미국 교통부 교통안전국(NHTSA)에서 수집한 미국의 24개 주에서
매년 5,000건의 현장 사고를 분석한 것이다.
마지막으로, 본 연구의 성과는 각 모델의 성능을 비교, 분석하며, 교통사고 통보시스템에서 심각한 부상 발생을 예측하는데 사용할 수 있는지 여부를 확인한다.
2. 본 론
2.1 선행 연구
2.1.1 국내 연구
교통사고로 인한 사회적 문제가 최근 몇 년간 증가하는 추세를 보이고 있다. 이에 따라, 국내 교통사고와 관련된 빅데이터를 구축하고 부상 정도를 예측하기
위한 연구를 시작하고 있다. 하지만, 국내에서는 교통사고 예측 알고리즘에 대한 연구가 많이 진행되지 않았고, 구축된 국내 공공데이터가 부족하여 연구에
활용하기 어렵기 때문에 일부 미국 데이터를 사용한 연구가 진행되고 있다.
이은정의 연구(2)는 미국의 GES 2008 교통사고 데이터를 6단계로 분류한다. 데이터 불균형 문제를 해결하기 위해 Under- sampling 기법을 사용한다.
그리고 예측 된 데이터는 one-and- the-rest 기법을 사용하여 제외되었으며 데이터는 다음 등급을 예측하는 방법을 사용하여 분류한다. 상해
등급을 예측하는 알고리즘은 Artificial Neural Network와 Decision Tree를 결합한 앙상블 모델을 사용하여 구성한다.
주영지의 연구(3)는 국내 TAAS(Traffic Accident Analysis System)에서 제공받은 2012 ~ 2015년 서울특별시, 경기도 일대와 광역시에서
발생한 약 3000여 개의 교통사고 데이터를 활용하여 6단계의 상해 등급을 분류한다. 본 연구에서 사용한 데이터는 상해 심각도가 낮은 데이터는 많고,
높아질수록 분포되어있는 데이터의 수가 매우 적어지는 데이터 불균형 문제가 존재한다. 따라서, 각 단계의 데이터 개수가 불균형하여 발생하는 학습상 문제를
해결하기 위해 기존 데이터에서 피해자 상해 심각도의 모든 클래스에 대한 분포가 비슷한 비율이 되도록 20\%로 sampling 한다. 또한, 두 가지
예측 모델의 학습 데이터에 연관규칙 학습기법인 FP-Growth 알고리즘을 이용하여 교통사고 상해 심각도와 연관된 패턴을 추출 및 학습하며, 두 데이터의
연관된 패턴에 가중치를 부여한 하이브리드 모델을 구축하여 교통사고 상해 심각도를 예측한다.
홍성은의 연구(4)는 국토교통부 교통안전공단의 교통안전정보관리시스템(TMACS)의 2011 ~ 2013년 강원도 교통사고 데이터를 사용한다. 본 연구에서는 Up-sampling
기법을 기반으로 한 One-VS-All(OVA) 기법을 사용하고 CART Decision Tree 알고리즘을 결합한 하이브리드 모델을 구축하여 상해
등급을 예측한다.
2.1.2 국외 연구
외국에서는 1997년 이후 교통사고 데이터 분석을 통한 탑승자의 부상 등급 예측이 응급조치 분야 및 적절한 운송/의료 기관 결정에 도움이 될 수 있다는
가능성에 주목했다.
Kusano et al.의 연구(5)는 2002 ~ 2011년 NASS-CDS 데이터의 사고 인자를 정리하여 Delta V, 손상 면, 사건 수, 벨트 사용 여부, 차체 유형 등을 사용한다.
예측 결과로는 상해 등급을 나타내는 AIS(Abbreviated Injury Scale Level)를 사용한다. 본 연구에서는 상해 등급을 분류하기
위해 Random Forest, AdaBoost, Naive Bayes, Support Vector Machine, K-nearest neighbor
알고리즘을 사용한다.
Douglas W. et al.의 연구(6)는 1999 ~ 2008년 NASS-CDS 데이터베이스의 속도 변화, 안전벨트 사용 여부, 차량 유형 등과 같은 데이터를 추출하여 사용한다. 상해
등급을 예측하는 알고리즘으로 Multinomial Logistic Regression을 사용하며 범주화 된 ISS(Injury Severity Score)를
결과로 한다.
Jeffrey et al.의 연구(7)는 1995 ~ 2001년 NASS-CDS 데이터와 1994 ~ 2002년 Crash Injury Research and Engineering Network
(CIREN) 데이터를 사용하여 상해등급 예측을 위한 모델을 학습한다. 학습 결과의 검증을 위해 2000 ~ 2001년 NASS-CDS 데이터를 사용하며,
상해 등급의 척도로 MAIS(Maximum Abbreviated Injury Scale Level)와 ISS(Injury Severity Score)를
이용한다. 상해 등급을 분류하기 위해 Logistic Regression을 사용한다.
2.2 Database
2.2.1 NASS-CDS
본 논문에서 상해등급 예측 모델에 사용한 NASS-CDS는 미국 교통부 교통안전국(NHTSA)이 경찰에 의해 보고된 자동차 교통사고 중 전체 교통사고를
대표할 수 있도록 지역, 사고차종, 사고유형에 따라 정리한 데이터베이스이다.
표 1. 입력 및 출력 데이터 범주
Table 1. Input & output data category
sas7bdat file
|
# of Input
|
# of Output
|
accident
|
The details of a crash
|
64
|
2
|
event
|
The components of a harmful event
|
gv
|
General vehicle information
|
oa
|
General occupant information
|
oi
|
Occupant injury information
|
ve
|
General information on the vehicle exterior
|
vi
|
General information on the vehicle interior
|
airbag
|
Describes all the airbags that can be identified in a vehicle
|
표 2. MAIS 코드
Table 2. MAIS code
MAIS code
|
Injury Grade
|
0
|
Not Injured
|
1
|
Minor Injury
|
2
|
Moderate Injury
|
3
|
Serious Injury
|
4
|
Severe Injury
|
5
|
Critical Injury
|
6
|
Maximum(Untreatable) Injury
|
7
|
Injured, Unknown Severity
|
9
|
Unknown If Injured
|
NASS-CDS 데이터베이스는 데이터의 유형에 따라 accident(사고의 세부 사항), event(유해 사건의 구성 요소), gv(차량 정보),
oa(탑승자 정보), oi(상해 정보), ve(차량 외관에 대한 정보), vi(차량 내부에 대한 정보), airbag(차량에서 식별 가능한 모든 에어백에
대한 정보)으로 나뉘며 *.sas7bdat 파일 형식으로 저장한다.
본 논문에서는 총 5년간(2011-2015)의 NASS-CDS 데이터베이스를 사용하여 약 45,000개의 데이터 셋을 구축한다. 구축한 데이터 셋은
기계 학습을 위해 입력으로 64개의 특징을 사용하고, 출력으로는 상해 등급 정도를 나타내는 MAIS 및 ISS를 사용한다.
MAIS는 표 2와 같이 0(상해 없음) ~ 6(최대 상해)의 7등급으로 상해 정도를 분류하고, ISS는 표 3의 각 상해 부위에 대한 상해 등급을 나타내는 AIS 코드를 이용하여 식(1)에 의해 구할 수 있다. ($r_{n}$: 가장 심한 상해를 입은 상위 3 부위)
표 3. AIS 코드
Table 3. AIS code
AIS code
|
Injury Grade
|
Death Probability
|
1
|
Minor
|
0
|
2
|
Moderate
|
1-2
|
3
|
Serious
|
8-10
|
4
|
Server
|
5-50
|
5
|
Critical
|
5-50
|
6
|
Maximal
|
100
|
2.2.2 Data encoding
원시 NASS-CDS 데이터베이스는 범주에 따라 결측 데이터가 존재하거나, 값이 문자 또는 문자열로 되어있는 경우가 있어 기계 학습 데이터로 사용하기에
적절하지 않다. 따라서 결측 데이터와 문자(열) 데이터는 표 4와 같이 인코딩 작업을 수행한다.
표 4. 데이터 인코딩
Table 4. Data encoding
Input
|
Missing data
|
-111
|
Categorical data
|
Numbering for each data
|
Noncategorical data
|
Using numeric data as is
|
Output
|
Missing data
|
Removing with input
|
Unknown injury grade
|
Removing with input
|
2 Class separation criteria
|
(See Table 5)
|
표 5. 상해 등급 재분류
Table 5. Injury grade reclassification
MAIS
|
Minor injury
|
0, 1, 2
|
Major injury
|
3, 4, 5, 6
|
ISS
|
Minor injury
|
$ISS<15$
|
Major injury
|
$ISS\ge 15$
|
입력 데이터에 대해 결측 데이터는 –111의 값으로 채우고, 범주 데이터는 각 데이터에 대해 숫자를 부여하였으며 데이터가 기계학습에 적합한 숫자 형식으로
되어있는 비 범주 데이터의 경우는 그 값을 그대로 사용한다. 출력 데이터가 결측 되었거나 상해 정도가 ‘알 수 없음’으로 기록된 경우 학습을 할 수
없으므로 해당 입력과 함께 제거한다.
2.3 기계 학습 알고리즘
본 논문에서는 교통사고 발생 시 취득할 수 있는 정보를 사용하여 상해 등급을 예측한다. 따라서 학습 시 입력 데이터에 대한 명시적인 정답을 함께
알려주어 예측을 위한 기준을 학습시키는 방법인 Supervised Learning 중 상해 등급을 분류하기 위해 Classification 알고리즘을
사용한다.
또한, 사용하는 입력의 수가 너무 많을 경우 발생할 수 있는 입력 차원 문제를 방지하고자 차원 축소 기법을 적용한다.
2.3.1 Decision Tree
의사결정 나무(Decision Tree)는 규칙을 사용해서 다양한 특성의 데이터를 특정한 목표 변수(Target Variable)에 대해 같은 값을
갖는 그룹으로 분류하는 방법이다(8). 이 방법은 그림 1과 같이 뿌리 노드에서 시작하여 부모 노드와 자식 노드를 재귀적으로 형성한다. 자식 노드를 생성하기 위해 선택되는 변수와 분리 기준은 데이터의 불순도를
최대한 낮게 나타낼 수 있는 것으로 선택한다. 불순도를 나타내는 값은 Gini index나 Entropy index를 사용할 수 있으며, 본 논문에서는
Gini index를 이용한다.
그림. 1. 의사결정 나무
Fig. 1. Decision Tree
그림. 2. 서포트 벡터 머신
Fig. 2. Support Vector Machine
2.3.2 Support Vector Machine
Support Vector Machine(SVM)은 패턴 인식, 자료 분석을 위한 방법으로 데이터를 분류할 수 있는 최적의 선을 찾는 기법이다(9). 이 기법은 Linear decision boundary를 가질 수 있다고 가정하고 margin을 최대화하는 hyper-plane을 선택한다. Support
Vector는 hyper-plan과 가장 가까운 point의 vector를 의미하며, 새로운 데이터 point가 들어왔을 때 Support Vector와의
내적거리만 구하는 방법으로 분류를 한다.
2.3.3 Logistic Regression
Logistic Regression은 종속변수가 이진(Binary) 혹은 그 이상의 집단으로 나누어진 경우 사용되는 회귀분석 방법(10)으로 각 집단에 속하는 확률의 추정치를 예측하고 추정 확률에 분류 기준 값(Cut-off)을 적용하여 특정 범주로 분류한다. 이 방법은 회귀(Regression)를
사용하여 선형 합에 대하여 임의의 함수를 적용하여 확률 값을 생성함으로써 분류(Classification)로 적용할 수 있다.
그림. 3. 로지스틱 회귀 분석
Fig. 3. Logistic Regression
2.3.4 PCA / LDA
Principal Component Analysis(PCA)는 데이터의 분포에 대한 주성분을 찾는 방법(11)으로 다수의 입력데이터에 Feature selec- tion 또는 Feature dimension reduction을 적용하기 위하여 사용한다. 이는
입력 데이터들 간의 관계를 나타내기 위해 데이터에 대한 공분산 행렬로 구한 eigen vector와 eigen value를 이용하는데, eigen
value 값이 큰 vector들을 선택하여 차원을 변화시킨다.
Linear Discriminant Analysis(LDA)는 데이터를 여러 Feature들의 선형 결합으로 표현하였을 때, 서로 다른 그룹(Class)을
잘 구분하는 기준을 찾는 방법(12)으로 PCA와 마찬가지로 다수의 입력데이터에 Feature selection 또는 Feature dimension reduction을 적용하기 위하여
사용한다. 이는 그룹 간 분산(Inter-Class Scatter)과 그룹 내 분산(Intra-Class Scatter)의 비율을 최대화하는 방식으로
Feature dimension을 축소한다.
본 논문에서는 입력으로 사용하는 데이터(Feature)의 수가 많으므로, 최적의 Feature들을 선택하는 PCA, LDA를 사용하여 다른 기계학습
알고리즘과 앙상블 구조를 만들어 성능을 개선하고자 한다.
2.4 실험 및 결과
2.4.1 실험 환경
본 논문의 실험은 Ubuntu 16.04 LTS 환경에서 Python을 사용하여 진행한다. Decision Tree, Support Vector Machine,
Logistic Regression, Principal Component Analysis(PCA), Linear Dis- criminant Analysis(LDA)
각각의 알고리즘과 앙상블 구조를 구축하기 위해 기계 학습을 위한 라이브러리인 Scikit-learn을 사용한다.
2.4.2 실험 결과
원시 NASS-CDS 데이터는 각 상해 등급에 대해 데이터의 불균형이 크기 때문에 학습이 제대로 이루어지지 않으므로 가장 적은 수의 상해 등급을 기준으로
down-sampling을 적용하였다. Down-sampling을 적용한 MAIS와 ISS에 대한 데이터 셋은 각각 약 10,000개와 6,500개의
데이터를 얻었으며 기계 학습에 적용하기 위해 train set과 test set를 7:3의 비율로 나누어 실험을 진행하였다. 상해 등급을 분류 예측하는
모델의 성능 평가를 위해서 정확도(Accuracy), 정밀도(Precision) 및 재현율(Recall)을 사용하였다.
표 6은 MAIS 상해 등급 분류 수에 따른 Decision Tree(DT)와 Support Vector Machine(SVM)을 적용한 결과이다. 먼저,
7 클래스는 0부터 6 사이의 원시 NASS-CDS 데이터를 그대로 적용한 경우이고, 3 클래스는 원시 NASS-CDS 데이터의 0을 ‘상해 없음’,
1, 2를 ‘경상’, 3, 4, 5, 6을 ‘중상’의 세 개의 범주로 재분류한 경우이며, 2 클래스는 원시 NASS-CDS 데이터의 0, 1, 2를
‘경상’, 3, 4, 5, 6을 ‘중상’의 두 개의 범주로 재분류한 경우이다.
표 6. 클래스별 정확도 비교
Table 6. Accuracy comparison by class
ML model
|
7 class
|
3 class
|
2 class
|
DT
|
54.61%
|
63.63%
|
76.56%
|
SVM
|
50.60%
|
59.40%
|
76.82%
|
입력의 차원이 크기 때문에 예측하려고 하는 상해 등급의 수가 많을수록 모호해질 수 있으므로, 정확도는 상해 등급을 분류하는 범주의 수가 작을수록 더
좋을 수 있다. Decision Tree와 Support Vector Machine으로 확인한 결과로 7 클래스와 2 클래스 사이에 20\% 이상의
정확도 차이를 확인할 수 있다.
표 7은 2 클래스일 때 MAIS와 ISS의 상해 등급을 예측하는 실험의 결과이다. 본 실험에서 이용한 기계 학습 모델은 Decision Tree(DT),
Support Vector Machine(SVM) 그리고 Logistic Regression(LR)이며, 각 모델에 PCA와 LDA를 적용한 결과도
함께 비교하였다.
2 클래스의 MAIS와 ISS 상해 등급 예측 결과를 보면 ISS가 MAIS보다 정확도 성능이 좋음을 알 수 있다. 또한, 기계 학습 모델별 비교를
통해 Logistic Regression, Support Vector Machine, Decision Tree 순으로 정확도 성능이 좋음을 확인하였다.
PCA와 LDA는 모델과 예측 대상에 따라 정확도 성능이 좋아지기도, 나빠지기도 하는 결과를 보여 성능을 향상시키기 위한 필수적인 요소가 아님을 보였다.
하지만 원래 DB에서 구축된 총인자 64개를급격히 줄여주는 영향을 나타냄을 확인할 수 있었다. Decision Tree의 경우 PCA와 LDA를 적용했을
때 성능이 하락했으며, Support Vector Machine과 Logistic Regression에서는 성능 향상 및 하락 정도를 표 7에서 확인할 수 있다. 정확도 성능은 LDA를 적용한 Logistic Regression에서 ISS를 예측하는 조합에서 가장 높았다.
표 7. 기계 학습 모델별 정확도 비교
Table 7. Accuracy comparison by class
ML model
|
MAIS
|
# of Features (MAIS)
|
ISS
|
# of Features (ISS)
|
DT
|
75.56%
|
64
|
78.76%
|
64
|
PCA+DT
|
72.60%
|
39
|
73.53%
|
40
|
LDA+DT
|
73.56%
|
1
|
76.22%
|
1
|
SVM
|
76.82%
|
64
|
78.86%
|
64
|
PCA+SVM
|
76.88%
|
39
|
78.66%
|
40
|
LDA+SVM
|
81.32%
|
1
|
84.35%
|
1
|
LR
|
81.55%
|
64
|
84.35%
|
64
|
PCA+LR
|
80.20%
|
39
|
83.32%
|
40
|
LDA+LR
|
81.41%
|
1
|
84.40%
|
1
|
표 8. 정밀도 및 재현율 비교(MAIS)
Table 8. Precision and recall comparison(MAIS)
Injury Grade
|
Precision
|
Recall
|
F1-score
|
Support
|
Minor injury(0)
|
0.82
|
0.81
|
0.82
|
1,732
|
Major injury(1)
|
0.81
|
0.82
|
0.82
|
1,732
|
Avr/Total
|
0.82
|
0.82
|
0.82
|
3,464
|
표 9. 정밀도 및 재현율 비교(ISS)
Table 9. Precision and recall comparison(ISS)
Injury Grade
|
Precision
|
Recall
|
F1-score
|
Support
|
Minor injury(0)
|
0.85
|
0.84
|
0.84
|
984
|
Major injury(1)
|
0.84
|
0.85
|
0.85
|
984
|
Avr/Total
|
0.84
|
0.84
|
0.84
|
1,968
|
표 8은 2 클래스의 MAIS에서 성능이 가장 좋은 기계 학습 모델인 Logistic Regression의 정밀도와 재현율을 비교 정리한 표이다. 이 조합의
정확도는 81.55\%였으며, 정밀도와 재현율 역시 80\% 이상의 수준을 보였다.
표 9는 2 클래스의 ISS에서 성능이 가장 좋은 기계 학습 모델인 LDA를 적용한 Logistic Regression의 정밀도와 재현율을 비교 정리한
표이다. 이 경우 정확도는 84.40\%였으며, 정밀도와 재현율 역시 80\% 중반 정도의 수준을 보였다.
정확도만으로는 제대로 된 기계 학습 모델의 성능을 평가할 수 없다. 특히, 데이터의 분포가 심하게 불균형하면 모든 예측 결과가 데이터가 많은 상해
등급에 대해 예측했을 때 정확도는 높지만, 정밀도와 재현율은 그렇지 않다. 표 7의 정확도와 표 8, 9의 정밀도 및 재현율을 보면 세 가지의 성능 지표가 모두 비슷한 수준으로 평가되었기 때문에 적용한 기계 학습 모델이 한 상해 등급에 치우쳐진 학습
결과가 아닌, 모든 상해 등급에 대해 일관성 있는 결과임을 알 수 있다.
3. 결 론
기계 학습을 이용하여 교통사고로 인해 발생하는 탑승자의 상해 정도를 예측하여 신속하고 적절한 조치가 가능하게 하도록 도울 수 있는 연구를 진행하였다.
본 논문에서는 미국의 NASS-CDS 데이터베이스를 사용하였고, 기계 학습 모델인 Decision Tree, Support Vector Machine
그리고 Logistic Regression을 이용하여 상해 등급 분류를 예측하였다. 또한, 각 기계 학습 모델에 PCA 또는 LDA를 적용하여 입력
데이터를 최적화하고자 했으며, 각 실험을 통해 정확도, 정밀도 및 재현율을 확인하였다.
실험의 결과로 원시 데이터를 그대로 예측하는 것보다 ‘경상’과 ‘중상’의 이진 분류 예측을 수행하였을 때 정확도 성능이 더 높았고, PCA 또는 LDA를
적용했을 경우 기계 학습 모델과 예측 대상에 따라 정확도 성능이 좋아지기도, 나빠지기도 하므로 성능을 높이는 필수적 요소가 아니며 적절히 선택하여
사용하면 좋은 결과를 기대해 볼 수 있다.
본 연구의 성능 평가 지표는 정확도만으로 신뢰도 있는 기계 학습 모델에 대한 성능 평가를 할 수 없기 때문에 정밀도와 재현율을 함께 사용하였다. 또한,
기계 학습의 특성상 학습 결과를 확인하기 전에는 어떤 모델이 가장 적합한지 판단하기 어려우므로 여러 기계 학습 모델을 적용하여 성능을 비교하였다.
기계 학습 모델과 예측할 범주에 따라 상해 등급은 70\% 중/후반에서 80\% 초/중반의 정확도를 보이며, 가장 높은 정확도를 가지는 기계 학습
모델(MAIS의 경우 Logistic Regression에서 정확도 81.55\%, ISS의 경우 LDA를 적용한 Logistic Regression에서
정확도 84.40\%)로 확인한 정밀도와 재현율도 80\% 이상의 성능을 보이므로 신뢰성 있는 결과를 확인하였다.
본 연구에서는 교통사고 발생 시 취득 가능한 사고 정보, 차량 정보, 탑승자 정보 등이 포함된 64개의 입력 특징을 사용하였다. 이는 차원의 수가
매우 크므로 상해 등급 예측에 방해가 되는 요인이 포함될 수 있으며, 상해 등급을 예측하기 위한 최적의 입력 특징 조합이라고 할 수 없다. 따라서
향후 연구로는 Genetic Algorithm 등의 알고리즘을 사용하여 입력 특징 조합과 기계 학습 모델 구조를 최적화하여 성능을 향상할 수 있는
연구를 진행할 것이다.