Fascination
article thumbnail

Ch4. Fitting a Model to Data

- 숙명여자대학교 소프트웨어학부 데이터사이언스개론 - 박동철 교수님


# Predictive Modeling

- 다른 attribute의 측면에서 target 변수의 model 찾기를 포함

- predictive modeling의 두 가지 유형

 Nonparametric modeling

> model의 구조가 고정되지 않음

> model의 구조는 data로부터 결정됨

> ex) tree → data에서 ig, 엔트로피를 통해서 정해짐

 Parametric modeling

> model의 구조가 고정됨

> model의 구조는 data 분석에 의해 명시됨

> ex) y = ax + b (a, b는 상수)

 

 

# 1. Nonparametric Modeling

- model의 구조를 명시할 수 없음

- model의 구조는 data로부터 학습

- Example: Classification tree induction

> tree의 구조는 data로부터 자동적으로 결정됨

 

# 2. Parametric Modeling

- parameter learning이라고도 함

- 기본적인 접근

 특정 매개 변수를 지정하지 않고 모델의 형식을 지정

> ex) 매개 변수화 된 수학 함수

Y = a*X + b  a: attribute weight

② 주어진 training dataset에서 최상의 매개 변수를 찾음

> 가능한 model을 data에 fit시킬 수 있도록 매개변수를 조정해야 함 → fitting a model to data

Y = 1.39*X + 4.78 → 만든 모델

- Example: Linear regression

* 금 값 ↑ → 달러 ↓ = 부채 많아짐

- model의 형태는 Domain knowledge 혹은 다른 data mining techniques에 기반하여 선택됨

* data mining techniques ex) the informative attribute selection

- 목표

> model parameter의 최적의 값을 찾아야 함 → optimal

> 최적의 값을 찾는다는 의미가 model이 data에 잘 fit 되는 것을 의미하는가?

- Example: Linear regression

> 어떤 line이 best일까?

 


# The Space Partition of Classification Trees

- space는 decision boundaries에 의해 영역들로 쪼개

* 영역 = class, segmnet, decision boundary = 점선

- 새로운 instance가 segment에 포함되는 경우, instnace의 목표값을 segment의 목표값으로 결정함

 

# Another Way to Partition The Space

- 선이 축에 수직이 아닌 경우 → not perpendicualr to the axis

 


# Linear Classifier

- 속성의 linear combination을 사용해 space를 나눔

> linear combination: attribute 값의 weighted sum

y = ax + b (y: attribute, x: attribute)

- Age의 wight: 1, Balance의 weight: -1.5 → 각 변수(속성 값)의 계수

 

 

# Classification Tree VS. Linear Classifier

- target 변수의 다른 값을 가지고 data를 영역으로 쪼갠다는 목표는 같음

- 형태는 다름

> Classification Tree

> Linear classifier

 


# General Linear Classifier

- 아래 주어진 data를 고려

X: unseen dataset

- x를 분류하기 위해 일반적인 linear classifier는 아래의 함수를 사용

- w0: 상수

> 만약 f(x)>0이면, x는 "red"로 분류됨

> 만약 f(x)<0이면, x는 "blue"로 분류됨

> w0, w1, ... , wn: model의 parameter

= features' weights

 

 

 

 

 

# The Shape of Decision Boundary

* n >= 4: 인간의 인지를 벗어남

 

 

# The Goal of General Linear Classifiers

- training dataset이 주어지면, w0, w1, ... , wn의 최적의 값을 찾음

> training data를 잘 분류하고 새로운 data를 가능한 정확하게 분류

- wn: weight 값, Xn: attribute

- w0, w1, ... , wn에 대한 해석

> wi가 클수록 xi는 target을 분류하는데 중요성이 더 커짐

> wi가 0에 가까우면 xi를 무시하거나 버려도 됨

 

 

# Finding the "Best" Line

- class를 분류하기 위해 "best" line을 선택하는 것은 사소하지 않음 → not trivial

> 여러 개의 후보 line 중, 무엇을 선택해야 할 까?

 

 

# What Weight Should We Choose?

- 일반적인 과정

① 우리의 목표를 나타내는 objective function을 정의

② objective function을 최대화 혹은 최소화하는 weight에 대해 극대화 값을 찾음

- 다음의 model들은 같은 형태를 가지지만, w0, w1, ... , wn의 best 값을 찾기 위해서 다른 objective 함수를 사용

 모델이 다름 * 모델: weight를 찾는 과정

> Support vector machine (SVM) (classification)

> Linear regression (regression)

> Logistic regression (classification)

 

 

