IT 자격증/빅데이터분석기사

[빅분기] 실기 유형별 정리(문제접근 방식 모음) D-day!! (D-6 단기간 공부법)

SOIT 2023. 11. 27. 02:33

 

1. 공부법

 

- 개인적으로 단기간에 따고 싶으면 퇴근 후 딴짓 영상 추천합니다.

(단, 기본지식 알면 맥락 빠르게 중요 포인트만 파악하기 좋아서 추천--> 개념 + 코드가 간단해서 귯귯)

퇴근 후 딴짓 영상은 유료입니다.. 근데 무료 버전도 몇 개 있어요! + 무료 캐글 공부도)-- 참고

 

- 다만, 시간 많이 투자 가능하면 비추

(무적 코드(2유형) + 데이터 마님 전처리(1유형)만 공부해도 귯귯)

 

결론: 저는 시간이 일주일도 투자할 수 없어 데이터 마님은 안 하고, 퇴근후딴짓 + 수제비 했습니다.

 

+ 개인적인 생각: 수제비 는 .. 진짜 기본 지식 있으신 분들.. 비추입니다 ^^ 전 정말 돈 날렸어요.. 인터넷에 떠도는 코드만 봐도 귯귯이었다..

 

+ 2유형; 나만의 코드를 만들자: 시험 전 다른 코드 풀이를 보는 것은 오히려 방해됨 ..! 단기간에 좋은 코드를 찾아 외우세요!

 

+ 안함*데이터마님

- 개인적으로 데이터마님 문제는 좋은데,,,

- 주관적인 의견: 코드 작성이 가독성이 좀 안 좋은 코드도 몇 개 있어 문제 풀이는 안 했습니다 ㅜ 분량도 많고.. 단기간에는 적합하지 않아요..

(그치만 시간이 많다면 도움이 왕왕 됐다는 후기들이 많으니 참고 바랍니다!)


2. 계획

 

D-6

2유형)

이진분류

 

D-5

2유형)

회귀 1회

다중분류 1회

3유형)

개념 + 코드 복습

 

D-4

1유형) 기출+예시문제

예시문제 + 6회 기출 (영상)

2유형)

기출 (회귀, 다중분류)

3유형)

마스터(개념 문제) + 기출

 

D-3

1유형)

~6회기출+체험환경(예시문제)

퇴근후딴짓-영상-섹션17

 

D-2

모의고사)

*수제비 책(모의고사 1회분)

*퇴근후딴짓-캐글

- 퇴근후딴짓의 모의고사 부분에 꼭 봐야할 내용들 다시 보기!!

 

D-1

기출 6회 다시

3유형 개념 다시보기

유형별 헷갈리는 부분 다시보기

 

D-day

3유형 개념 다시 풀기

2유형 무적코드로 다시 풀기

-->제가 6일동안 괜찮은 코드로 짜보았는데..! 진짜 성능도 평타에, 모든 문제에 무적으로 사용 가능합니다.!

단, 꼭꼮 흐름만 외우고 변수명만 변형하기..!  

 

※ 참고

2023.12.01 - [자격증/빅데이터분석기사] - [빅분기] 실기 2~6회 기출 코드 풀이(간단한 코드로 풀기, 2유형 무적 코드)

 

[빅분기] 실기 2~6회 기출 코드 풀이(간단한 코드로 풀기, 2유형 무적 코드)

1회는 코로나로 취소되었기에, 2회부터 풀이 시작합니다.! 아래에 작성된 2유형 코드는 무적코드이니.! 꼭꼮 외우기..★ ※ (4회 코드는 무적 코드) ※ (3회 코드는 변형된 무적 코드) 2회 작업형1

solearn.tistory.com

 

 

 

6일동안 하루 평균 5-6시간 정도 투자했습니다ㅜㅜ.. 정말 투자를 못 했다.. 심지어 하루는 2시간 함..

 

(늘 다른 공부로 촉박했던 하루라.. 퇴근 후 딴짓 3유형 영상이 도움 왕왕됨)

 

주관적 의견:

- 1유형은 도움이 거의 안 됐고,,(기본 베이스 있어서 금방 풀었음- 시계열 빼고.. 내가 아는 것은 pd.to_datetime() 인데.. 까먹은 거 다시 되살리는 기회 좋네요)

 

- 2유형은 70% 도움됨 -> 기존에 가독성 있는 풀이 발견해서 그게 귯귯

- 3유형은 기출도 1회인데, 모의고사도 별로 없고.. 걱정했는데 퇴근 후 딴짓 3유형 설명 + 코드풀이는 진짜 최고


