본문 바로가기
빅데이터 분석

빅데이터 분석기사 실기 9회 준비 파이썬 - 1,2,3유형 최종 정리 (7,8회 기출문제 정리해보기)

by Salon de arte 2024. 11. 28.
728x90
반응형

 

빅분기 D_2 남아따 ... ㅎ

 

일단 오늘은 

헷갈릴 수있는 코드들 정리해보기. 

 

1유형은 여태까지의 7,8회 시험으로 보아 엄청나게 어려웠던건 아니였지만 

groupby(), 집계함수 sum, mean, median, std 등 기초통계를 구할 수 있으면 어느정도 풀 수 있었다. 

만약에 시간에 대한 문제가 나온다 ? ㅎㅎ.. 음 pd.to_datetime 을 이용해 풀 수 있을 지도 

 

데이터마님 기출 6회 문제를 풀어보는 것도 좋을듯 

일단 pd.to_datetime은 str (문자열)을 시간으로 변경해주는 것이다. 

숫자열을 문자열로 바꾸는 함수는 .astype('str')로 변경해주기 , str.zfill(자리수)는 y m d hh ss 를 zfill을 이용해 채워주기. 

 

시간을 초로 변경하는 함수는 .dt.total_seconds () 로 

이정도만 외워가면 되겠지 ^^? 

 

 

 

참고로 8화 기출에 대한 후기는 여기 포스팅에 적어놓음 

2024.06.23 - [빅데이터 분석] - 빅데이터 분석기사 실기 - 8회 기출문제 후기

 

1유형 문제 

3문제 10점씩. 

 

평균 소비량이 가장 높은 대륙을 구하고 .. 두번째로 소비랑이 높은 ?뭐 그런걸 구해서 

답을 쓰는 문제였던걸로 ..... groupby 저 코드만 알았으면 바로 풀 수있었던  아주 ez한 문제 

 

문제 2 

또 마찬가지로 나라별 total 관광소비 금액을 구한 후... 

뭐랑 뭐랑 더해서 최종값 내는 문제.. .

 

결국엔 groupby 문제가 제일 많이 나왔었다. ㅎㅎㅎ

 

문제 3 

1유형 단골문제인 정규화 문제 

Min MAX Scaler 를 사용해 두가지 컬럼을 정규화함 

정규화 후에 컬럼에 대한 표준편차를 구해 

이 두 컬럼의 표준편차 차를 구하는 문제 ... 

 

코드는 

from sklearn.preprocessiong import MinMaxScaler 

Scaler=MinMaxScaler()

 

result= Scaler.fit_transform(df[[' 컬럼']]) # [[]]로 2D로 만듦

### 기억할 점은

  • MinMaxScaler.fit_transform()은 하나의 데이터만 사용 
  • MinMaxScaler는 2D 배열 형태를 기대하므로, [[]]를 사용해 2D로 변환해야 함.

 

2유형 문제 

40점 

 

7,8회 둘다 선형회귀가 나왔고, 선형회귀 결과를 정수로 처리하지 않는것! 

컬럼명 잘확인하기 (데린이는 이것때문에 삼수중 ^^... )

 

2유형은 선형회귀 /로지스틱회귀 둘중 하나 이므로 

앙상블 모델 사용해 RandomForestClassifier, RandomForestRegressor로 사용 

 

RandomForestClassifier 일때는 평가지표는 f1score, roc_auc_score 

 

RandomForestRegressor 일때 평가지표는 mse,Rmse, mae,r2_score 

 

전처리과정시 get_dummies 활용하기, Label Encoder 필요시 (순서형 척도일 경우)

 

 

 

3유형문제

선형회귀/ 로지스틱 회귀 둘다 나왔고 5점씩 6문제 =30점 

 

선형 회귀는 

from statsmodel.formula.api import ols 

 

formula= "종속~ 독립1+독립2 ..."

 

model= ols(formula, data).fit()

 

model.summary() 

여기서 유의확률 p_value 확인, rsquare 확인, 상관계수 (회귀계수) 는 model.params 

오즈비는 np.exp(model.params )

오즈비의 증가는  np.exp(model.params )*3 이런식으로 계산하기 

 

 

로지스틱 회귀는 

from statsmodel.formula.api import logit 

formula= "종속~ 독립1+독립2 ~~"

model= logit(formula,data).fit()

model.summary() 

 

예측 model.predict()

 

유의확률 확인, 상관계수 확인 = model.params

오즈비 확인 np.exp(model.params )

 

 

저번 8회에서는

 콜센터 데이터 가지고 

유의성이 가장 낮은 변수의 갯수를 써라 했음  유의성은 p-value 를 가지고 확인한다 !!!! 

(저번엔 이걸 잘못 품 ㅋ)

 

두번째는 여기서 유의한 컬럼들을 가지고 다시 모델을 만든후 

상관계수의 평균을 구하는거였음 ..

model.params.mean()

세번째는 오즈비를 구하는 문제 

np.exp(model.params ) 잊지말자! 

 

 

두번째는 선형회귀 문제 

 

뇌 크기가 종속변수 이고 키 몸무게 나이 ?와 같은 독립변수들과의 

