수업 출처) 숙명여자대학교 소프트웨어학부 수업 "데이터사이언스개론", 박동철 교수님

 

1. Predictive Modeling

- 다른 속성들을 통해서 타겟 속성의 값의 모형을 찾는 것이다.

 

-  Nonparametric modeling

    - 모델 모양이 정해져 있지 않은 모델이다

    - 모델의 구조는 데이터로부터 결정된다.

    - (ex) classificaiton 'tree' - 가지의 수, 모양 등은 데이터를 통해서 알 수 있다.

 

- Parametric modeling 

    - 모델이 정해져 있다.

    - 모델의 구조는 데이터 분석가에 의해 지정된다.

    - (ex) linear classify - y = ax + b의 모양으로, 모양은 정해져 있으며 데이터로부터 파라미터인 a, b만 찾아낸다.

 

2. Nonparametric modeling 

- 분석가가 모델의 구조를 지정하지 않는다. 데이터로부터 학습된다.

 

3. Parametric modeling (= parameter learning)

- 특정 파라미터 값이 지정되지 않은채로 모델의 구조가 정의된다.

- (ex) Y = aX + b -> a, b : parameter

 

- 주어진 훈련 데이터셋을 통해서 최상의 파라미터 값을 찾는다.

- (ex) linear regression

 

- 모델의 형식은 배경 지식이나 다른 데이터 마이닝 기술들을 통해서 결정한다.

 

- 목적은 모델 파라미터의 '최적'값을 찾아내는 것이다.

- 이때 어떤 모델이 가장 데이터를 잘 표현하는지 결정하는 것이 중요하다.

 

3-1. Classification Trees

- space는 결정 범위에 의해 여러 개의 클래스로 나눠진다.

 

- 새로운 개체가 들어왔을 때, 개체의 타겟 값은 분류된 타겟 값을 통해 결정된다.

 

- 다른 방식으로도 공간을 분류할 수 있다.

 

3-2. Linear classifier

- linear combination을 이용해서 속성을 분류한 것이다.

- linear combination은 속성 값에 가중치를 부여하여 더한 것이다. 

- (ex) 1 x Age = Balance x -1.5 + 60

- 선을 기준으로 윗 부분 :  Age > balance x -1.5 + 60, 아랫 부분 : Age < Balance x -1.5 + 60

 

3-3. classification tree vs. linear classifier

- 목표는 같다. : 타겟 속성에 대해 값을 기준으로 데이터를 분류하기 위한 모델이다.

 

- 차이점 : 구조

 

- classificaiton tree

    - 각 속성 별로 class를 분류해서 값을 집어넣는 방식이다.

 

- linear classifier

    - 여러 속성들을 가중치를 파라미터로 하여 더해서 관계성을 찾는 방식이다.

 

4. Linear Classifier

- general linear classifier 

    - f(x) = w₀ + w₁x₁ + ··· + wₙxₙ

 

- shpe of decision boundary

    - n = 2 → line

    - n = 3 → plane

    - n = 4 → hyperplane

 

- goal

    - 훈련 데이터를 통해서 가장 적절한 가중치 값을 찾는 것이다. 

    - 훈련 데이터를 잘 분류하고, 새로운 데이터도 가능한 적절하게 예측할 수 있도록

 

    - 가중치 w𝑖 가 클수록 x𝑖가 타겟을 분류하는 데 중요한 역할을 한다는 것이다. 

    - w𝑖가 0에 가까우면 x𝑖는 보통 무시되어도 괜찮다.

 

- 가중치 선택하는 일반적인 방법

    - 목표에 맞는 objective function을 정의한다.

    - objective function을 극대화 (최소화) 하는 최적의 가중치 값을 찾는다.

 

- 다음 모델들은 같은 linear 구조이지만, 다른 objective function을 사용한다. 

    - support vector machine (SVM) : classification

    - linear regression : regression

    - logistic regression : classification

 

    - 동일한 linear classifier f(x) = w₀ + w₁x₁ + ··· + wₙxₙ 를 사용한다.

 

    - (ex) svm vs. logistic regression : 둘 다 분류 모델이지만, 다른 경계를 형성한다. 

 

4-1. Support Vector Machine

- linear calssifier 모델이다. 

- 속성들의 선형 조합에 기반하여 개체를 분류한다.

 

- "margin을 최대화하는 선이 최적의 linear classifier이다"

    - margin : 각 그룹의 값들 중 가장 바깥 쪽에 있는 값을 그은 두 dash line 사이의 거리

    - margin이 가장 큰 두 선의 중간에 있는 선이 svm의 linear classifier이다.

    - 즉, 최적의 선은 두 클래스에서 모두 멀리 떨어진 선이다.

 

- misclassificaiton

    - 물론 아래와 같이 한 줄로 데이터들을 완벽하게 분리할 수 없는 경우도 많다. 

 

- original function : margine size 최대로 하는 선

