방재정보

방재 관련 기술정보를 전해드립니다.

위험예측 정확도를 높이기 위한 데이터 연구 방향

원진섭 전문위원 한국화재보험협회 인슈데이터팀

1. 머리말

오늘날 우리는 데이터의 시대에 살고 있다. 하루에도 수많은 데이터가 생성되고, 이 데이터는 우리의 삶에 부지불식간에 큰 영향을 미치고 있다. 하지만 일반적으로 데이터는 본래의 모습으로는 제대로 활용하기 어려운 경우가 대부분이다. 이를 위해서 데이터를 분석하고 예측하기 위해서는 전처리(Preprocessing) 과정이 필요하다.

데이터 전처리는 단순히 데이터를 깨끗이 하는 작업을 넘어서, 데이터가 가진 숨은 가치를 최대한 끌어내기 위한 중요한 과정이다. 마치 화가가 캔버스에 그림을 그리기 전, 붓과 물감의 상태를 점검하는 것처럼, 맛있는 요리를 만들기 위해 신선한 재료를 준비하고 손질하는 것처럼, 데이터 전처리는 분석의 정확성을 높이고, 유용한 통찰을 제공하기 위해 꼭 필요한 과정이다.

본고에서는 화재보험협회에서 수행하고 있는 머신러닝 기반 화재위험예측을 위해 사용되는 각종 데이터를 소개하고, 각 데이터의 특성을 살리면서도 머신러닝 알고리즘이 최적의 결과를 도출할 수 있도록 데이터를 처리하는 방법을 소개한다.

2. 데이터 분석

ⅰ) 데이터셋 소개

우리는 총 34종의 다양한 데이터를 다루고 있다. 이 데이터를 이해하기 쉽게 문자열, 숫자(정수, 실수)로 나눠서 분석하기로 했다. 이유는 각 데이터 타입이 가진 특성이 다르므로, 이를 적절히 처리하고 분석하기 위해서는 서로 다른 접근이 필요하기 때문이다.

[그림1] 타입별 데이터 분류

예를 들어, 문자열 데이터는 텍스트 분석(텍스트 마이닝, 자연어처리 등)이나 카테고리화가 필요하고, 숫자 데이터는 통계적 계산과 정밀한 수치 분석이 요구된다. 따라서 각각의 데이터 타입에 맞춰 분석 방법을 다르게 적용했다.

ⅱ) 카테고리화 기법

‘지목명’이라는 데이터를 예시로 설명하겠다. ‘지목’이란 ‘토지의 주된 용도에 따라 토지의 종류를 구분하여 지적공부에 등록한 것’인데, 현재 28종으로 지목을 구분하고 있다.

[그림2] ‘지목명’ 빈도수 시각화(Treemap) 자료

현재 협회가 사용하고 있는 데이터셋에서는 결측치가 포함되어 총 29종 있다. 이를 더 쉽게 이해할 수 있도록 5가지 큰 그룹으로 나눠서 분석했다. 이렇게 하면 복잡한 데이터를 더욱 간단하게 정리할 수 있다. 또한 추후 모델의 복잡도를 감소시켜 성능을 더욱 끌어올릴 수 있다.

[그림3] ‘지목명’ 카테고리화 시각화(Treemap) 자료

ⅲ) 정규분포 분석

‘건물연령’ 데이터를 정규분포로 시각화한 결과, 몇몇 데이터가 비정상적으로 높은 값을 기록하여 이상치가 발견되었다. 이 이상치 문제를 해결하기 위해, 정규분포 상위 1%의 값을 제거한 후의 그래프를 분석하였다. 상위 1%의 데이터를 제외한 후에는 데이터의 분포가 보다 정제되고 균형 잡힌 모습을 보였다.

[그림4] ‘건물연령’ 정규분포 및 정규분포의 상위 1% 제거 시각화

따라서, 이러한 이상치 처리 방법을 채택하여 결측치를 각 구간별 비율의 랜덤값으로 대체하였다. 이 과정은 데이터 전체의 경향을 해치지 않으면서도 결측치를 효과적으로 해결하는 데 도움이 되었다.

[그림5] 비례식 비율을 통한 결측치 처리 후 정규분포 시각화

ⅳ) 회귀분석

회귀분석 과정에서 ‘총주차수’와 ‘총주차장면적’ 간에 두 가지 이상한 경우가 발견되었다.

  • 1) ‘총주차장면적’이 0이면서 ‘총주차수’가 0이 아닌 경우
  • 2) ‘총주차수’가 0이면서 ‘총주차장면적’이 0이 아닌 경우

