안녕하세요 오늘은 빅데이터분석기사 실기시험에 대비하여 빅분기 실기 체험 제2유형을 풀어보겠습니다.
구름EDU - 모두를 위한 맞춤형 IT교육
구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/
edu.goorm.io
위 URL로 접속하여 체험이 가능합니다.
문제 풀이 및 주석은 아래와 같습니다.
import pandas as pd 
train = pd.read_csv("data/customer_train.csv") 
test = pd.read_csv("data/customer_test.csv") 
# 사용자 코딩 영역
### 데이터 형식 및 값 체크 
# print(train.info()) 
# print(train.describe()) 
# print(train['환불금액'].value_counts()) 
### id, target[y]값 확보 및 필요없는 컬럼 제거 
tid = test['회원ID'].copy() 
y = train['성별'].copy() 
train = train.drop(columns=['회원ID','성별']) 
test = test.drop(columns=['회원ID']) 
### 결측치 확인 및 처리 
# print(train['환불금액'].isna().sum()) 
# print(test['환불금액'].isna().sum()) 
train['환불금액'] = train['환불금액'].fillna(train['환불금액'].mode()[0]) 
test['환불금액'] = test['환불금액'].fillna(test['환불금액'].mode()[0]) 
# print(train.info()) 
### 수치형 데이터 스케일 MinMaxScaler / StandardScaler 
from sklearn.preprocessing import MinMaxScaler 
mms = MinMaxScaler() 
mmsCol = train.select_dtypes(exclude='object').columns 
train[mmsCol] = mms.fit_transform(train[mmsCol]) 
test[mmsCol] = mms.transform(test[mmsCol]) 
# print(train[mmsCol]) 
# print(test[mmsCol]) 
### 오브젝트형 데이터 스케일 LabelEncoder 
from sklearn.preprocessing import LabelEncoder 
le = LabelEncoder() 
train['주구매지점'] = le.fit_transform(train['주구매지점']) 
test['주구매지점'] = le.transform(test['주구매지점']) 
train['주구매상품'] = le.fit_transform(train['주구매상품']) 
test['주구매상품'] = le.transform(test['주구매상품']) 
### 데이터 분할 
from sklearn.model_selection import train_test_split 
x_train,x_val,y_train,y_val = train_test_split(train,y,test_size=0.2,random_state=2025,stratify=y) 
# print(x_train.shape) 
# print(x_val.shape) 
# print(y_train.shape) 
# print(y_val.shape) 
### 모델링 및 학습 
from sklearn.ensemble import RandomForestClassifier 
rf = RandomForestClassifier() 
rf.fit(x_train,y_train) 
tmpPred = rf.predict(x_val) 
# 모델 성능 평가 
from sklearn.metrics import roc_auc_score, accuracy_score 
roc = roc_auc_score(y_val, tmpPred) 
acc = accuracy_score(y_val, tmpPred) 
# print(roc) 0.56 
# print(acc) 0.62 
# 테스트 모델 예측 
pred = rf.predict(test) 
#결과 제출 
result = pd.DataFrame({'pred':pred}) 
result.to_csv("result.csv", index=False) 
#제출한 데이터 확인 
chx = pd.read_csv("result.csv") 
print(chx) 
'BigData' 카테고리의 다른 글
| OneHotEncoding시에 OneHotEncoding.fit()과 df.get_dummies()의 차이는? (0) | 2024.11.07 | 
|---|---|
| LabelEncoder와 OneHotEncoder의 차이는 무엇일까? (1) | 2024.11.05 | 
| train_test_split의 파라미터에서 stratify는 언제 사용할까? (1) | 2024.11.01 | 
| roc_curve와 roc_auc_score는 각각 언제 사용할까? (1) | 2024.10.31 | 
| MinMaxScaler과 StandardScaler는 언제 사용할까? (0) | 2024.10.30 |