# 데이터마님
# 7,6,5회 기출 변형
회귀 - 7,5
분류 - 6,4,3
# 데이터 로드
import pandas as pd
df = pd.read_csv('')
# sklearn 불러오기
from sklearn.model_selection import train_test_split # 데이터 분할
from sklearn.ensemble import RandomForestRegressor # 회귀모델
from sklearn.ensemble import RandomForestClassifier # 분류모델
from sklearn.preprocessing import LabelEncoder # 전처리 - 라벨인코딩
from sklearn.metrics import mean_squared_error, f1_score, roc_auc_score # 평가(문제에서 원하는 거 import)
import numpy as np
# 결측치 처리
print(train.isnull().sum())
범주형 변수의 경우 첫번째 값으로 변경 index[0]
숫자형 변수의 경우 mean() 혹은 median()으로 변경
fillna(df.칼럼.median())
여러 변수 한꺼번에 바꾸려면 list나 dic 로 묶어서 for문 돌리기
fillna(fillna_dic[col])
# train에서 y와 x 지정해주기
y = train['종속변수명']
x = train.drop(columns='종속변수명')
# 라벨 인코딩 - 숫자형으로 변환
# 전처리 - print(train.unique()) 에서 개수너무많은 칼럼 삭제
l = LabelEncoder()
l.fit(x['object변수']
pre_x = x.copy()
pre_x = pre_x.drop(columns = 'ID')
pre_x['object변수'] = l.fit_transform(x['object변수'])
# 위의 전처리 test에도 똑같이 적용
test_x = test.drop(columns = 'ID')
test_x['object변수'] = l.fit_transform(x['object변수']
# 원핫 인코딩
dum_x = pd.get_dummies(pre_x)
dum_test = pd.get_dummies(test_x)
# train에는 있고, test에는 없는 데이터 존재 (shape() 칼럼숫자 다름) -> reindex해주기
dum_test = dum_test.reindex(columns = dum_x.columns, fill_value = 0)
# 데이터 분할
x_train, x_test, y_train, y_test = train_test_split(dum_x,y)
# 모델 학습 및 평가
rr = RandomForestRegressor(random_state=1)
rr.fit(x_train,y_train)
pred = rr.predict(x_test)
pred = rr.predict_proba(x_test) # 구해야하는 게 확률일때
print('test rmse', np.sqrt(mean_squared_error(y_test,pred))
print('test f1_score', f1_score(y_test,pred,average='macro')) # 타깃이 multiclass 일 경우 average 지정 필요
print('test auc', roc_auc_acore(y_test,pred)) # 평가지표 auc
print('test auc', roc_acu_score(y_test,pred[:,1])) # 확률은 인덱싱 필요
pred_test = rr.predict(dum_test)
# 정답 엑셀 제출
sumission = pd.DataFrame()
sumission['ID'] = test['ID']
sumission['종속변수명'] = pred_test
sumission.head()
sumission.to_csv('엑셀명.csv',index=False)
'Daily > Get certificate' 카테고리의 다른 글
[빅분기] 독학 합격 후기 (0) | 2024.06.24 |
---|---|
[빅분기 실기] 3유형 (0) | 2024.06.14 |
[빅분기 실기] 1유형 (0) | 2024.06.14 |
[OPIc] IH 한번에 따기 (해커스클라라, 대학연합오픽) (0) | 2022.12.07 |
[ADsP] 통계전공자 1주일 독학 합격 후기 (0) | 2020.12.23 |
댓글