본문 바로가기
IT -Tips

빅데이터분석기사 실기 공략(10회 후기)

by 순박한근로자 2025. 7. 30.
728x90

공략 순서: 유형 2(40점 만점 목표) → 유형 1(20점 이상 목표)  → 유형 3(5점 이상 목표)

실기 시험 Tip
- 시험에는 부분 실행 기능이 없으므로, 전체 작성하여 실행하는 연습 필요
- import 관련 문장은 모두 암기 필요. (import 못하면 시작도 못함)
- 유형2: 2가지 유형별 코딩 진행을 완벽 숙지 필요
- 유형1: 기출 문제는 모두 풀어볼 것
- 유형3: 데이터의 summary() 결과 중, 특히 p-value를 해석하는 연습 필요 

 

[유형2]------------------------------------

- 유형2는 40점 만점 목표

1) 데이터가 분류형인지, 회귀형인지 판단
2) 형에 맞는 라이브러리, 클래스 import (RFC는 필수 암기)
3) 전처리
4) 데이터분할
5) 모델 생성
6) 모델 평가

(평가 결과에 따라, get_dummies 나 LabelEncoder 재선택)


7) 제출

 

(분류형 예시) 
# 1. 클래스 임포트
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, f1_score 

# 2. 전처리,결측치, 인코딩
le=LabelEncoder()
for col in train.select_dtypes(include='object').columns:
  train[col]=le.fit_transform(train[col])
  test[col]=le.transform(test[col])

# 3. 데이터 분할
y_train= train['Preferred Metaverse Type']
x_train= train.drop(columns=['Preferred Metaverse Type'])
x_train, x_val,y_train,y_val= train_test_split(x_train, y_train, test_size=0.2, random_state=42)

# 4. 모델 생성
model=RandomForestClassifier(random_state=42)
model.fit(x_train,y_train)

# 5. 모델 평가
y_pred=model.predict(x_val)
print(accuracy_score(y_val,y_pred))
print(f1_score(y_val,y_pred, average='macro'))

# 6. 제출
result=model.predict(test)
pd.DataFrame({'pred':result}).to_csv('result.csv', index=False)
final=pd.read_csv('result.csv')
print(final.shape, test.shape)

----------------------------------
(회귀형 예시)
# 1. 클래스 임포트

import pandas as pd

from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error, mean_squared_error

# 2 전처리,인코딩.
x_train=x_train.drop(columns=['carID','model'])
x_test=x_test.drop(columns=['carID','model'])
y_train=y_train.drop(columns=['carID'])
le=LabelEncoder()
for col in x_test.select_dtypes(include='object').columns:
  x_train[col]=le.fit_transform(x_train[col])
  x_test[col]=le.transform(x_test[col])

*참고. 원 핫 인코딩 
x_train=pd.get_dummies(x_train, columns=['brand', 'transmission', 'fuelType'])

#3 데이터 분할
x_train, x_val, y_train, y_val = train_test_split(x_train, y_train, test_size=0.2, random_state=42  )

# 4 모델 생성
model=RandomForestRegressor()
model.fit(x_train, y_train)

# 5 모델 평가 rmse
y_pred = model.predict(x_val)
print(np.sqrt(mean_squared_error(y_val, y_pred)))

# 6 제출
result=model.predict(x_test)
pd.DataFrame({'pred':result}).to_csv('result.csv', index=False)
final=pd.read_csv('result.csv')
print(final.shape, x_test.shape)

 

[유형1]------------------------------------

- 기출 최대한 많이 풀어보고 가기
- 구분자를 기준으로 나눠주는 함수 미리 숙지 split

그 외, 기타 등등
- year 를 기준으로 데이터프레임 재구성: pd.melt(df,['year']) 
- sort_values(ascending=False)
   sort_values('CRIM', ascending=False)
- iloc[:] , 10번째 iloc[9,0] , 1~9번째 iloc[0:9,0] 
- 1사분위(Q1): quantile(0.25)  
- 평균: mean(), 표준편차: std()
- 열의 이름: df.index[0]
- 컬럼값 빈도: value_counts()   df['evaluation_subject'].value_counts() 
-1개 row를 테이블데이터 전환: pd.melt(df, 'year') 기준 명시한 변수 외엔 모두 병합 
- sklearn 스케일러(예: StandardScaler, MinMaxScaler 등)는 2차원 데이터요구
  대괄호 2번 사용: mtcar[['wt']]
- 날짜 변환: pd.to_datetime(df['date_added'])
- datetime에서 일부 추출: df['dt_con'].dt.year, dt.month    dt. 붙여야됨 
- 소수점 버림: math.floor()   import math 필요
- groupby 함수: df.groupby(['학교'])['전체학생수'].sum().reset_index()
  reset_index() 해줘야 편함
- 초단위로 변환: group_df['delay'].dt.total_seconds()
- 여러컬럼 한번에 더하기: 대괄호 2개, sum(axis=1)
  df['total']=df[['강력범', '절도범', '폭력범', '지능범', '풍속범', '기타형사범']].sum(axis=1)
- 텍스트 일부 추출: df['년월'].str[:4]
- 모든 변수의 상관계수 계산: corr()  corr_matrix=df.corr()
- 상관계수 제일 높은것 찾기: 절대값 제일 큰것
  corr_matrix["MEDV"].drop("MEDV").abs().idxmax()
- 여러 컬럼 선택하려면 대괄호 2개 감싸야됨
   df[['Ozone', 'Solar.R', 'Wind']]

예시)
melt_df=pd.melt(df,['year'])
df_2000=melt_df[melt_df['year']==2000]
mean_v=df_2000['value'].mean()
print(len(df_2000[df_2000['value']>mean_v]))

 

[유형3]------------------------------------

- 데이터 summary 결과 해석 능력 필요
- 예시로, ' 유의수준 5% 하에서 유의미한 변수만 사용하는 경우' 와 같은 문제
- 위와 같은 경우, summary의 결과값에서 p-value가 0.05인 변수들만 추려내어 통계를 낼 수 있어야 함.

728x90