Machine Learning

Machine Learning - Bayesian Linear Regression을 이용한 보험 비용 예측하기 Part1

electronicprogrammer 2020. 10. 10. 12:33

데이터 출처 : www.kaggle.com/teertha/ushealthinsurancedataset

 

US Health Insurance Dataset

Insurance Premium Charges in US with important details for risk underwriting.

www.kaggle.com

 

ipynb file : github.com/sangHa0411/DataScience/blob/main/Insurance_Charges.ipynb

 

sangHa0411/DataScience

Contribute to sangHa0411/DataScience development by creating an account on GitHub.

github.com

 

이번 포스팅에서는 다음 포스팅에서 얘기할 Bayesian Linear Regression을 하기 위한 데이터 분석 및 특성 선택을 하도록 하겠습니다.

다음 포스팅에서는 일반적인 선형회귀가 아닌 Bayesian Linear Regression을 다루어보도록 하겠습니다.

그리고 이를 이용해서 보험 비용이 얼마나 나올지에 대해서 예측을 해보는 모델을 만들어 보겠습니다.

 

아래는 Bayesian Linear Regression에 대한 참고자료입니다.

자세하게는 아래의 참고자료을 보시면 확인하실 수 있으시겠지만 여기서 핵심만을 말씀드리면 아래의 내용을 보시면 됩니다.

 

정리하자면 해당 변수의 최적의 수를 구하는 것이 목표가 아니라 해당 변수의 확률 분표를 파악하는 것이 Bayesian Linear Regression의 목표가 됩니다.

그리고 이 확률 분포는 우리가 사용할 데이터와 사전에 해당 변수의 분포가 이럴 것이다 라고 예측한 사전 분포 모델을 기반으로 해서 사후 분포 즉 최종적으로 우리가 얻고자 하는 변수의 분포를 구할 수 있게 됩니다.

참고자료1 : towardsdatascience.com/introduction-to-bayesian-linear-regression-e66e60791ea7

 

Introduction to Bayesian Linear Regression

An explanation of the Bayesian approach to linear modeling

towardsdatascience.com

참고자료2 : towardsdatascience.com/bayesian-linear-regression-in-python-using-machine-learning-to-predict-student-grades-part-1-7d0ad817fca5?source=false---------1

 

Bayesian Linear Regression in Python: Using Machine Learning to Predict Student Grades Part 1

Exploratory Data Analysis, Feature Selection, and Benchmarks

towardsdatascience.com

참고자료3 : towardsdatascience.com/bayesian-linear-regression-in-python-using-machine-learning-to-predict-student-grades-part-2-b72059a8ac7e

 

Bayesian Linear Regression in Python: Using Machine Learning to Predict Student Grades Part 2

Implementing a Model, Interpreting Results, and Making Predictions

towardsdatascience.com

 

이번 포스팅에서 핵심인 데이터 분석 및 특성 선택을 해보도록 하겠습니다.

먼저 데이터를 불러옵니다.

데이터는 나이., 성별 , bmi, 아이 여부 , 흡연 여부 , 지역등과 청구 비용으로 구성이 되어있습니다,

저희는 청구 비용을 target data로 정하고 나머지 column에 대해서는 데이터 분석을 통해서 사용할 것인지 아닌지에 대해서 결정을 하도록 하겠습니다.

 

먼저 성별에 대한 수를 Bar Chart로 비교해보겠습니다.

성별에 있어서는 데이터가 균형이 맞는다는 것을 확인할 수 있습니다.

 

이제 남녀를 구분지어서 청구 비용이 어떻게 되는지 확인해보겠습니다.

먼저 데이터를 성별을 기준으로 해서 분할합니다.

 

이제 이를 이용해서 각 데이터의 청구비용이 어떻게 되는지 Box Plot으로 확인해보겠습니다.

남자의 경우 청구비용이 여자의 경우보다 더 많은 것을 확인할 수 있습니다.'

 

이제 데이터의 age가 어떻게 되는지 확인해보겠습니다.

 

다음은 Region에 대해서 데이터 비율을 확인해보겠습니다.

 

성별에 대해서 청구 비용을 Box Plot으로 확인하였듯이 Region에 대해서 각 Region의 청구비용을 확인해보겠습니다.

 

각 지역에 대해서는 크게 차이점은 없어 보이는데 east에 경우에 west보다 청구비용이 조금더 많은 것 같아 보입니다.

 

다음은 흡연 여부에 대해서 분석해보겠습니다.

흡연한 사람의 데이터가 흡연을 하지 않은 사람보다 많이 적은 것을 확인할 수 있습니다.

 

이제 흡연 여부에 대해서 각 데이터를 분할해서 box plot을 그려보겠습니다.

당연히 흡연한 사람에 대해서 청구비용이 흡연을 하지 않는 사람들보다 훨씬 더 높은 것을 확인할 수 있습니다.

 

이제 마지막으로 bmi에 대해서 분석해보겠습니다.

데이터의 대부분이 bmi의 정상 경계를 넘어선 것을 확인할 수 있었습니다.

 

이제 최종적으로 데이터에서 사용할 특성을 선택하도록 하겠습니다.

상관관계 계수를 구체적으로 수치로 확인한 결과 연속적인 속성의 특성에서 children은 청구 비용과 크게 상관이 없는 것 같아서 제외하겠습니다.

그리고 이산적인 속성의 특성에서는 region이 각 지역에 따라 청구 비용이 크게 달라지지 않는 것 같기에 제외하겠습니다.

이로써 최종적인 데이터 분석 및 특성 선택을 마쳤습니다.

 

다음 포스팅에 대해서 본격적으로 Bayesian Linear Regression을 다루어보도록 하겠습니다.