Day74

김재현·2023년 9월 6일

JUPYTER/DL/ML

목록 보기
47/73

분석순서

탐색적 데이터 분석

명목형 처리(더미변수/카테고리화)

로지스틱은 산점도행렬을 확인 할 필요가 없음

  • 더미변수변수의 값이 최소 2개를 초과할 경우 수행. 아니면 단순 category 타입으로 변경.

범주형(명목형) 데이터(카테고리가 1~3등급)를 각 카테고리별로 나누어 표현 - 명목형은 계산할 수 있는 값이 아니기 때문

명목형 변수 : 변수의 값이 고유한 순위가 없는 범주를 나타내는 경우 해당 변수

ex) 태아의 성별, 위암 등급, 승무원의 등급

명목형 확인을 위해서는 데이터의 종류가 몇 가지인지 확인.
즉, 명목형으로 의심되면 일단 value_counts()로 확인.
type, shape, info 등을 사용해 객체 형태 및 정보를 확인 가능.

종속변수 카테고리의 기준

탐색적 데이터 분석에서 사용하기 위해 카테고리화를 진행 - (단, 통계에서는 카테고리 형식으로 데이터를 분석하지 않고 int 형식으로 사용)

정석대로라면 카테고리로 변경하지 않음.
단, 탐색적 데이터 분석을 한다면 명목형 변수를 제거해야 하는데 명목형을 카테고리로 변경하면 자동으로 제거해주기 때문에 카테고리 형식으로 변환 후 진행.

category 대신 더미변수로 변경하면 int로 돌아오므로 더미변수화를 추천.

표준화

표준화(정규화-scaling)을 진행한도고 해서 모델의 성능차이가 발생하지는 않음.
다만, 시각화를 진행할 때 단위의 차이는 발생.
만약, boxplot을 그렸을 때 데이터의 범주, 단위가 극단적으로 상이할 경우에는 표준화를 진행.

모델 정의

[relu], sigmoid, rmsporp, binary_crossentropy, acc

  • input_shape은 독립변수 수
  • Dense(출력 수) 신경망 개수의 수에 따라서 모델의 성능에 차이가 발생
    • 직감으로 맞춤(다른 방법 없음) 보통 16 또는 32 이상
    • 최적의 값을 직접 탐색(너무 많으면 컴퓨터 다운)
  • activation은 모델과 분석 종류에 따라서 다름
    • 보통 시작은 relu, 분류는 sigmoid, 회귀는 linear
  • optimizer은 모르면 Adam
  • epochs는 많아도 크게 상관이 없음
  • 2차항을 하고 싶다면 sklearn으로 2차항 생성 후 Sequential에 입력

학습하기

  • epochs는 많아도 크게 상관이 없음(단, 너무 크면 오래 걸리고 오차가 증가)
    • callback을 사용해 모델의 학습 방향, 저장 시점, 학습 정지 시점 등에 관한 상황을 모니터링
    • EarlyStopping 콜백과 같이 patience 인자를 지정하여, 지정된 기간 동안 평가지표에서 성능 향상이 일어나지 않으면 학습률을 조정하는 콜백
    • ReduceLROnPlateau EarlyStopping 콜백과 같이 patience 인자를 지정하여, 지정된 기간 동안 평가지표에서 성능 향상이 일어나지 않으면 학습률을 조정하는 콜백
    • ModelCheckpoint 지정한 평가지표를 기준으로 가장 뛰어난 성능을 보여주는 모델을 저장 할 때 사용

0개의 댓글