- new objective function : 잘못 분류된 훈련 데이터 개체에 패널티를 부여하는 것이다.

 

 

- 패널티는 margin 경계로부터의 거리에 비례해서 부여된다.

- 이러한 방식을 'hinge loss function' 이라고 한다.

 

4-2. Linear Regression

- 데이터를 가장 잘 표현하는 linear 함수를 찾는 모델이다.

- 타겟 속성의 값을 "예측" 할 때 사용된다.

 

 

- 다른 objective function을 사용하는 많은 선형 회귀 방법들이 있다.

 

- 일반적인 절차

    - 훈련 데이터에서 각 점들에 대한 오차를 계산한다. 

    - 오차 : 선과 점 사이의 거리

    - 오차의 절댓값들을 더한다.

    - 오차의 절대합을 최소화하는 가중치를 구한다.

 

4-2-1. 최소제곱법

- 가장 일반적인 표준 선형 회귀 절차이다.

- objective function : 오차의 제곱합을 최소로 하는 가중치 w₀, w₁, ··· , wₙ 찾기

- 오차의 절댓값을 더하면 선을 다르게 해도 차이가 그리 크지 않고, 수학적 계산도 어렵기 때문에 제곱합을 사용한다.

 

- 장점

    - 더 높은 검정력으로 지수가 높아질수록 이상치의 오차가 극대화될 것이다.

    - 이차 함수는 수학적으로 다루기 쉽다. 미분해서 도함수가 0이 되는 값이 최소값이 된다.

- 단점

    - 이상치가 선을 결정하는 데 너무 큰 영향을 미친다.

 

4-3. Logistic Regression 

- linear regression 과 비슷하다. 

    - 둘 다 지도학습 알고리즘이다.

    - 둘 다 라벨링된 데이터셋을 예측하기 위한 알고리즘이다. (class 값이 정해진)

    - 하지만, linear regression은 회귀 모델이고, logistic regression은 이름은 regression이지만 분류 모델이다.

 

- 타겟이 될 "이항" 결과 (범주형 종속 변수) 와 서로 종속되어 있는 많은 속성들이 있을 때 사용한다.

- Y = aX + bZ 일 때, Y 가 타겟이고, X와 Z가 독립인 다른 속성들이다. a와 b가 파라미터이다. 

- Y는 X와 Z의 영향을 받는다.

 

- 실생활의 이항 결과들은 이러한 것들이 있다.

- game (win / loss), sales( buying / not buying), loan( default / non default ), marketing( response / no response )

 

- 새로운 개체가 관심있는 클래스에 속할 확률을 추정할 때 linear model f(x)을 이용한다.

- (ex) f(x) = 0.85 → x가 그 특정 클래스에 속할 확률이 85%이다.

 

- 하지만! 이 f(x) 함수를 logistic regression에 바로 적용할 수 없다.

- f(x) 는 범위가 (-∞, ∞) 지만, logistic regression 의 범위는 확률로 [-1, 1] 이어야 하기 때문이다.

 

그래서 오른쪽과 같이 S-Curve 형태가 나오도록 함수를 조절하여 사용한다.

 

4-3-1. logistic function p(x)

 

standard logistic function

- 다음 방정식을 따르는 s-shaped curve (sigmoid curve) 형태의 p(x) 함수를 적용한다.

- 확률값을 추정하여 return 한다.

- linear function f(x) 를 변형한 형태로, linear 함수를 사용하는 것은 맞다.

 

- ln(p/(1-p)) = w₀ + w₁x₁ + ··· + wₙxₙ = f(x)

 

- Odds 승산

    - 사건이 발생하지 않을 확률에 대한 사건이 발생할 확률이다.

    - p / (1-p)

    - (ex) probability = 0.5 → odds = 1, p = 0.9 → odds = 9

 

- log odds → ln(p / (1-p)) = f(x)

 

4-3-2. objective function

- likelihood model 최대화

probability

- Σ g(x, w) 값을 최대화 하는 w𝑖 를 구하는 것이다.

 

- g(x, w)는 x의 특징에 기반한 x의 실제 클래스를 통해 모델의 추정 확률을 반환한다.

- 이제 라벨링된 데이터셋의 모든 개체들에 대한 g(x, w) 값을 모두 더한다.

- 그리고 다른 파라미터를 가진 모델에 대해서 또 진행한다.

- 그러면 logistic regression에 대한 다양한 가중치 집합이 생성된다.

- 가장 합이 큰 모델이 데이터에 대해 가장 높은 확률을 갖는 모델이다. (가장 가능성이 큰 모델)

- 가능성이 가장 큰 모델은 평균적으로 가능한 예제들에 대해 가장 높은 확률을 반환하고, 적절하지 않은 모델에 대해서 가장 낮은 확률을 반환한다.

 

- 적용

    - 위와 같이 p(x) 확률값에 따라 개체들을 분류할 수 있다.

 

4-4. Linear regression vs. Logistic regression

