2. Decision Tree 이용한 와인데이터분석

이재은·2024년 7월 19일

https://velog.io/@rs2002/제로베이스Machine-Learning-3

1. 데이터 스케일링

[데이터스케일링]https://wooono.tistory.com/96

스케일링 : 각 특성의 범위를 맞춰주는 것

머신러닝을 위한 데이터셋을 정제할 때, 특성별로 데이터의 스케일이 다르다면 어떤 일이 벌어질까요?
예를 들어,
X1은 0 부터 1 사이의 값을 갖고
X2 는 1000000 부터 1000000000000 사이의 값을 갖고
y 는 1000000 부터 100000000 사이의 값을 갖는다고 가정한다면
X1 특성은 y 를 예측하는데 큰 영향을 주지 않는 것으로 생각할 수 있습니다.
때문에 특성별로 데이터의 스케일이 다르다면, 머신러닝이 잘 동작하지 않을 수 있습니다.
따라서, 저희는 데이터 스케일링 작업을 통해, 모든 특성의 범위(또는 분포)를 같게 만들어줘야합니다.

sklearnscaler

  • fit : 훈련데이터 (훈련 데이터의 분포를 먼저 학습)
  • transform : 훈련데이터, 테스트 데이터 (훈련 데이터, 테스트 데이터 스케일을 조정)
  • 모두 같은 분포를 만들 분포는 없음(특성에 따라 다른분포를 적용하는게 유리)

2. Decision Tree 이용한 와인데이터분석

wine

레드와인/ 화이트 와인 분류기 머신러닝

  1. 학습데이터와 답 데이터 분류하기
  • X(drop), y(답)
  • 훈련용(train_test_split)
  1. 데이터 구분정도 확인하기
    add. trace
  2. 학습결과 확인
  • decsionclasifier
  • fit
  • predict
  • accuarcy

데이터 전처리

  1. 여러 항목 boxplot 확인
  2. minmax/standard scaler > dataframe > boxplot
  3. Decision Tree 주요 결정 인자 확인
    plot_tree
plot.tree(wine_tree)
t_train.colmns


여기는 왜 다른걸까요??

맛의 이진분류

  1. 등급에 따라 맛을 이진분류, 학습 진행
  • 맛에 의한 분류(1) : '맛'이라는 답과 나머지 데이터 분류 및 훈련 / 검증용 분리
  • 맛에 의한 분류(2) : 훈련 / 검증용 데이터 일치율 확인
  1. 결정인자 확인하여 계산 착오가 어디서 일어났는지 파악
  • 맛에 의한 분류(3) : 100%일 경우 계산착오일 확률이 매우 큼, 결정인자 확인
plot.tree(wine_tree)
  1. 오류 수정 후 학습 재진행
  • 맛에 의한 분류(4) : taste가 quality를 의미하므로 이것도 제거한 후 다시 진행 - 일치율확인 - 결정인자 재확인
  • 애초 70%를 웃돌기에 정확한 판단이 어려움
  • 맛의 기준이 등급이었기 때문에 맛의 선호도 및 맛을 해치는 요소 (과한 산미 등) 가 전혀 반영되지 않았음을 인지
  • 다만 몇 가지는 파악 가능
    1. 알콜 도수 낮은 경우 산미도 적으면 등급이 높아지는 경향이 있음
    2. 알콜 도수 높은 경우 황 화합물도 높으면 등급이 높아지는 경향이 있음
profile
Dare to be an optimist

0개의 댓글