카테고리 없음

AICE Associate 자격증 준비 - 1

주녕콩 2025. 5. 28. 02:13

 

3. 모델링을 위해 본 과제는 2개의 데이터 파일을 읽어오려고 합니다.

Pandas를 사용해서 2개의 데이터 파일을 읽고 병합한 뒤, 기계이름(machine_name)에 해당하는 코드를 작성하세요.

  • 4000TT.csv 파일을 읽어온 데이터프레임 변수명을 df_4000TT로 설정하세요.
  • input.csv 파일을 읽어온 데이터프레임 변수명을 df_input으로 설정하세요.
  • 기계이름(machine_name)을 기준으로 두 데이터프레임을 병합하세요.
  • 입력값(input) 컬럼만 추출한 데이터프레임 변수명을 infoDF로 저장하세요.

4. Address(주소)에서 행정동만 추출한 분포표를 만들고자 합니다.

Address(주소)에서 행정동만 추출하여 countplot으로 표현하는 코드 완성을 작성하세요.

  1. Seaborn을 활용하세요.
  2. 주소(Address)에서 행정동만 추출하여 새로운 컬럼을 생성하세요.
  3. 새로 생성된 행정동 컬럼의 value_counts() 값을 확인해보세요.
  4. countplot을 활용하여 행정동 분포를 시각화하세요.
  5. 시각화된 x축은 ‘행정동’, y축은 ‘빈도수’가 출력되도록 하세요.

5. 주행시간과 평균속도의 분포를 같이 확인하고자 합니다.

Time_Driving(주행시간)과 Speed_Per_Hour(평균속도)를 infoDF로부터 그래프로 출력하세요.

  • Seaborn을 활용하세요.
  • 각각의 Time_Driving(주행시간)과 Speed_Per_Hour(평균속도)를 infoDF로부터 그래프로 출력하세요.

6. 위의 infoDF 그래프에서 속도 300이 넘는 이상치를 발견할 수 있습니다.

가이드에 따라서 전처리를 수행하고 조정하세요.

  • 이상 데이터를 확인하고 처리하세요.
  • infoDF 데이터프레임 중 Speed_Per_Hour 값이 300 이상인 데이터를 확인하세요.
  • 조건에 맞는 데이터를 제거하거나 다른 값으로 조정하세요.
  • 처리한 데이터를 infoDF에 반영하세요.
  • 조건을 활용한 데이터 전처리를 수행하세요. (예: drop, np.where 등)

7. 모델 성능을 제대로 내기 위해서 특정 값만 추출처리할 필요가 있습니다.

아래 가이드를 따라 값을 추출 처리하세요.

  • Speed_Per_Hour 값이 10 이상이고 300 이하인 경우만 추출하세요.
  • Time_Driving 값이 1 이상이고 1000 이하인 경우만 추출하세요.
  • 두 조건을 모두 만족하는 데이터를 추출하세요.
  • 조건에 맞는 데이터를 infoDF에 반영하세요.
  • Pandas를 활용한 조건 필터링을 사용하세요.

8. 모델 성능 향상을 위해 수치형 정규화를 수행하고자 합니다.

  • 수치형 변수(Speed_Per_Hour, Time_Driving)에 대해 정규화를 수행하세요.
  • 정규화를 수행한 값을 새로운 컬럼으로 추가하세요.
  • 정규화 방법은 자유롭게 선택하세요. (예: MinMax, Standard 등)

9. 원-핫 인코딩(One-hot encoding)은 문자열 변수를 각 열이진행렬로 변환하기 위해 사용됩니다.

원-핫 인코딩으로 아래 조건에 해당하는 컬럼 데이터를 변환하세요.

  • Address 컬럼을 활용하세요.
  • Address 컬럼에서 행정동 데이터를 기반으로 변환하세요.
  • pd.get_dummies() 함수를 활용하세요.
  • 변환된 데이터는 infoDF에 반영하세요.

10. 훈련과 검증 단계에 사용할 데이터를 분리하고자 합니다.