# EX) SVM VS. Logistic Regression

- 두 개의 classification 방법은 다른 boundary를 만듦

> 다른 objective function을 극대화하기 때문임 → 다른 objective function = weight가 다르다

 


# Support Vector Machine (SVM)

- SVM은 linear classifier

> SVM은 특징의 linear combination에 기반하여 instance들을 분류

> 새로운 데이터가 들어왔을 때 좀 더 명확하게 잘 분류할 수 있다는 가정하에 만듦

- 어떤 line이 SVM에서 가장 최적의 line일까?

→ SVM에서 data에 맞게 사용되는 objective function은 무엇인가?

 

 

# The Basic Idea of SVM

- 가장 좋은 linear clasifier은 margin을 극대화하는 line

> margin: 점선 사이의 거리

> 가운데 선이 SVM에서 사용되는 lienar classifier임

- 가장 좋은 line은 클래스들 모두에서 제일 먼 선임

 

 

# What About Misclassification?

- 단일 line이 data를 class들로 완벽하게 분리하지 못하는 상황이 있을 수 있음

이 예시에서 data를 완벽하게 나눌 수 있는 선은 존재하지 않음

 

 

# SVM's Approach to Misclassification

- Main idea

> original objective function: line의 margin 크기를 측정

> New objective function: 각각의 training data에서의 instance가

misclassified 되는 것에 대해 penalty를 부여

- penalty 부여 방법

> margin boundary에 따라 비율적으로 부여

> penalty의 유형은 hinge loss fuction이라고 불림 * hinge: 접히는 부분

- margin boudary를 벗어난  1, 2에 대해서만 penalty 부여

> 이때, 1보다는 2에게 더 많은 penalty를 부여함

- 오른쪽 그래프에서 입장을 생각해보면

positive side를 지난 이후부터hinge loss가 커지는 것을 확인할 수 있음

 


# Linear Regression

- data를 잘 묘사하는 linear function을 찾음

> target attribute의 값을 예측하는 데 사용됨

- 어떤 line이 lienar regression에 가장 잘 맞는 line일까?

→ linear regression에서 사용되는 objective function은 무엇인가?

- 다른 objective function들을 사용하는 linear regression 과정이 있음

- 일반적인 linear regression의 과정

> training data에서 각 individaul point에 대한 error를 계산

* error는 point와 line의 거리임 (= absolute error)

> absolute error들을 더함

> error들의 합을 최소화하는 w0, w1, ... , wn을 찾음

 

 

# Least Squares Regression

- 가장 common("standard")한 linear regression 과정

- objective function (least squares estimate의)

> error들의 제곱의 합을 최소화하는 w0, w1, ... , wn을 찾음

- "Squares"를 사용하는 이유?

> 만약 absolute errors의 합을 최소화한다고 할 때 아래의 예시들에서는 어느 하나를 고르기 어렵기 때문

→ 수학적으로 w0, w1, ... , wn값을 찾기 어려움

- 이점

> 제곱의 지수 값이 높을수록,outlier(특이치)'s error가 더 증폭

> 수학적으로 쉬움: 2차 함수의 최솟값을 찾는 것은 쉬움

- 2차 함수를 미분하고 도함수가 0이 되는 지점을 찾으면 됨

- 단점

> outlying data points로 인해 생긴 결과가 linear function을 심하게 왜곡할 수 있음

빨간 원의 영향이 너무 커서 weight가 달라짐

 

 


# Logistic Regression

- Logistic regression은 linear regression과 비슷함

> 두 개 모두 지도 학습 알고리즘임 → supervised machine learning algorithm

> 두 개 모두 자연스럽게 학습하기 때문에 이런 알고리즘은 예측하기 위해 label 된 data를 사용

> Linear Regression은 regression 문제를 풀기 위해 사용되고

Logistic Regression은 classification 문제를 해결하기 위해 사용됨

- 언제 logistic regression을 사용할까?

> 두 개로 나눠지는 분류를 가지는 interest의 결과 독립적이지 않은 변수의 수가 있을 때

 binary outcome(=categorical depentdent variable) * binary: 0과 1처럼 두 개로 나누어지는 분류

y = ax + b

> y는 a, x, b에 의존적이고 a, x, b는 독립적임

> x = attribute

- Examples of binary outcome

> Gaming(win/loss), sales(buying, not buying), credit card or loan(default/ non default), healthcare(cure, non cure), marketing(response, no response), etc..

- 새로운 instance가 interest의 class에 속할 확률을 추정하기 위해 lienar model f(x)를 사용

