2019년 1학기 고려대학교 강재우 교수님 데이터 과학 정리
Classification Problems
Classification이란 input record에 라벨을 붙이는 것이다.
Regression for Classification
라벨링된 것들을 숫자로 바꾸는데 선형 회귀(linear regression)를 사용할 수 있다.
Class Labels from Regression Lines
Regression line이 class를 분리한다.
초록색 선 : if x≥ 0, y =1
빨간색 선 : if h(x)≥0.5, y = 1
Decision Boundaries
이상적으로 2개의 class는 feature space에 잘 분리되어 있고, 라인을 통해 이를 분리할 수 있다.
Logistic regression이 주어진 training set에서 최적의 best separate line을 찾는 방법이다. (aka. finding the decision boundary)
Logistic Regression Model
이때 h(x) 는 “probability of being positive/negative”로 해석될 수 있다.
해당 값이 0인 지점이 decision boundary 이고, 0 보다 크거나 같으면 y = 1, 0보다 작으면 y = 0으로 해석할 수 있다.
Decision Boundary
Non-linear Decision Boundaries
Cost for Positive / Negative Cases
우리는 최적의 probability를 위한 zero error와, 예측이 틀릴 수록 증가하는 cost를 원한다.
해당 식에서의 h(x)는 예측 값, y는 관측 값을 의미한다.
positive predict 가 1에 가깝다면 거의 zero error이고 cost는 적어진다(빨간색 선). 반대로 predict가 negative이면 파란색 선과 같이 나타난다.
Logistic regression cost function
위의 두가지 케이스를 하나의 식으로 합친 형태를 다음과 같다.
parameter θ 값을 fit하기 위해서는 :
주어진 새로운 x 값으로 예측을 하고자 한다면 :
Logistic Regression via Gradient Descent
여기서 loss function 은 convex이기 때문에 gradient descent를 이용해 best fit parameter을 찾을 수 있고, 따라서 두 클래스 사이의 최적의 linear separator 를 찾을 수 있다. (비선형 feature에서의 선형이 될 수도 있다)
Issues in Classification
- Balanced Training Classes
- Multi-class Classification
- Hierarchical Classification
Balanced Training Classes
unbalanced 클래스 사이즈(i.e. 1 개의 positive example과 10000개의 negative example)에서 최적의 separating line을 생각해보자. Logistic regression의 best scoring line은 가운데 있기보다 사이즈가 큰 클러스터에서 매우 떨어져 있을 것이다. 따라서 같은 사이즈의 positive/negative example을 사용해야 한다.
Ways to Balance Classes
클래스의 밸런스를 맞추기 위한 방법은 다음과 같다.
- minority class 멤버를 찾기 위해 노력한다
- 큰 클래스에서 element 를 제거한다
- minority class에 가중치를 더 부여한다.(minority에서 에러가 났을때 더 가중치를 둔다) 이때 overfitting을 조심한다.
- random 한 변화(perturbation)와 함께 작은 클래스의 멤버를 복제한다(random sampling with replacement. 이때 replacement는 중복을 허용한다는 의미)
Multi-class Classification
분류는 이분법으로 되지 않을 수도 있다.
Encoding Multi-Classes : Bad Idea
blond = 0, brown = 1, red = 2 와 같이 다중 클래스를 각각 번호로 할당해 표현하는 것은 자연스럽다.
하지만 class들의 ordering이 규모의 증대에 영향을 주지 않는 이상 numbering은 의미가 없다. (4 stars — 3 stars — 2 stars — 1stars 와 같이 ordinal 한 것들이 의미 있음)
One Versus All Classifiers
대신 multi-class classifier는 다수의 독립적인 이분 classifier를 통해 만들 수 있다. 가장 가능성이 높은 클래스를 predicted label로 채택하면 된다.
Hierarchical Classification
유사성으로 class를 그룹핑하고 분류를 만드는 것은 유효 클래스 수를 줄인다. tree에서 top-down 방식으로 classify 한 것이다. 하지만 더 좋은 성능을 낸 다는 것은 보장할 수 없다.