Time_Driving(주행시간) 컬럼을 label(y)로 나머지 컬럼을 feature(X)로 분할한 후 훈련데이터와 검증데이터로 분할하고자 합니다.
추가로 가이드에 따라서 훈련데이터와 검증데이터에 스케일링을 수행하세요.

  • 전체 infoDF 데이터를 활용
  • target 컬럼은 Time_Driving, 관련 데이터셋은 label = y
  • 나머지 컬럼은 X로 정의하여 feature X 구성
  • train_test_split을 활용하여 훈련(80%) 검증(20%) 데이터 분할
  • RandomState는 42로 설정
  • Scaler는 StandardScaler를 사용
  • 훈련데이터와 검증데이터에 각각 X_train, X_test에 스케일링 적용
  • Scaled 데이터프레임은 DataScaled라는 이름으로 구성하여 X_scaled, y_scaled 컬럼 생성

11. Time_Driving(주행시간)을 예측하는 머신러닝 모델을 만들고자 합니다.

의사결정나무(decision tree)와 랜덤포레스트(random forest)는 여러 가지 규칙을 수학적으로 결정하면서
독립 변수 값을 활용하는 모델으로 분류(classification)와 회귀(regression)에 모두 사용될 수 있습니다.
아래 가이드에 따라 의사결정나무(decision tree)와 랜덤포레스트(random forest) 모델을 구축하고 예측을 수행하세요.

  • 전체 데이터프레임 infoDF를 활용
  • 타겟 값은 Time_Driving 컬럼
  • 모델 학습 데이터와 검증 데이터를 분리(train_test_split, 80:20 비율)
  • 모델은 DecisionTreeRegressor, RandomForestRegressor 사용
  • 모델 성능은 RMSE(Root Mean Squared Error)로 평가
  • 예측된 결과를 시각화 (실제값 y_test, 예측값 y_pred 그래프 비교)
  • 최종적으로 RMSE 값과 예측 시각화 결과를 출력하세요.

12. 위의 의사결정나무(decision tree)와 랜덤포레스트(random forest) 모델 성능을 평가하고자 합니다.

아래 가이드에 따라 예측 결과의 mae(Mean Absolute Error) 값을 구하고 평가하세요.

  • 예측값을 활용하여 성능을 평가하세요.
  • 타겟 값은 Time_Driving, 예측 결과는 y_pred로 저장하세요.
  • 실제 값(y_test)과 예측 값(y_pred) 간의 차이를 비교하세요.
  • 회귀 성능 지표로 MAE(Mean Absolute Error)를 사용하세요.
  • sklearn.metrics에서 mean_absolute_error 함수를 임포트하여 사용하세요.
  • 의사결정나무 모델(decision tree)와 랜덤포레스트 모델(random forest)의 MAE를 각각 출력하고 비교하세요.
  • 비교한 결과를 기반으로 어떤 모델이 더 나은지 해석해보세요.

13. Time_Driving(주행시간)을 예측하는 딥러닝 모델을 만들고자 합니다.

아래 가이드에 따라 모델을 만들고 학습을 진행하세요.

  • Tensorflow(Keras)를 사용하여 딥러닝 모델을 생성하세요.
  • 입력층(Input), 은닉층(Hidden), 출력층(Output)을 구성하세요.
  • 모델 손실 함수(loss)는 mae를 사용하세요.
  • 모델 평가지표(metrics)는 mae, mse를 사용하세요.
  • 최적화 도구(optimizer)는 adam을 사용하세요.
  • fit() 함수를 활용하여 학습을 수행하세요.
  • 학습 이력을 history 변수에 저장하세요.
  • 학습 결과를 시각화하여 출력하세요. (loss, mae 시각화)

14. 위 딥러닝 모델의 성능을 평가하고자 합니다.

Matplotlib 라이브러리를 활용해서 학습 mse와 검증 mse를 그래프로 표현하세요.

  • 학습 시의 그래프에서 학습 mse, 검증 mse는 2가지 선으로 모두 표현하세요.
  • 그래프의 y축은 MSE로 설정하세요.
  • x축은 Epochs라고 표시하고, x축에는 MSE값의 추이를 표현하세요.