본문 바로가기

IT Note/Data&AI

선형회귀로 개인별 생명 보험 가격 예측하기

Disclaimer

이 문서는 원작자의 허락 하에 Kaggle 블로그의 Anne Aguirre 의 원문 아티클을 Watson studio notebook에서 번역 및 에디팅 한 글입니다.

Head
보험 분야에서 Data 와 AI를 사용한 접근은 점점 그 관심도가 높아지고 있습니다. 이 문서에서 설명하는 예측분석 및 K-fold 교차 유효성 검증, 기업의 상황에 따른 데이터 인프라를 활용하여 개별 피보험자의 기업이 보험 지급액 또는 보험 납입액을 예측해 볼 수 있습니다.

Body - 선형회귀로 개인별 생명 보험 가격 예측하기

데이터 라이브러리와 모듈을 불러옵니다.

샘플 데이터를 불러옵니다. 일반적인 Juypter Notebook을 사용하는 경우 pd.read_csv("../input/insurance/insurance.csv") 명령어로 가능하지만 Watson studio의 노트북을 이용한다 우 상단 10/01 아이콘을 선택하여 Find and Add Data 기능을 사용합니다. Files 탭 > browse 를 클릭하여 .csv 파일을 추가하세요.

이 문서에서 사용한 샘플 데이터는 Machine Learning with R datasets 교재에서 제공하는 데이터를 사용했습니다. (Github URL-https://github.com/stedy/Machine-Learning-with-R-datasets)

다만 해당 데이터를 사용하려면 교재를 구입하여 사용자 계정을 생성해야 합니다.

데이터를 불러온 후 Null 값을 체크합니다. isnull().sum() 또는 .info() 함수를 사용합니다.

데이터 불러오기 및 확인이 끝났다면 각 feature 들을 예측분석 모델링에 활용하기 위해 가공합니다.
우선, 흡연 여부(Smoker)를 구분하는 함수를 정의합니다.

bmi 지수를 바탕으로 비만(obse) 여부를 구분하는 함수로 열를 새로 만들어 데이터를 입력합니다.

각 feature들과 보험 가격의 개별 연관성을 p value로 측정합니다. matplotlib.pyplot 라이브러리를 활용해서 시각화할 수 있습니다.

각 변수별 연관도를 비교해 보겠습니다.

흡연 여부(smoker_norm), 나이(age), 비만도(obese) 가 개별 보험료 산정에 차례로 연관성이 높습니다. 이 세 개의 변수만을 사용해서 개별 보험료를 예측해 보겠습니다.

선형회귀 방식으로로 개별 보험 가격을 예측합니다. 훈련 데이터로부터 3개의 변수 및 보험 가격의 관계를 선형 방정식으로 모델링한 후 새로운 데이터에도 적용하는 방식입니다.

3개의 변수로 예측하기때문에 모델은 다중 선형회귀일 것으로 가정합니다. y = ax1 + bx2 + cx3 + i 의 방정식에서 y는 예측하고자 하는 값, 즉 개별 보험 가격이고 a 는 나이(age) 라는 변수 x1의 패널티, b 는 비만 여부(obese) 라는 변수 x2 의 패널티, c 는 흡연 여부(smoker_noun) 변수 x3의 패널티입니다. 이때 b와 c는 Yes or No를 의미하는 0 또는 1의 값만을 가집니다. i 는 간섭을 의미합니다.

이 예측분석에서는 K-fold 교차 검증을 사용합니다.

K-fold 검증을 사용하면 총 데이터 개수가 적은 분석의 정확도를 향상 시킬 수 있습니다. Training / Validation / Test 세 개의 집단으로 분류하는 것보다, Training / Test 로 분류할 때 학습 데이터 셋이 더 많기 때문입니다.

K-fold 교차 유효성 검증에서는 데이터를 k개의 균일한 사이즈의 subset으로 나눕니다. 동일한 데이터에서 test subset을 바꿔 가며 k 번 반복해서 학습 시킵니다. (그림 참조)그 후 예측치를 평균 내서 최종 값을 구합니다. 데이터를 10개의 subset 으로 나눠 10번 반복한 후, a,b,c 의 값을 구해 예측 분석을 진행해 보도록 하겠습니다.

LR(Likelihood Ratio) 계수 a,b,c를 구하면 예측 분석에 사용되는 선형 회귀 방정식도 정의할 수 있습니다.

34살의 비만이고, 흡연자인 사람의 향후 생명 보험 가격은 아래와 같이 계산할 수 있습니다.

*전체 Notebook Code URL : https://jp-tok.dataplatform.cloud.ibm.com/analytics/notebooks/v2/712327c2-a9e8-4fe3-99c1-b001f05a139b/view?access_token=da2c07a8f68407c791935cfdd14176e8a6398480ad989f0754bd700f41c024c9

 

반응형