인텔 AI 교육
인텔 AI 교육 - Module - 11(랜덤 포레스트 예제)
Regain
2023. 7. 25. 17:01
(해당 자료들은 인텔 AI for Future Workforce내용을 학습하고 가공한 내용입니다.)
< Module - 11 >
#랜덤 포레스트(Random Forest)
1. 랜덤 포레스트
많은 의사 결정 트리의 결정을 결합하여 데이터 포인트의 클래스를 결정하는 분류 알고리즘이다.
#보험 사기 탐지
1. 문제
일반화 되어있는 보험 사기를 탐지하고 미리 에측하여 비용을 절약하길 원한다.
2. 라이브러리
>>> import numpy as np
>>> import pandas as pd
>>> import datetime as dt
>>> import seaborn as sns
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.metrics import classification_report
>>> from sklearn.tree import DecisionTreeClassifier
>>> from sklearn.metrics import accuracy_score
# 파일 읽어오기
>>> df = pd.read_csv(r'[Dataset]_Module11_(Insurance).csv')
3. feature간 상관관계 확인
>>> import plotly.express as px
>>> import plotly.graph_objects as go
# pandas의 corr() 함수를 사용하여 상관 행렬 가져오기
>>> corr_matrix = df.corr()
>>> fig = go.Figure(data = go.Heatmap(
z = corr_matrix.values,
x = list(corr_matrix.columns),
y = list(corr_matrix.index)))
>>> fig.update_layout(title = 'Correlation_Insurance_Fraud')
>>> fig.show()
*plotly 라이브러리 : 파이썬 데이터 시각화
4. 랜덤 포레스트 적용하기
>>> from sklearn.ensemble import RandomForestClassifier
>>> rfc = RandomForestClassifier(random_state = 1)
>>> rfc.fit(X_train, y_train)
>>> preds = rfc.predict(X_test) #훈련 데이터 예측 결과를 변수 preds에 저장
>>> score = rfc.score(X_test, y_test)
>>> print(score*100)
>>> print()
>>> print(classification_report(y_test, preds))
5. 그 외 모델들 사용
(1) 의사 결정 트리
>>> dtc = DecisionTreeClassifier()
>>> dtc.fit(X_train, y_train)
>>> preds = dtc.predict(X_test)
>>> score = dtc.score(X_test, y_test)
>>> print(score*100)
>>> print()
>>> print(classification_report(y_test, preds))
(2) 로지스틱 회귀
>>> lr = LogisticRegression()
>>> lr.fit(X_train, y_train)
>>> preds = lr.predict(X_test)
>>> score = lr.score(X_test, y_test)
>>> print(score*100)
>>> print()
>>> print(classification_report(y_test, preds))