Loading...
2021. 12. 15. 00:04

regularization이란 무엇일까?

1. regularization이 무엇일까? 누군가가 regularization이 뭐에요?라고 물어보면 뭐라고 대답해야할까 쉽지 않다.. 당장 대답해보라하면 그냥 과적합을 방지하기 위해 loss function에 항을 추가하는 일? 여기서 조금 더 떠들어본다면 모형이 train data를 너무 잘 배워서 loss를 빠르게 줄이는 것을 막고자 penalty로 항을 추가한다. 그러면 loss를 빠르게 줄이는 것을 막아 과적합을 방지하게 된다 위키피디아의 정의를 가져와봤다 regularization is the process of adding information in order to solve an ill-posed problem or to prevent overfitting. ‘과적합을 방지하기 위해 무언..

2021. 12. 14. 23:41

연속형 변수를 사용한 decision tree

보통 범주형 변수만 사용가능한 것처럼 decision tree를 설명하지만 decision tree의 구분 feature로 연속형 변수도 사용가능합니다. 방법은 여러 가지가 있는데 하나를 예로 들어 설명하자면 예시 데이터가 위와 같다고 합시다. 구분하고자하는 feature 여기서는 예를 들어 income을 정렬합니다. 그러면 label이 바뀌는 지점이 생기는데 label이 바뀌는 지점의 평균점을 기준값으로 잡습니다. 각각 59.7, 64.9, 84.9 세 지점이 생기는데 각 지점에서 information gain이 최대가 되는 기준지점을 찾습니다. gini 계수를 이용해 계산하면 income이 59.7보다 클때와 작을때로 구분하는 것이 최대라고 합니다. lotsize도 똑같은 방식으로 기준값을 잡고 각 ..

decision tree의 불순도를 측정하는 기준

불순도를 측정하는 기준으로 entropy를 사용했지만 gini 계수라는 것도 있습니다. 그 외에도 카이제곱 통계량이나 분산의 감소량같은 것도 사용하며 이에 따라 C4.5, CART, CHAID 등 다양한 decision tree 알고리즘이 있습니다. 지금까지 설명한 알고리즘은 ID3라는 기본적인 알고리즘이었습니다. gini 계수는 다음과 같이 정의합니다. $$1- \sum _{i=1} ^{c} p _{i}^{2} =G(U)$$ 이 식을 그림1을 예로 들어 설명하면 빨간색 데이터는 6개이고 파란색 데이터는 4개인데 $p _{1} = \frac{6}{10} ,p _{2} = \frac{4}{10}$으로 $G(U)=0.48$ 반면 entropy로 계산한 불순도는 $H(U)=0.972$

2021. 12. 13. 00:16

decision tree의 가지치기(pruning)

위와 같이 decision tree는 recursive partitioning을 통해 각 node에서 information gain이 순간 순간 최대가 되는 방향으로 feature를 선택하고 최종 node의 entropy가 0이 될 때까지 구분을 진행합니다. 그런데 딥러닝을 많이 하신 혹시나 이 글을 읽고 계신 분은 짐작하셨겠지만 주어진 training data에 너무나 fitting된다는 단점이 있습니다. 그러니까 새로운 data가 들어올 때 사실 정확한 분류를 해줄지는 미지수라는 점입니다. 그래서 pruning이라는 방법을 수행하여 일반화 능력(generalization performance)을 올려줍니다. 일반화 능력은 딥러닝에서 모델이 train중 한 번도 보지 못한 test data에 대해서도 ..

2021. 12. 11. 21:23

예시를 통해 이해하는 decision tree가 생성되는 원리

현재 딥러닝이 분류문제의 기본 상식으로 알려져있지만 이전에 고전적인 머신러닝에서는 decision tree를 이용하여 분류문제를 해결했습니다. decision tree는 주어진 dataset을 class별로 구별해나가는 하나의 tree를 생성하는 모형인데요. 어떤 식으로 구별해나가는지 그 원리를 예를 들어 설명하겠습니다. 주어진 dataset은 여러개의 feature를 가지고 있겠죠? 예를 들면 다음과 같은 dataset을 생각해봅시다. 현재 D1~D14까지 data를 outlook, temperature, humidity, wind라는 feature를 이용하여 target 변수인 play tennis의 yes or no 여부를 구분해야합니다. 현재 구분하기 전에 yes는 9개 있고 no는 5개 있습니다..

분위수 변환(quantile transformation)

1. quantile transformation의 이론적인 설명 주어진 데이터 $x _{1},x _{2} ,...,x _{n}$의 분포를 그려보니 다루기 힘들거나 마음에 안들어서 분포를 변환할 필요가 있다고 합시다. 주어진 데이터 $x _{1},x _{2} ,...,x _{n}$의 분포를 나타내는 누적확률분포함수 $F(x)$를 먼저 구해봅시다. 그런데 관측된 값으로는 이것을 구할 수 없으니 경험적 분포함수로 누적확률분포함수를 추정합니다. 주어진 데이터 $x _{i}$에 대하여 $F(X) \approx F(x _{i} )$로 추정했다고 합시다. 분포함수에 관한 theorem 1에서 "$X$의 누적확률분포함수가 $F(x)$라면 확률변수 $Y=F(X)$는 $U(0,1)$을 따른다”라고 했습니다. 이것이 무슨 ..