데이터 분석가:Applied Data Analytics/자격증(ADsP,빅분기 등)

빅분기 계산문제

데이터분석 2025. 3. 15. 23:34
320x100
728x90

1. 결측치 처리 문제

문제:

근속연수 컬럼의 결측치를 부서와 성과등급별 평균값으로 대체하고, 결측치가 채워진 후 근속연수 컬럼을 정수형으로 변환하세요.

풀이:

  1. 부서와 성과등급별로 그룹화하여 평균값 계산:
  2. pythongroup = df.groupby(['부서', '성과등급'])['근속연수'].mean()
  3. 결측값을 그룹별 평균값으로 대체:
  4. pythonnew_work_list = [] for index, value in enumerate(df['근속연수']): if pd.isna(value): *# 결측치 확인* buseo = df['부서'].iloc[index] sunggwa = df['성과등급'].iloc[index] new_work_list.append(group.loc[(buseo, sunggwa)]) else: new_work_list.append(value) df['근속연수'] = new_work_list
  5. 정수형으로 변환:
  6. pythondf['근속연수'] = df['근속연수'].apply(lambda x: int(x))

답:

결측치가 채워진 후 근속연수 컬럼은 정수형으로 변환됩니다.

2. 다중회귀분석에서 유의하지 않은 설명변수 개수 구하기

문제:

주어진 데이터로 다중회귀분석을 시행한 후, 유의하지 않은 설명변수의 개수를 구하세요.

풀이:

  1. 데이터 분리:
  2. pythontrain = df[df['id'] <= 140] test = df[df['id'] > 140]
  3. 다중회귀분석 모델 학습:
  4. pythonfrom statsmodels.formula.api import ols model = ols("design ~ tenure + f2 + f3 + f4 + f5", data=train).fit()
  5. p-value 확인:
  6. pythonprint(model.pvalues < 0.05)
  7. 유의하지 않은 변수 개수 확인:
    • tenuref3, **f5**가 p-value > 0.05로 유의하지 않음.

답: 유의하지 않은 변수는 3개.

3. 로지스틱 회귀분석에서 특정 변수의 p-value 구하기

문제:

로지스틱 회귀분석을 시행한 후, 특정 변수(col1)의 p-value를 소수점 3자리까지 반올림하여 구하세요.

풀이:

  1. 로지스틱 회귀모델 학습:
  2. pythonfrom statsmodels.formula.api import logit model = logit("churn ~ col1 + col2 + Phone_Service + Tech_Insurance", data=df).fit()
  3. p-value 확인 및 반올림:
  4. pythonprint(round(model.pvalues['col1'], 3))

답: col1의 p-value는 0.047.

4. 로지스틱 회귀분석으로 이탈할 확률이 특정 값 이상인 고객 수 구하기

문제:

로지스틱 회귀모델로 예측한 이탈 확률이 0.3 이상인 고객 수를 구하세요.

풀이:

  1. 예측 확률 계산:
  2. pythonpred = result.predict(df)
  3. 조건에 맞는 고객 수 계산:
  4. pythonprint(sum(pred > 0.3))

답: 이탈 확률이 0.3 이상인 고객 수는 225명.

5. 혼동행렬에서 F1-score 계산

문제:

혼동행렬을 기반으로 F1-score를 계산하세요.

풀이:

  1. F1-score 계산식 사용:
  2. pythonfrom sklearn.metrics import f1_score f1 = f1_score(y_true, y_pred, average='macro')

답: F1-score는 모델 성능에 따라 달라지며, 예시에서는 약 0.70.

6. 시계열 데이터 분할

문제:

주어진 시계열 데이터를 학습 데이터와 테스트 데이터로 나누세요.

풀이:

  1. 날짜 기준으로 분할:
  2. pythontrain_data = df[df['날짜'] < '2025-01-01'] test_data = df[df['날짜'] >= '2025-01-01']

답: 학습 데이터와 테스트 데이터가 분리됩니다.

7. 주성분 분석(PCA)에서 분산 비율 계산

문제:

주어진 주성분 분석 결과에서 특정 주성분(PC3)이 전체 분산의 몇 %를 설명하는지 계산하세요.

풀이:

  • 주성분 분석 결과에서 PC3의 Proportion of Variance 값을 확인하여 답 작성.

기타 예상 계산 문제

데이터 전처리 관련 문제

  • 범주형 변수 처리(라벨 인코딩 vs 원핫 인코딩).
  • 로그 변환 또는 정규화 수행.