1 유형 정리

기본 있을 경우: 사실 시계열 다시 공부 + 정렬 + iloc, loc 하는 법 알면 끝.

※ 단, 기본 없을 경우: 데이터 마님-> 전처리 추천


2 유형 정리

※ 참고

2023.12.01 - [자격증/빅데이터분석기사] - [빅분기] 실기 2~6회 기출 코드 풀이(간단한 코드로 풀기, 2유형 무적 코드)


3 유형 정리

1. T-test 검정 문제 확인

1) 검정 확인: 모집단 수(1개 or 2개)

2) 검정방향 확인: 대립가설 기준

3) 정규성/ 등분산성 여부 확인

- 문제제시: 정규성 만족한다.

- 문제제시: 언급이 없음(정규성/ 등분산성 여부 확인 진행)

4) 검정

5) 0.05(or 제시한 유의수준)보다 작으면 귀무가설 기각=정규성/등분산성 불만족

 

 

2. 카이제곱 검정 문제 확인

1) 검정 확인: 범주형/ 빈도수/ 데이터가 주어지지 않음

2) 적합도 검정/ 독립성 검정 파악하기- 대립가설 확인

3) 관찰도수(ob), 기대도수(su) 정의하기

4) 검정

5) 0.05(or 제시한 유의수준)보다 작으면 귀무가설 기각

 

3. 회귀분석 문제 확인

1) 상관관계: corr(method='pearsonr'/ 'spearman' / 'kendall')

2) 상관관계 검정: stats.pearsonr(x,y)/ stats.spearmanr(x,y)/ stats.kendalltau(x,y)

3) 단순/ 다중 선형회귀분석:

- from statsmodels.formula import ols

- 단순 model = ols('종속변수~독립변수', data=df).fit()

- 다중  model = ols('종속변수~독립변수1+ 독립변수2 + ...', data=df).fit()

 

3) 문제 풀기

- model.summary() 회귀 모델 통계적 요약

확인:  R-squared(결정계수), Adj. R-squared(수정된 결정계수), coef(회귀계수), P>|t| (p-valuee)

- model.predict() # 예측값

- model.get_prediction() # 예측값과 예측값에 대한 신뢰구간, 예측구간

- df['잔차'] = df['종속변수'] - model.predict(df)

 

4) 실전 문제:

- 결정계수: model. rsquared

- 기울기: model.params['독립변수']

- 절편: model.params[' Intercept ']

- p값:  model.pvalues['독립변수']

 

- 모델 예측값(ex.독립변수가 50일 때)

: model.predict(pd.DataFrame({'몸무게':[50]}))

- 잔차제곱합(SSE)

sum(model.resid ** 2)

- 잔차제곱평균(MSE)

mean(model.resid ** 2)

 

- 신뢰구간(90:0.1,95:0.05,99:0.01)

pred = model.get_prediction(pd.DataFrame({'몸무게':[50]}))

   pred.smmary_frame(alpha=0.05) # 95%신뢰구간

 

5) 회귀에 범주형 변수 있어도 무방: ols에 넣으면 자동으로 one hot encoding이 된다.

 

 

4. 분산분석 문제 확인

1) 검정 확인: 모집단 수(3개)

2) 요인수 확인: 하나(일원산분석) or 두개(이원산분석)

3) 정규성(shapiro()) 확인

4) 귀무가설 기각(정규성 만족X): 크루스칼 검정: stats.kruskal()

 

5) 귀무가설 채택(정규성 만족), 등분산성(levene()) 만족: 일원산분석: stats.f_oneway() or anova Table

5) 귀무가설 채택(정규성 만족), 등분산성(levene()) 만족: 이원산분석: anova Table

 

6) 문제에서 아래와 같이 물어볼 경우: anova Table 통해 확인

  • df: 자유도
  • sum_sq: 제곱합 (그룹 평균 간의 차이를 나타내는 제곱합)
  • mean_sq: 평균 제곱 (sum_sq/자유도)
  • F: 검정통계량
  • PR(>F): p-value

7) anova Table

df_melt = df.melt()

 from statsmodels.formula.api import ols 

 from statsmodels.stats.anova import anova_lm

 model = ols('종속변수~독립변수', df = df_melt).fit()

#이원산분석의 경우, 주효과가 있는 범주형 독립변수는 C()로 묶어서 확인하

 model = ols('종속변수~C(독립변수1)+ C(독립변수2) + C(독립변수1): C(독립변수2) ', df = df_melt).fit()

 anova_lm(model)

728x90