이러한 경우는 주차수가 존재하는 경우 반드시 주차장 면적도 존재해야 하며, 주차장 면적이 존재할 때는 주차수가 있어야 한다는 논리적 기대와 어긋난다.

[그림 6] ‘총주차수’, ‘총주차장면적’의 이상치 시각화

이상치를 확인하기 위해 데이터셋 전체를 시각화했다. ‘총주차면적’에 비해 ‘총주차수’가 지나치게 많거나, 그 반대로 ‘총주차수’와 ‘총주차면적’이 지나치게 많은 이상치가 발견되었다.
이 문제를 해결하기 위해, 정규분포의 상위 1%를 제외한 후 Polynomial 회귀분석을 수행하여 시각화했다. 회귀곡선이 매끄럽게 나타났으며, 이를 바탕으로 이상치를 대체하여 처리하였다.

[그림 7] ‘총주차수’와 ‘총주차장면적’ 회귀분석(좌) 및 데이터 전처리 뒤 회귀분석(우)

ⅴ) 다양한 특징 추출

인구수’는 법정동명을 기준으로 같은 주소값을 갖게 된다면 같은 값으로 입력되어 있다. 법정동명은 ‘시도 시군구 읍면동 리’로 구분되며, 특정 주소의 인구수가 누락된 경우 다른 유사한 법정동명에서 데이터를 가져올 수 있다.

데이터의 신뢰성을 높이기 위해, 가능한 유사한 ‘시도 시군구 읍면동’ 또는 ‘시도 시군구’ 내에서 값을 유추해 오는 것이 좋다. 예를 들어, ‘경기도 용인시 처인구 모현면 왕산리’의 인구수가 없는 경우, 먼저 ‘경기도 용인시 처인구 모현면’의 평균 인구수를 적용하고, 이 면에서도 인구수의 값을 가져올 수 없다면 ‘경기도 용인시 처인구’ 시군구 단위의 평균값을 사용하여 데이터를 보완할 수 있다. 같은 방식으로 ‘경기도 용인시 처인구’의 인구수를 알 수 없다면 ‘경기도 용인시’의 인구수를 확인해 볼 수 있다.

[그림 8] ‘총주차수’와 ‘총주차장면적’ 회귀분석(좌) 및 데이터 전처리 뒤 회귀분석(우)

확장해서 인구수 결측치를 해결함으로써, 인구수 결측치로 계산할 수 없었던 ‘인구대비화재’와 ‘건물대비화재’ 지표의 계산이 가능해졌다. 이에 따라, 해당 지표들이 정확하게 산출될 수 있게 되었다.

이러한 다양한 데이터 전처리 및 Feature Engineering 기법을 통해, 우리는 모델의 성능을 극대화하고 데이터의 잠재력을 최대한으로 끌어낼 수 있다. 데이터의 품질을 높이고, 더욱 정교한 인사이트를 제공하며, 예측의 정확성을 향상시킬 수 있는 기반을 마련하는 것이 목표다.

3. 맺음말

화재위험을 예측하는 일은 본질적으로 미래를 들여다보는 시도와 같다. 비록 미래를 완벽하게 예측하는 것은 불가능할 수 있지만, 우리는 계속해서 그 가능성에 도전하고 있다.

흔히 말하는 것처럼 Garbage-in-Garbage-out, 즉 데이터의 품질이 머신러닝의 성과를 좌우한다. 현재 연구에 사용되는 데이터는 국내 공공데이터 중심으로 제작되고 있는데, 결측치와 오류 등 여러 가지 제약에도 불구하고 현재로선 최선의 데이터이다. 그러므로 데이터 품질에 불만을 가지는 것에 그치지 않고 최선의 결과를 도출하기 위한 데이터 처리에 관한 연구는 지속되어야 한다.

‘한국화재보험협회’와 ‘KB손해보험’은 화재위험을 이해하고 대응하기 위한 중요한 첫걸음을 내디뎠다. 현재 사용하고 있는 방법론이 완벽하지 않을 수도 있지만, 기존 화재위험도지수와 비교했을 때 화재예측률은 상당한 진전을 확인할 수 있었다. 앞으로도 우리는 데이터 분석과 예측 모델을 고도화해 나가면서 화재위험에 대한 이해를 심화하고, 더욱 정확한 예측을 위해 지속해서 노력할 것이다.