본문 바로가기
빅데이터분석

[powerBI] 메타코드 강의후기_(1) EDA 자동화

by 모닥불🔥 2024. 9. 29.
https://www.metacodes.co.kr/edu/read2.nx?EP_IDX=14157&EM_IDX=13981&M2_IDX=31635

 
메타코드에 새로 올라온 powerBI 강의! (이미지를 클릭하면 수강신청 링크로 이동한다.)
 
요즘 powerBI라는 말을 여기저기서 많이 들은 것 같아서 듣고 싶었는데,
역시 핫한 주제를 놓치지 않는 메타코드에서 관련 강의가 올라왔다.
 
10월 3일까지 완전 무료로 들을 수 있어서 호다닥 신청을 해보았다.
제목 자체가 powerBI이다 보니까 데이터분석 내용은 아주 빠르게 빠르게 넘어가는 강의여서,
혹시 왕초보자라면 다른 python 기초 강의를 듣고 듣는 게 더 나을 것 같다.
 
나는 관련 강의를 꽤 많이 들어서 그런가 따라가는 데 무리는 없다. 아직까지는.... :)


0. 보험사기 데이터분석의 의의

 
이번에 활용할 데이터는 보험사 데이터이다. 보험사에서는 보험사기가 일어나지 않도록 검토하는 작업이 필요하다. 전체 보험 청구 건에 비해 보험 사기가 의심되는 건수 자체가 무지하게 적기 때문에, 사실 사기를 친 피보험자에게 보험금을 주는 것보다 보험 사기인지 아닌지 검토하는 비용이 더 들기도 한다.
 
이럴 때 필요한 게 바로 데이터분석! 데이터분석을 활용하면 보험 사기 요인을 찾거나, 보험 사기를 예측하거나, Rule-based로 검토를 할 수 있어 시간과 비용이 절약된다. :D 히히


1. 데이터 준비

 
데이터는 캐글에 올라와 있는 차량 보험 클레임 관련 데이터를 이용할 예정이고, 우측 그림 아래에 있는 제목으로 찾으면 나온다! 무료 데이터니까 그냥 받아서 분석하면 됨
 
 
먼저 콘다를 활용해서 가상 환경을 만들고 설치하는 것에 대해서도 설명을 해주셨다.
가상환경을 만드는 게 중요하다고 한다. 패키지 간 버전 호환 문제가 발생할 수 있으므로!

python 3.1 버전을 설치하면 콘다 환경이 만들어진다고 함..!
 

필요한 패키지 설치는 이렇게... 보통은 더 많이 깔려 있으니 생략해도 될 듯!
 
노트북 용량 관련 문제로, 구글 코랩을 쓸 거라 이 부분은 패스....
다행히 강의자료에 있는 코드 파일들이 .ipynb 파일이라 코랩에서 열 수 있다.


2. EDA

EDA는 매번 반복되는 작업이기 때문에, 자동화 시킬 수 있도록 function을 만드는 것이 EDA 부분의 목표라고 하셨다.
 
필요한 라이브러리와 데이터를 불러온다.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
df = pd.read_csv('data/fraud_oracle.csv')

 
구글 코랩을 사용하는 경우에는 아래 코드를 실행시켜 drive와 연결한 다음,

from google.colab import drive
drive.mount('/content/drive')

 
드라이브 내 파일 위치를 복사하여 pd.read_csv로 불러와야 한다.

df = pd.read_csv('/content/drive/MyDrive/강의노트/곽기은_powerBI/data/data/fraud_oracle.csv')

 
데이터를 불러온 후 가장 먼저 하는 일은, head로 몇 행만 보고 데이터가 어떻게 생겼는지 보는 것이다.

컬럼이 많아 모든 내용이 표시되지 않고 ...로 보일 때는 pandas option을 조정해서 모든 컬럼이 다 보이도록 할 수 있다.

pd.set_option('display.max_columns', None)

 
데이터의 각 컬럼은 요런 의미를 가진다. 강사님은 관련 컬럼들끼리 묶어서 정리한다고 하셨다.

 
이렇게 묶으면 나중에 분석을 위한 인사이트를 얻을 때 도움이 많이 된다.
주목할 부분은, 
가입자정보 중 운전자 등급(Driver Rating)이 있다. 보험사가 자체적으로 
기본 정책(BasePolicy), 공제액(Deductible)도 중요한데, 보험 정책과 공제액에 따라 가입자 부담금과 달라지고, 보험금 지급액이 달라지기 때문!
 
각 컬럼의 유니크 값을 뽑아서 하나씩 봐도 된다.

df.FraudFound_P.unique()
df.PolicyType.unique()

 
하지만 한 번에 데이터를 확인하기 위해서는 shape부터 isnull().sum()을 사용해 전반적으로 데이터 모양을 살펴볼 수 있다.
각 코드를 한 줄씩 쳐서 결과를 살펴보자. EDA 는 코드가 다 비슷비슷하고, 빅분기에서도 사용되며, 다양한 강의에서 많이 반복해서 배우는 내용이기 때문에 짧게짧게 넘어가면 될 것 같다.
 
강의에서도 별로 큰 설명 없이 넘어갔지만, 복습 삼아 정리해 보려고 한다.

df.shape
df.nunique()
df.info()
df.describe()
df.isnull().sum()

 
shape는 전체 행, 열의 개수를 알려주는 코드로, 이 데이터는 무려 15420개의 행이 있다.
이런 데이터를 내가 가진 노트북에서 엑셀로 열게 되면... 엄청 느리고 렉이 먹지만!
이런 똥컴도 코드로 샤샥 확인하는 건 빠르게 처리된다. 놀라운 코딩의 세계...ㅎ

 
unique()가 유일값을 모두 불러온다면, nunique()는 unique값의 개수(N)를 불러온다. 각 컬럼에서 유니크 값이 몇 개인지 살펴보자. month 같은 건 웬만해선 유니크한 값이 12개이겠지? 1월부터 12월까지...

 
info()는 각 컬럼의 null값 개수나 data type을 알려준다. 보통은 두 가지를 확인하는 듯..
index 범위에 대한 정보, 컬럼 수 등의 정보도 있긴 하다. 컬럼명을 확인하기에도 좋은 듯.

 
describe()는 간단한 기술통계를 모아서 보여주는 함수이다. 평균, 표준편차, 최대 최소값 등을 확인하기 아주 편함 :)
주로 이상치 감지에 사용된다.

 
isnull().sum()을 하면 각 컬럼에서 null 값이 몇 개 있는지 알 수 있다.

 
글이 생각보다 길어져서 다음 글에선 시각화를 통한 EDA부터 이어서 정리해야겠다.
그럼 이만, 화르륵 🔥
 
- 타닥타닥 공부하는 모닥불🔥 -


* 메타코드 서포터즈로서 강의를 제공받아 작성하였습니다. 이미지를 클릭하면 홈페이지로 이동합니다.