Linear regression Logistic regression
연속적이고 종속적인 변수를 예측할 때 사용한다.
Regression 회귀 문제
카테고리형 (범주형) 종속 변수를 예측할 때 사용한다.
Classification 분류 문제
가격, 나이와 같은 연속적인 값을 예측한다. yes or no, 0 or 1과 같은 범주형 값을 예측한다.
output을 쉽게 예측할 수 있는 가장 fit 한 line을 찾는다. 예제들을 쉽게 분류할 수 있는 S-Cruve line을 찾는다.
정확도 측정에 "최소제곱법"이 사용된다. 정확도 측정에 "최대 가능도 방법"을 사용한다.
독립적인 변수와 종속적인 변수 사이에 반드시 선형 관계가 존재해야 한다. 꼭 선형 관계가 존재할 필요는 없다.

 

4-5. Classification trees vs. Linear classifiers

Classification tree Linear classifier
축에 수직인 결정 경계 (decision boundaries)를 사용한다. 결정 경계의 방향이 정해져있지 않다.
여러 영역으로 분류한다. 공간을 2개로 나눈다.

 

4-6. 어떤 모델이 더 좋은가..?

-  어떤 결정 경계가 가장 좋은 선택일지 아마 미리 볼 수 없을 것이다.

- 하지만 이해력의 차이가 있다.

    - logistic regression은 통계학을 잘 모르는 사람드은 이해하기 쉽지 않다.

    - decision tree는 대부분의 사람들이 이해하기 쉽다.

 

- 많은 경우 이해관계자들에게 모델을 만족시켜야 한다.

- 그렇기 때문에 성능과 이해도를 잘 조절하여 모델을 선택해야 한다.

 

5. Linear Regression 예제

- Wisconsin Breast Cancer Dataset : 유방암 진단 데이터

- 각 예는 세포 핵 이미지를 나타낸다. 

- 376개의 양성 데이터와 212개의 음성 데이터가 있다.

 

- attributes : 세포핵의 특성을 묘사한 디지털화된 이미지를 계산한다. 

    - radius, texture, perimeter, area 등의 각각의 속성에 대해서 평균, 표준편차, 최대값을 계산한다.

 

- linear equation

 

- test 결과 정확도가 98.8%이다. (6 mistakes / 588 images)

- 같은 데이터셋으로 classification tree 모델을 만들면 정확도가 99.1% 이다.

 

 

- Q1 : 정확도가 98.8%이면 좋은 결과인가 아닌가?

    - 그정도 값은 데이터 마이닝에서 많이 볼 수 있는 정확도 수치이다.

    - 그러나 실생활 문제에 대한 분류 모델 평가는 보다 복잡하고 어렵다.

 

- Q2 : classificaiton tree가 정확도가 더 높으니까 좋은 모델인가?

    - 차이는 오직 하나의 추가적인 오차로부터 발생했다.

    - 게다가, 평가된 정확도는 훈련 데이터셋으로 활용한 동일한 데이터로 평가한 것이기 때문에 높은 것이 당연하다.

 

6. Linear Classifier for Ranking Instances

- 많은 경우 단순히 개체가 클래스에 속하는지 아닌지만 예측하고 싶지 않을 수 있다.

- 한 클래스나 다른 클래스에 속할 가능성으로 순위를 매길 수있다.

- (ex) will the customer respond to this ad? → Which customers are mostly likely to respond to this ad?

 

- 이 질문을 linear classifier 을 활용해서 해결할 수 있다.

 

- 결정 경계로부터 가까우면 해당 클래스에 명확히 속하지 않는 개체이다. ( |f(x)| ≈ 0 )

- 결정 경계로부터 멀리 떨어질수록 해당 클래스에 속할 확률이 크다. ( |f(x)| >> 0 )

- 따라서 결정 경계로부터 멀리 떨어진 개체일수록 rank를 높게 매긴다. 

 

 

7. Nonlinear model

- 머신러닝의 경우 대부분의 모델이 nonlinear한 형태로 나타난다.

- f(x) = w₀ + w₁x₁ + ··· + wᵢxᵢ² + wⱼxⱼ³ + wₖxᵢxⱼ + ···

 

- nonlinear term : 곱, 나눗셈, 지수, 로그 등이 포함되어 선형으로 나타나지 않는다.

- support vector machine과 logistic regression 의 nonlinear model이다.

 

- Artificial neural network 인공 신경망

    - 복잡한 nonlinear function을 학습시킬 때 사용한다.

    - 많은 nonlinear function을 연결한다.

 

 

- nonlinear model로 flexibility를 너무 높이면, 그 모델은 훈련 데이터에 너무 적합하게 형성된다. → overfitting

- overfitting → 훈련 데이터에만 fit하고, 정작 예측해야 할 새로운 데이터에 적용하면 성능이 급격히 낮아진다.

- 따라서 우리는 훈련 데이터를 넘어서 새로운 데이터에도 잘 작동할 모델을 형성해야 한다.

+ Recent posts