본문 바로가기
자격증/빅데이터분석기사

빅데이터분석기사 실기 2유형 템플릿 (회귀/분류)

by rnasterofmysea 2025. 5. 26.
728x90
반응형

 

참고자료:

https://youtu.be/3aAS0yyqLV4?si=D1KwxD3VBID_LH1A

https://product.kyobobook.co.kr/detail/S000213942959

 

2025 이기적 빅데이터분석기사 필기 기본서 | 나홍석 - 교보문고

2025 이기적 빅데이터분석기사 필기 기본서 | 최신 출제기준을 적용한 도서로, 빅데이터분석기사 필기 시험의 출제 경향을 철저히 분석하여 수험생들이 혼자서도 학습할 수 있도록 한 완벽 대비

product.kyobobook.co.kr

 

 

 


빅데이터분석기사 실기 2유형 템플릿 (회귀/분류)

빅데이터분석기사 실기 2유형 템플릿 (회귀/분류) 둘다 범용적으로 사용가능 한 템플릿 공유합니다.

2025 이기적 빅데이터분석기사 실기 문제 기출문제 3회(2021-12-04 시행) 에서 발췌한 작업형 제 2유형 기준으로 "
IT의 답을 터득하다, 아답터 "
님의 영상을 참고하였습니다.

 

나중에 쓸때 csv 파일 위치만 수정하고 주석 참고하셔서 진행하시면 됩니다.

 

 

빅데이터분석기사_실기_2유형_템플릿.ipynb
0.00MB

 

 

 

#step 0. 문제 파악

"""
회귀/분류 & 예측값
"""

trainX = pd.read_csv('https://raw.githubusercontent.com/YoungjinBD/data/main/exam/3_2_trainX.csv')
trainy = pd.read_csv('https://raw.githubusercontent.com/YoungjinBD/data/main/exam/3_2_trainy.csv')
testX = pd.read_csv('https://raw.githubusercontent.com/YoungjinBD/data/main/exam/3_2_testX.csv')

#step 1. 데이터 유형 파악

print(trainX.info())
print(trainy.info())
print(testX.info())

#step 2. 전처리

#2-1 X, Y, train/test set 분리

"""
train_X 데이터에 예측값(y가 존재할 경우) 제거해줘야한다.

X = train.drop(['y컬럼'], axis = 1)
y = train['y컬럼']
"""


X_full = pd.concat([trainX, testX], axis = 0)
X_full = pd.get_dummies(X_full)

#2-2 결측치 처리

"""
위에 info() 를 통해 null 값이 있는지 확인하고 null 값을 지우거나 채워준다
X_full['null_존재컬럼'] = X_full['null_존재컬럼'].fillna(0)
or
X_full['null_존재컬럼'] = X_full['null_존재컬럼'].dropna()
"""



#2-3 2-4 수치형 변수 스케일링 skip & 범주형 변수 인코딩

X_full = pd.get_dummies(X_full)

# print(X_full.shape)

#step 3. 데이터 분리

X_train = X_full[:trainX.shape[0]]
X_test = X_full[trainX.shape[0]:]

from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(X_train, trainy, test_size = 0.2, stratify = trainy)

# step 4. 모델학습 및 검증
"""
회귀일 경우 RandomForestRegressor  
분류일 경우 RandomForestClassifier
"""
from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X_train, y_train)
y_val_pred = model.predict(X_val)


# step 5. 평가 (skip 가능)

"""
평가가 필수는 아니나 예측률을 테스트 해 볼 수 있음
너무 낮을 경우 회귀 <-> 분류가 바뀌지 않았다 다시 한번 체크

회귀: root_mean_squared_error
분류: roc_auc_score, accuracy_score
"""

from sklearn.metrics import roc_auc_score, accuracy_score

acu_score = roc_auc_score(y_val, y_val_pred)
acc = accuracy_score(y_val, y_val_pred)
print(acu_score, acc)

# step 6. 결과 저장

y_pred = model.predict(X_test)
result = pd.DataFrame(y_pred, columns = ['pred'])
result.to_csv('result.csv', index = False)

#step 7. 생성 결과 확인

result = pd.read_csv('result.csv')
#print(result)
728x90
반응형