상관계수가 가장 낮은 것을 쓰는거였던거같다. 

 

두번째는 결정계수 r2

결정계수 는 r2이다 ~~~ 

 

혹시 모르니까  로그 우도를 구하기 

log_likelihood = model.llf

print("Log-Likelihood:", log_likelihood) 

 

  • 로그 우도 값: 값이 클수록(덜 부정적일수록) 모델이 데이터를 더 잘 설명하고 있음을 의미 

 

 

 

세번째는 .. 나이 80 키 400 몸무게 200 ? 이런 숫자를 가지고 (기억이 안남)

뇌크기를 예측하는 문제

데이터 프레임 만들때 pred= pd.DataFrame({'a':80, 'b':400, 'c':200}) 이렇게 만들기 ! 

 

 

 

 

 

3유형에서 또 나올 수있는 것들은 검정통계인데 ... 

 

독립 함수 2개 검정 ttest_rel , 정규성 검정 shapiro, 만약 정규성을따르지 않는다면 .........그냥 버릴래 ㅎㅎ...

 

카이제곱 검정 도나올 확률이 있고 

독립성 검정 chi2_square

적합성 검정 chisquare 

이정도만 알아두면 좋지 않을까 ?

 

 

2024.11.22 - [빅데이터 분석] - 2024 빅데이터 분석기사 빅분기 실기 9회 파이썬 공부 -제3유형 (+8회 기출 후기)

 

2024 빅데이터 분석기사 빅분기 실기 9회 파이썬 공부 -제3유형 (+8회 기출 후기)

빅분기 실기 9회^^...다행히 저번보다 가까운 시험장소 선정했구 ~ 그래도 열심히?  공부 했다고 할 수있다... ^^ 뭔가 자꾸 떠올리면 내머릿속의 지우개 같지만 아냐. 할 수있어!!!  마지막이기

lifeinwonderland.tistory.com

 

 

 

일단 첫번째로 카이제곱 검정에 대한 내용. 

1. from scipy.stats import chisquare

stats, p_value= chisqaure(실제 수치, 기대빈도 )

 

이 문제를 풀때 확인해야할 것은 a,b,c가 ~% 로 들어있다고 할때 이 데이터가 적합한지 검정해라 이런 뉘앙스의 문제이다 .

그러면 

 

귀무가설: 데이터가 적합하다.

대립가설:데이터가 적합하지 않다.

 

로 가설 설정을 한 후 p_value 가 0.05 보다 크면 귀무가설을 채택 = 데이터가 적합하다 / p_value가 0.05 보다 작으면 대립가설을 채택한다. 

 

실제 수치 를 [ 실제, 실제, 실제로] 만들고 

기대값을 [기대값,기대값,기대값] 으로 만들어 

카이제곱 검정에 넣어주기만 하면 되는 간단한 방법 

 

from scipy.stats import chisquare

# 실제 수치 (Observed Frequencies)
observed = [실제값1, 실제값2, ...]

# 기대 수치 (Expected Frequencies)
expected = [기대값1, 기대값2, ...]

# 카이제곱 검정 수행
stat, p_value = chisquare(f_obs=observed, f_exp=expected)

print("Chi-Square Statistic:", stat)
print("p-value:", p_value)

 

 

카이제곱 검정의 독립성 검정은 chi2_contingency 로 검정한다. 

독립성 검정은 컬럼 1과 컬럼 2가 서로 상관이 있는지 카이제곱으로 검정하라 이런 뉘앙스의 문제들이다. 

 

 

적합성 검정과는 다르게 독립성 검정은 

교차표가 필요하고 

이미 데이터프레임이 주어진 상태다라면 

 

table= pd.crosstab(df['컬럼'],df['컬럼2'])

 로 교차표를 생성해 chi2_contingency에 넣어주면 된다. 

 

없는 경우 data = [ 'a': [관측1, 관측2,]. 'b': [관측3,관측4]] 로 교차표를 생성해주면 된다. 

 

from scipy.stats import chi2_contingency

# 교차표 (2D 배열)
data = [
    [관측값_1_1, 관측값_1_2, ...],  # 첫 번째 행
    [관측값_2_1, 관측값_2_2, ...],  # 두 번째 행
    ...
]

# 카이제곱 독립성 검정
chi2, p, dof, expected = chi2_contingency(data)

print("Chi-Square Statistic:", chi2)
print("p-value:", p)
print("Degrees of Freedom:", dof)
print("Expected Frequencies:")
print(expected)

 

 

이정도만 알고가도 60점은 넘지 않을까 싶다 ^^... 제발 화이팅 ^^! 

내일은 7회 기출을 한번 싹 푸는걸로 마무리 해봐야겠다.

사실 파도파도 모르는게 계속 나오기 때문에 헷갈릴바에 확실하게 이해하고 가는게 좋을듯 >< 

 

참고로 모를땐 그냥 챗 지피티 이용하면 설명을 잘해준다.

 

이렇게 해서 이해가 안갈땐 챗지피티에게 설명을 맡기면 아주 친절하게 설명해준다 

728x90
반응형

댓글