관리 메뉴

너와 나의 스토리

[Data Mining] Ch5. Alternative Classification 본문

Data Analysis/Data Mining

[Data Mining] Ch5. Alternative Classification

노는게제일좋아! 2020. 4. 15. 20:04
반응형

Instance-Based Classifiers

  • 모델을 안 만들고 분류하는 방법
  • 미리 저장된 트레이닝 데이터 필요
  • 트레이닝 데이터를 사용해서 label 없는 데이터의 클래스 예측 
  • Example:
    • Rote-learner
      • 트레이닝 데이터를 전부를 기억하고 새로운 데이터의 attribute 값이 트레이닝 셋에 속하는 데이터와 완전히 일치할 때, 클래스를 판단
    • Nearest neighbor
      • 새로운 데이터가 트레이닝 셋과 가장 근사한 것으로 클래스 분류

 

 

Nearest Neighbor Classifiers

  • 기본 아이디어: 오리처럼 뒤뚱뒤뚱 걷고, 꽥꽥 소리 내면, 이것은 아마 오리일 것이다.

 

Nearest-Neighbor Classifiers

  • 기존 트레이닝 셋에 있는 데이터와 현재 새로운 데이터와 유사도를 계산할 수 있는 similarity measure가 필요
  • -> record들 사이의 distance 계산할 "Distance Matric"
  • k를 정함 -> k: 가장 가까운 애들 k개를 본다

  • (a): -로 판단
  • (b): 판단 못 함
  • (c): +로 판단

 

 

1 nearest-neighbor

  • k를 1로 고정하고, 각 각의 데이터에 대해서 가까운 영역을 나눈 것을 Voronoi Diagram이라고 한다.

 

 

Nearest Neighbor Classification

  • 두 점 사이의 거리를 계산할 수 있어야 한다.
    • Euclidean distance: d(p,q) = $\sqrt{\sum_{i}(p_i - q_i)^2}$
  • 가장 가까운 이웃들 리스트로 클래스 결정
    • 다수결로 결정 -> 개수만 생각
    • 거리까지 감안해서 투표 -> weight factor, w=$\frac{1}{d^2}$
  • Scaling isuues
    • attribute의 스케일이 다를 때, euclidean distance를 구하면 문제가 생길 수 있음
    • ex) attribute1은 1~10 단위인데, attribute2는 10000~100000 단위이면 제곱할 때, 값이 너무 큼
    • Euclidean measure을 사용할 때 문제:
      • 높은 차원의 데이터 (차원의 저주) -> attribute가 많으면 거리가 멀어도 판단하기 힘듦
  • k-NN classifiers are lazy learners 정리
    • 모델을 만들지 않음
    • 새로운 데이터를 트레이닝 셋에 있는 데이터들과 각각 거리 비교
    • 비용이 비싸다.
    • decision tree induction이나 rule-based system 같은 eager learners와 다르다

 

 

 

Bayes Classifier

 

 

 

 

<- 분자만 계산하면 됨

 

 

 

 

 

 

 

 

 

 

 

데이터로부터 어떻게 확률을 어떻게 추정할까?

  • continuous attributes는 어떻게 확률 계산할까?
    • Discretize the range into bins(범위 분할)
    • Two-way split: (A<v) or (A>v)
    • 확률 밀도 추정 방법:
      • attribute가 정규분포(normal distribution)를 따른다고 가정하자
      • 일단 확률 분포를 알게 되면 조건부 확률 P(A|C)를 추정하는 데 사용할 수 있다.

 

 

 

Naive Bayes Classifier 예제

  • P(X|Class=No): 조건이 X일 때, 클래스가 no일 확률
  • P(X|Class=Yes)를 구할 때, 일부 확률에서 0이 나오는 경우가 있음 ex) P(Married|Class=Yes)
    • Probability estimation:
      • 분모에 특정 값을 더해 0이 되지 않도록 만든다 
      • m은 적절히 주어지는 것

  • Naive Bayes 요약
    • noise가 있어도 강력
    • 없는 값들은 무시하면 됨
    • 상관없는 attributes가 섞여있어도 강력 ex) 이름 
    • 모든 attributes가 독립이라고 가정 (아니더라도)

 

 

Neural Network이란?

  • 딥러닝 기술
  • 참고
  • A neural network: 컴퓨터가 관측 데이터를 학습할 수 있도록 생물학적 뉴런 구조를 모방한 패러다임
    • a network of connected neurons
  • Neuron

 

 

ANN(Artificial neural networks)의 일반적인 구조

  • input layer은 뉴런 아님 (나머지 layer은 뉴런)

 

Neural Network Output Format

  • 출력 값의 범위는 [0,1]
  • 출력 값은 categorial value로 변환된다.
    • eg) promotion = yes or no 
    • two output layer nodes, (node1, node2)
      • Yes=(1,0), No=(0,1)
      • (0.9, 0.2)는 yes 의미
      • 만약 (0.2,0.3) 이런 식으로 나오면 잘못 나온 것!
    • One output layer node
      • Yes=1, no=0
      • 0.8은 yes 의미
      • 0.45 이렇게 어중간하게 값 나오면 잘못 나온 것!

 

 

The sigmoid function

  • activation function
  • 평가 함수 기준: 출력 값은 반드시 정수 범위 [0,1] 이어야 한다.

 

A Neuron

  • 뉴런 여러 개 연결해서 network 구성
    • :Multilayered Neural Network -> [input layer / hidden layer / output layer]로 구성됨
    • input layer은 뉴런 아님

  • 각각의 hidden layer에 모든 input이 다 들어옴
  • output layer도 마찬가지로 각각에 모든 hidden layer 출력이 다 들어옴
  • layer마다, 노드마다 각각 bias가 다름
  • T: 우리가 원하는 결과, O: 우리 모델이 계산한 결과로써 출력
    • T와 O가 비슷해지도록 weight와 bias 값을 조절하면서 training
    • 왜 weight와 bias를 둘 다 사용하는가?
      • weight는 sigmoid 그래프의 모양을 가파르거나 완만하게 만들고
      • bias는 sigmoid 그래프를 좌우로 움직인다

  • E 값이 0에 수렴한다는 것은 T와 O가 거의 일치하다는 것

 

 

 

 

 

E를 최소화하도록 각 가중치들을 조정하며 학습시킴

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
Comments