빅데이터 분석기사/실기 요약

[빅데이터분석기사/실기요약] 제2유형. 파이썬 템플릿 (암기용 요약 자료★)

✨️데이터분석가✨️ 2025. 6. 25. 23:38
728x90
728x90

빅데이터분석기사 실기 제2유형은 문제 형태가 정해져 있어, 달달 외우기만 하면 됩니다.

 

그 동안의 기출들을 분석해서 심혈을 기울여서 만든 최적의 파이썬 템플릿을 공유합니다.

아래 코드만 암기하면 40점을 확보할 수 있는 실시 시험의 가장 Key 입니다.

이해도 필요 없고 외우기만 하면 되니까 반복 연습해서 줄줄줄 작성할 수 있도록 암기하시길 바랍니다~

 

 


 

먼저, 문제를 보고 [분류] or [회귀] 문제인지 확인하는 과정이 필요합니다. (회귀 출제 빈도가 높음)

- [분류] 문제는 예측대상이 범주형인 경우이며, 아래 코드에서 ☆는 분류에만 해당하는 코드임

- [회귀] 문제는 예측대상이 수치형인 경우이며, 아래 코드에서 ★는 회귀에만 해당하는 코드임

 

# 0. 데이터 불러오기
train = pd.read_csv('train.csv')
test= pd.read_csv('test.csv')
 
# 1. 데이터 확인하기
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier # 분류
from sklearn.ensemble import RandomForestRegressor # ★회귀
from sklearn.metrics import f1_score, accuracy_score, roc_auc_score # ☆분류
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error # ★회귀
 
print(train) # 변수 및 데이터 확인
print(test)
print(train.info()) # 범주형 변수 확인
print(test.info())
print(train.isnull().sum()) # 결측치 확인
print(test.isnull().sum())

# 2. 데이터 전처리 - train, test 둘 다 처리! (→ But, 보통 결측치 없는 데이터로 출제됨) 
train['A'] = train['A'].fillna(train['A'].mean()) # 평균 대체
test['A'] = test['A'].fillna(test['A'].mean())
train['A'] = train['A'].fillna(train['A'].mode()[0]) # 최빈값 대체
train['A'] = train['A'].fillna(0# 0으로 대체
train['A'] = train['A'].fillna(method='bfill'# 뒤 값으로 대체
 
train = train.dropna() # 전체 결측치 데이터 삭제
train = train.dropna(subset=['A', 'B']) # 특정컬럼의 결측치 데이터 삭제
train = train.dropna(axis=1) # 결측치 있는 컬럼 삭제

# 3. 불필요한 데이터 삭제
test_id = test['ID'] # ID를 최종 제출파일에 포함하여야 하는 경우에 실행
y = train['price'] # 예측 대상
train = train.drop(['ID', 'name'], axis=1) # 데이터와 관련 없는 변수 작성
test = test.drop(['ID', 'name'], axis=1)

# 4. 원핫인코딩
df = pd.concat([train, test]) # 합치기
df = pd.get_dummies(df, columns=['A', 'B']) # 범주형 변수 모두 작성 / 더미변환
train = df.iloc[:len(train),:].copy() # 다시 분리
test = df.iloc[len(train):,:].copy()

# 5. 검증데이터 분리
x_tr, x_val, y_tr, y_val = train_test_split(train, y, test_size=0.2, random_state=42)

# 6. 모델 학습 및 평가 (랜덤포레스트)
rf = RandomForestClassifier(random_state=42) # ☆분류
rf = RandomForestRegressor(random_state=42# ★회귀
rf.fit(x_tr, y_tr)

# 7-1. 분류모델 평가 및 예측 - 1) 정확도, 직접예측 (사용자 수 등)
pred = rf.predict(x_val)
print(f1_score(y_val, pred)) # 다중분류는 (y_val, pred, average='macro') 작성
print(accuracy_score(y_val, pred))
pred = rf.predict(test)
pd.DataFrame({'ID':test_id, 'pred':pred}).to_csv('result.csv', index=False) # 제출해야 하는 변수명으로 작성

# 7-1. 분류모델 평가 및 예측 - 2) auc, 확률
pred_proba = rf.predict_proba(x_val)[:,1]
print(roc_auc_score(y_val, pred_proba))
pred_proba = rf.predict_proba(test)[:,1]
pd.DataFrame({'Id':test_id, 'pred':pred_proba}).to_csv('result.csv', index=False)

# 7-2. 회귀모델 평가 및 예측
pred = rf.predict(x_val)
print("r2: ",r2_score(y_val, pred)) # R-squared (1에 가까울수록 좋음)
print("mae: ",mean_absolute_error(y_val, pred)) # MAE
print("mse: ",mean_squared_error(y_val, pred)) # MSE
print("rmse: ",np.sqrt(mean_squared_error(y_val, pred))) # RMSE (자주 출제됨)
pred = rf.predict(test)
pd.DataFrame({'ID':test_id, 'pred':pred}).to_csv("result.csv", index=False)
 
# 8. 결과 확인
print(len(pred), len(test_id)) # 동일해야 함
result = pd.read_csv('result.csv') # 예시 형태로 나오는지 확인
print(result)

 

 

 

 

 

 

[빅데이터분석기사/실기] 제2유형. 머신러닝 및 평가지표

제2유형은 머신러닝에 대한 문제이며, 1문제이지만 배점이 40점으로 가장 높습니다.주어진 라이브러리와 데이터를 불러온 뒤, 데이터 전처리를 거쳐 모델을 학습시키고 평가한 결과를 CSV 코드

dataslog.tistory.com

 

 

[빅데이터분석기사/실기] 제2유형. 평가지표

제2유형 평가지표에 대한 내용입니다.통계에 대한 내용이라 비전공자는 다소 어렵기 때문에 그냥 통째로 암기!ㅎㅎ 1. 이진분류 평가지표(0과 1로 이루어진 데이터) import pandas as pdfrom sklearn.ensembl

dataslog.tistory.com

 

 

[빅데이터분석기사/실기] 제2유형. 모의문제

제2유형 모의문제 입니다.총 3문제이며, 모두 다른 유형의 문제이니 다 풀어보시는 것을 추천드립니다. 문1. 분류 (신용카드를 떠나는 고객을 찾아라)1) 데이터 불러오기import pandas as pdtrain = pd.read

dataslog.tistory.com

 

 

 

 

 

728x90
728x90