수업 출처) 숙명여자대학교 소프트웨어학부 수업 "데이터사이언스개론", 박동철 교수님
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)
- 다음 방정식을 따르는 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 최대화
- Σ 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하고, 정작 예측해야 할 새로운 데이터에 적용하면 성능이 급격히 낮아진다.
- 따라서 우리는 훈련 데이터를 넘어서 새로운 데이터에도 잘 작동할 모델을 형성해야 한다.
'Software > Data Science Introduction' 카테고리의 다른 글
[데이터사이언스개론] Similarity, Neighbors, Clusters (0) | 2021.06.04 |
---|---|
[데이터사이언스개론] Overfitting and Avoidance (0) | 2021.04.22 |
[데이터사이언스개론] Predictive Modeling (0) | 2021.04.21 |
[데이터사이언스개론] 비즈니스 문제와 데이터 사이언스 솔루션 (0) | 2021.04.15 |
[데이터사이언스개론] Data Science (0) | 2021.04.15 |