Kimuksung / bigdata

0 stars 0 forks source link

Classfication #24

Open Kimuksung opened 4 years ago

Kimuksung commented 4 years ago

다중 분류

What is difference Logistic regression / Decision tree?

Logistic regression -모수 = normalization + discrete에 대한 값에 선을 그어 threshold가 넘는것을 통하여 분류 -binomial 하기 떄문에 -> sigmoid function -cost function -> cross entropy의 평균 -여러 개라면? -> softmax function Xn -> Zm -> softmax -> Ym Y의 총합은 1 X와 Z사이의 구간에서는 N x M번의 모든 경우를 가중치 update softmax 후의 실제값과 예측값의 오차 -> 가중치 update 및 bias update One-hot-encoding -> 실제값과 예측값을 비교하기 위한 vector

Decision Tree -비모수 = 선형적이지 않은 값에 대한 집합 Ex) 원 , 타원 , 별 , 등 -회귀 , 분류 모두 가능하다. -Entropy를 통하여 하나의 node에서 더 좋은 Entropy를 향하여 분할한다.

X1 X2 -> decision tree -> Y1 Xn

X의 형태는 0~1인 것이 좋다 -> normalization

Entropy -Entropy는 불순도로 지니 지수(Gini index) / 엔트로피 지수(Entropy index) 로 나타난다. 구성요소

  1. Root노드의 불순도 값을 구한다
  2. 특성의 분지조건 s에 대해 생성되는 자식노드의 불순도 합을 구한다.
  3. 2를 모든 특성에 대해 수행하고 자식노드의 불순도 합이 최소가 되는(= Root노드와 자식노드의 불4. 순도 합의 차이가 최대가 되는) 분지조건을 최적의 분지조건 s로 선택한다.
    모든 leaf 노드의 불순도가 0이 될때까지 2,3을 반복 수행한다. 주의 할점 -> overfitting

Overfitting(과적합) -분기 수가 증가할 때 처음에는 새로운 데이터에 대한 오분류율이 감소하나 일정 수준 이상이 되면 오분류율이 되레 증가하는 현상이 발생한다고 합니다. 이러한 문제를 해결하기 위해서는 검증데이터에 대한 오분류율이 증가하는 시점에서 적절히 가지치기를 수행해줘야 합니다.

공통점

data 학습 처리

  1. percentage device 70% train 30% test
  2. n개로 나누어 서로가 한번씩 test set이 되어 나온 값들의 평균 값을 이용하여 나타낸다.

random forest = 모든 요소를 고려한다. X1 model1 X2 -> model2 -> Y Xn modelm

model 은 N개의 independent variable에서 random하게 root(전체 변수 갯수)를 골라 그 중에서 제일 영향력이 큰 애를 뽑아 modeling한다. 이렇게 m개의 model들은 Y에 대해 찬성, 반대 의견을 낸다. 1000개의 의견이 있고 찬성이 600개면 -> 찬성!

이렇게 많이 modeling하는가? Bootstrap

classfication 분류 / 분석 앙상블 : 여러 가지 model을 조합하여 예측력 향상시킨다.

  1. bootstrap = 기존의 dataset을 중복시켜 data양을 늘린다.
  2. bagging = 병렬 처리하여 random forest와 같은 형식으로 처리 시킨다.-> 분산 감소
  3. boosting = 가중치 반영하여 기존의 data에서 나온 값을 다음 data에 영향을 끼쳐 처리시킨다. 정확도 향상

Error 3대장 = variance / noise /bias로 이를 줄이기 위한 것이다.