캐글에서 데이터 셋 다운로드 후 데이터 로드
https://www.kaggle.com/datasets/uciml/default-of-credit-card-clients-dataset
Default of Credit Card Clients Dataset
Default Payments of Credit Card Clients in Taiwan from 2005
www.kaggle.com
df_credit = pd.read_csv("../datasets/UCI_Credit_Card.csv")
속성과 클래스로 데이터 분류
df_credit.rename(columns = {'PAY_':'PAY_1', 'default.payment.next.month':'default'}, inplace = True)
# 속성과 클래스로 데이터 분류
y_target = df_credit['default']
X_features = df_credit.drop('default', axis=1)
y_target.value_counts()
seaborn으로 상관게수 히트맵 확인
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
corr = X_features.corr()
plt.figure(figsize = (14,14))
sns.heatmap(corr, annot=True, fmt='.1g')
원본 데이터일 때 랜덤 포레스트 예측 성능 확인
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
rcf = RandomForestClassifier(random_state=156)
# 원본 데이터일 때 랜덤 포레스트 예측 성능
scores_origin = cross_val_score(rcf, X_features, y_target,scoring = 'accuracy', cv =3)
print('CV =3 인 경우의 개별 Fold 세트별 정확도', scores)
print('평균 정확도: {0:.4f}'.format(np.mean(scores)))
CV =3 인 경우의 개별 Fold 세트별 정확도 [0.98 1. 1. ] 평균 정확도: 0.9933
PCA 변환된 데이터 셋의 랜덤 포레스트 예측 성능 확인
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
rcf = RandomForestClassifier(random_state=156)
scaler = StandardScaler()
df_credit_scaled = scaler.fit_transform(X_features)
pca = PCA(n_components=5)
df_pca = pca.fit_transform(df_credit_scaled)
scores_pca = cross_val_score(rcf, df_pca, y_target, scoring = 'accuracy', cv=3)
print('CV =3 인 경우의 PCA 변환된 개별 Fold 세트별 정확도', scores)
print('PCA 변환 데이터 셋 평균 정확도 평균 정확도: {0:.4f}'.format(np.mean(scores_pca)))
728x90
'데이터 전처리' 카테고리의 다른 글
SVD 특이값 분해 (0) | 2022.04.26 |
---|---|
LDA(Linear Discriminant Analysis) (0) | 2022.04.26 |
차원 축소 (PCA- 주성분 분석) (0) | 2022.04.25 |
데이터 전처리-피쳐 스케일링과 정규화 (0) | 2022.04.11 |
데이터 전처리-data encoding (0) | 2022.04.11 |