* f(x): linear classifier가 사용하는 fucntion

> ex) f(x) =0.85 → x가 특정 class에 속할 확률은 0.85 임

- f(x)를 x의 class 확률을 추정하는데 바로 사용할 수 있나?

> No

> f(x)의 범위는 (-∞,∞)이고 확률의 범위는 0부터 1까지이므로 범위가 일치하지 않기 때문

- 우리는 0과 1 사이의 확률을 예측하는 model을 원함

> linear regression은 맞지 않음

 

.

- logistic regression은 classification 문제를 해결하는 것이지만

위의 그림과 같이 x에 따라 y가 정해 지므로 이름에 regression이 붙게 되었음

- logistic regression을 위해 f(x)에 대해 공식 변형이 필요

- Logistic function p(x) → Standard임

> S모양의 커브는 아래의 방정식에 의해 만들 수 있음

> x의 class 확률을 추정할 때 사용됨

- p(x)는 f(x)의 값을 0과 1 사이 값으로 변형시킴

- Logistic Regression의 정의: linear regression logit으로 변형하는 것

 odds(승산): 사건이 일어날 비율에 대한 사건이 일어나지 않을 비율의 비 // p/(1-p)

ex) p: 0.5 → odds = 1 / 0.5/0.5

 Log odds (Logit): odds에 자연로그를 씌운 것 // ln(p/(1-p))

③ 우리는 Log odds로부터 class membership의 확률을 추정하기를 원함

 logistic regression의 방정식

 

 

# Objective Function for Logistic Regression

- Maximum likelihood model

> 가능성 = 확률 값

> p(x)가 달라지면 g(x, w)도 달라짐 → weight 값에 따라 g값도 달라짐

> x: attribute, w: 우리가 찾고자 하는 w0, w1, ... , wn의 vector 값

- g 함수는 x의 특징이 주어진 x의 실제 class를 볼 수 있는 model의 추정된 확률을 알려줌

- label 된 datasets의 모든 예를 통틀어 g 값을 합하는 것을 고려하고

이것을 다른 parametered 된 model에도 적용함

→ in our case, logistic regression에 대한 다른 wieghts의 집합임

- 가장 큰 합을 제공하는 model이 data에 대해 높은 가능성을 제공하는 model임 (maximum likehood)

- 일반적인 경우에서 Maximum likelihood model은 positive 예에 대해 가장 높은 확률을 주고,

negative 예에 대해서는 낮은 확률을 줌

 

 

# Using a Logistic Regression Model

- p(x)를 training data로부터 만들어진 logistic regression model이라고 하자

- x = (x0, x1, ... , xn)이고 이는 새롭고 본적 없는 instance임

- 만약 p(x) > 0.5 라면, 우리는 x를 positive(+)라고 결정함

> p(x) > 0.5는 f(x) > 0 과 같음

- 만약 p(x) < 0.5 라면, 우리는 x를 negative(-)라고 결정함

> p(x) < 0.5 는 f(x) <0과 같음


# Linear regression VS. Logistic regression

Linear Regression Logistic Regression
주어진 독립적 변수의 집합을 사용해 연속되고 의존적인 변수를 예측하는데 사용됨 (Regression problem) 주어진 독립적 변수의 집합을 사용해 categorical 의존 변수를 예측하는데 사용됨
(Classification problem)
값, 나이 등과 같은 연속적인 변수의 값을 예측함 Yes or No, 0 or 1과 같은 categorical 변수의 값을 예측함
output을 쉽게 예상함으로써, 가장 잘 맞는 line을 찾음 sample을 분류함으로써 S-curve를 찾음
정확도를 측정하는데에 Least squares estimation method가 사용됨 정확도를 측정하는데에 Maximum likelihood estimation method가 사용됨
의존적 변수와 독립적 변수 사이의 관계가 linear해야 한다는 것이 요구됨 의존적 변수 그리고 독립적 변수 사이의 관계가 linear해야 한다는 것을 요구하지 않음

 

 

# Classification Trees VS. Linear Classifiers

- 두 개 모두 predict, classification model을 푸는 것임

- Classification tree

> overfitting 문제

> instance 공간의 축에 수직인 decision boundary를 사용

> instance 공간을 많은 작은 영역으로 나눔

- Linear classifier

> decision boundary를 어느 방향으로 사용할 수 있음

> instance 공간을 두 개의 segment로 나눔

 

 

# Which One Is Better?

- 미리 결정하는 게 어려움

> 가장 좋은 decision boudary가 어떻게 보일 것인지 모르기 때문

 target 변수의 다른 값을 가지고 data를 영역으로 쪼개기 때문에 어떻게 될지 모름

