내배캠(개인과제)/Python

[개인과제] ML

신짜린 2024. 8. 21. 20:42

신채린_ML.html
0.96MB
신채린_ML.ipynb
0.37MB

문제 1. 데이터 셋 불러오기

  • scikit-learn 라이브러리의 데이터셋을 사용하는 방법을 익힙니다.
  • 아래와 같이 데이터를 불러오세요
    1. 데이터 셋에는 더 많은 종류가 있으니 찾아보시면 좋겠죠?
    2. 예시에는 붓꽃 데이터셋을 불러오고 있어요! iris를 제외한 다른 데이터셋을 직접찾아 가져와보세요
    from sklearn.datasets import load_iris
    iris = load_iris()
    X, y = iris.data, iris.target
  • 입력 데이터와 레이블을 불러온 후 학습을 위한 데이터셋과 테스트를 위한 데이터셋으로 분리하세요
  • (Hint!) sklearn의 train_test_split를 이용하면 편하게 데이터를 분리할 수 있습니다.

 

문제 2. Diabetes 데이터 회귀 분석 진행하기

  • Diabetes 데이터셋을 사용하세요!
  • 해당 데이터의 특징과 문제 해결 유형을 정리하세요
  • Linear Regression 모델과 Polynomial Regression 모델을 학습한 후 MSE로 성능을 계산한 후 비교해보세요!
  • 해당 문제에서는 Accuracy를 사용하면 어떻게 될지 고민해보세요!
  • (Hint!) sklearn의 mean_squared_error를 이용하면 편하게 MSE를 계산할 수 있습니다.

 

문제 3. iris 데이터 Decision Tree로 분류

  • Iris 데이터셋을 사용하여 DecisionTree 모델을 학습시키고, 정확도(accuracy)를 계산하세요
  • 데이터는 Sklearn의 데이터를 활용하세요

 

문제 4. 타이타닉 데이터 불러오기 및 전처리 하기

  • 타이타닉 데이터셋은 분류 문제를 해결하기 위한 대표 데이터셋입니다.
  • Seaborn, Kaggle, Web 접근 등 다양한 방식으로 불러올 수 있어요.
  • 한 가지 방법을 설정해서 데이터셋을 읽어오는 연습을 해봅시다!
  • 기본 데이터의 특성 중 다음 특성들만 사용하도록 데이터를 수정해봅시다. (1번 학습 데이터로 저장!, 변수 이름은 임의로 설정해주세요)
  • 1번 데이터는 수치형 데이터만 포함해주세요
  • 다음으로는 기본 데이터의 비수치형 데이터를 포함해 전처리를 다양하게 진행해 저장해주세요 (2번 데이터로 저장!, 1번 데이터와 별도로 저장해주세요)
  • 1번 데이터와 2번 데이터를 학습 데이터와 테스트 데이터로 구분해주세요

 

문제 5. 타이타닉 데이터 분류하기

  • sklearn 라이브러리의 랜덤포레스트 모델을 활용해 1번 데이터와 2번 데이터 학습해주세요! (학습 데이터 사용)
  • 테스트 데이터에 대한 성능을 Precision, Recall로 측정 후 사용한 데이터 특성에 따른 성능을 비교해보세요!
  • 위의 두 메트릭은 F1 score에 사용됩니다. 의미를 생각해보신 후 정리해주세요.
  • 구한 두 메트릭을 통해 F1 score를 직접 (sklearn 사용 x) 계산해주세요

Challenge

  • 랜덤포레스트를 만들 때 여러 설정 값 (하이퍼파라미터) 가 존재합니다.
  • 설정에 따라 성능이 달라지는 걸 확인해보세요!
  • [N_estimators, Max_depth, Criterion] 하이퍼 파라미터에 대해 grid search를 활용해 하이퍼파라미터를 탐색하는 코드를 작성해보세요!
  • 랜덤포레스트 모델을 구현할 때 사용된 하이퍼 파라미터 목록을 공부해보세요! (의미를 아는 게 중요합니다!)

 

문제 6. iris 데이터를 이용하여 클러스러팅을 수행하고 시각화 하세요

  • 데이터는 1번 문제 처럼 sklearn의 데이터를 활용할 거에요!
  • 이번에는 iris 데이터를 불러오면 됩니다
  • 클러스터의 개수는 2개로 설정하세요
  • 클러스터의 결과를 시각화 하기 위해 데이터의 첫번째 특성을 X축, 두번째 특성을 Y축으로 하는 산점도(scatter) 그리세요! 이때, 클러스터에 따라 색깔이 구분되게 하세요!
  • 다음에는 클러스터의 개수를 3개로 설정 후 다시한번 동일하게 시각화를 진행해봅시다!
  • (물론, 클러스터를 수행할 때는 모든 특성을 다 사용하세요)
  • 클러스터의 개수에 따라 군집화의 결과가 바뀌겠죠? (= 성능이 바뀌게 됩니다.)

Challenge

  • 최적의 클러스터 개수는 몇 개일까요? 어떻게 찾을 수 있는 지 공부 후 직접 구현해주세요
  • 클러스터링 (군집화)의 성능은 어떻게 측정할 수 있을까요? 메트릭을 통해 군집 개수에 따른 성능을 비교해주세요