- 이해에 있어 차이가 있음 → comprehensibility = understandability

> Logistic regression: 통계학자가 아닌 사람들에게 설명하기 힘듦

> Decision tree: 대부분의 사람들에게 더 이해가 잘 되게 설명할 수 있음

- 위의 문제가 왜 중요한지?

> 대부분 이해관계자들에게 model을 설명할 때 그들이 이해해서 만족해야 하기 때문

 


# Example: Logistic Regression

- Wisconsin 주의 유방암 dataset

> 각 예시는 사진의 세포핵의 특성을 묘사함

> 양성 혹은 악성(암)으로 label 됨 → benign or malignant

> 이미지의 수: 376(양성) + 212(악성)

A sample cell image

 

- Wisconsin 주의 유방암 dataset의 attribute

> digitized 된 사진으로부터 계산됨

> 사진에서 세포핵 모습의 특성을 묘사

- logistic regression에 의해 학습된 Linear 방정식

- logistic regression model의 정확성

> 98.8% (6 mistakes / 588 images)

- 같은 dataset으로부터 학습된 classification tree

> 정확성: 99.1%

 

- 질문 1: 98.8%의 정확성은 좋은 결과인가?

> data mining에서 그 정도의 정확성은 흔하게 볼 수 있음

> 실제로 classifiers를 평가하는 것은 어렵고 복잡함

- 질문 2: classification tree는 더 좋은 model인가?

> logistic regression model와 classification tree의 차이는 mistake 1개로 인한 오류로 야기되었음

> 정확도의 숫자는 각 모델을 구축할 때와 같은 dataset에 대해 평가함으로써 이끌어냄

 


# Linear Classifier for Ranking Instances

- instance가 class에 속하는지 여부를 단순히 yes or no로 단순하게 예측하는 것을 원하지 않음

- 한 클래스 또는 다른 클래스에 속할 가능성에 의해 instnace를 서열화하기 원함 → ranking

> 이 customer가 우리의 제안에 반응할까? → Yes/No

> 어떤(특징을 가진) customer들이 우리의 제안에 반응을 잘할까? → ranking

- Linear classifier에서 ranking을 위해 따로 할 일은 없음

- Observations

> decision boundary에 가까움: 우리는 클래스에 속할 확률이 불확실하다고 생각함 → f(x)가 0과 비슷함

> decision boundary에서 멈: 클래스에 속할 높은 가능성을 가짐 → f(x) >>0

- Conclusion

> f(x) 자체를 사용하여 interest 클래스에 속할 가능성에 의해 직관적으로 만족스러운 인스턴스 서열을 얻음

 


# Nonlinear Models

- linear model: separate the data with a straight line

- Nonlinear model: separate the data with a curved line

- linear model에 nonlinear 한 항들이 추가됨

> linear term: 단 하나의 특징에 상수를 곱한 것만을 포함

> nonlinear term: 특징의 곱, 나눗셈, 지수화 또는 로그를 포함

- Logistic regression and SVM with a nonlinear term

> 파란색 : lienar

> 노란색 : nonlinear

 

 

# Examples of Nonlinear Models

- Artificial neural networks → deep learning

> complex nonlinear function를 학습하는 데 사용됨

> 더 복잡한 function을 만들기 위해 많은 nonlinear function을 연결함

w: optimal 한 weight 값

 

 

# Logistic regression VS. neural network

- Logistic regression: use a linear decision boudnary

- Neural network: use a nonlinear decision boundary

 

 

# Why Wouldn't We Do That All Time?

- tradeoff = overfitting

- 데이터에 너무 잘 맞으면 다른 dataset을 넣었을 때 일반화하지 못한다는 문제가 생김

- 우리는 training datset을 넘어 다른 data에도 적용할 수 있는 model을 원함

 


# Summary

- Model fitting (or parametric modeling)

> The model is a partially specified numeric function, with some unspecified numeric parameters

> We "fit" the model to the data by finding the best parameters

> The meaning of "best" can be different for different ap plications → best = optimal

 

- Non-parametric modeling ex) classification tree

> not fix model

> The structure of a model is determined from data

 

- Learning modeling

> The form of the model: a simple weighted sum of attributes

> Includes support vetor machine, linear regression, logistic regression

> The difference is "What exactly do we mean by best fitting the data?"

① Support vector machine: a line that maximizes the margin

② Linear regression: a line that minimizes the sum of the squares of errors

③ Logistic regression: a line that maximizes the likelihood of class probability

 

profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!