Machine learning & Deep learning 24

[Machine learning] Tree-based Methods: Bagging, Random Forests & Boosting

오늘 공부할 내용은 저번에 공부한 Decision Tree의 성능을 향상하기 위한 방법이다.https://ysk1m.tistory.com/45 [Machine learning] Tree based Methods: Decision Tree로 Regression과 Classification하기Tree-based Methods분류와 회귀 작업 모두에 사용 가능하며, 입력공간을 재귀적으로 분할하여 단순한 영역으로 나눈다.이 방법은 시각적으로 이해가 쉽고, 해석력 높은 모델을 만들 수 있다. 단, 정ysk1m.tistory.com사실 오늘 정리한 내용은 Decision-Tree뿐만 아니라 machine learning의 성능을 향상하기 위한 general 한 method이다. 실제로 연구할 때는(paper를 쓸 ..

[Machine learning] 머신러닝에서 사용하는 통계적 오차 측정 지표의 차이 알아보기

처음 Machine learning을 공부하면 RSS, MSE, RSE에 대한 개념이 헷갈릴 것이다.뭔가 비슷한 것 같은데 셋의 정확한 차이는 뭘까?그 개념을 여기서 확실하게 짚고 넘어가고자 한다. RSS(Residual Sum of Squares)말 그대로 잔차를 모두 더한 것이다. 오차를 제곱해서 더한 것으로 데이터 point가 늘어날수록 RSS값도 끊임없이 늘어난다.그렇기 때문에 성능을 비교하는데 쓰기에는 단위가 너무 크다.또한 샘플 수가 다르면 비교가 어려워 단지 수식 유도를 위한 분석을 할 때 중간단계에서 많이 사용한다. RSE(Residual Standard Error)표준오차라고 불리는 값으로 예측값이 실제값으로부터 얼마나 떨어져 있는지를 나타내는 것이다.그렇기 때문에 작을수록 좋다.RSS는..

[Machine learning] Confounding Effect, Interaction Term, MultiCollinearity의 차이

종속변수들 간 종속변수와 독립변수들 간의 관계에 대해 나타내는 용어이고 공부할 때 헷갈려서 정리를 하려 한다. MultiCollinearity이 경우는 종속변수들의 관계만 생각하자.종속변수 feature들 간의 상관관계가 있는 것이다. linear regression의 경우 \(\beta\)에 대해 closed form이 있는데 식이 \((X^TX)^{-1}\)으로 구성돼있다.즉 feature \(x\) 간의 correlation이 있는 경우 \(\beta\)에 대한 추정이 불안정해지는 것이다. 따라서 서로 correlation이 강한 feature가 있다면 feature를 제거하는 것이 문제를 해결하는 방법이다. Confounding EffectCofounding Effect는 \(Y\)에 영향을 주는..

[Machine learning] Tree based Methods: Decision Tree로 Regression과 Classification하기

Tree-based Methods분류와 회귀 작업 모두에 사용 가능하며, 입력공간을 재귀적으로 분할하여 단순한 영역으로 나눈다.이 방법은 시각적으로 이해가 쉽고, 해석력 높은 모델을 만들 수 있다. 단, 정교한 supervised model에 비해 예측 정확도 면에서 성능이 떨어진다.이 것을 해결하기 위한 방법으로 bagging, random forests, boosting이 있다.이 내용에 대해서는 다음에 공부하도록 하겠다. Tree-based model에 Decision tree가 있으며, 오늘은 이 내용에 대해 알아보도록 하겠다. Decision TreesDecision Tree는 이름 자체에서도 알 수 있듯이 Tree-based model이다.따라서, regression과 classificatio..

[Machine learning] How to select optimal model(feature selection, one-standard-error rule)

모델의 feature의 개수가 증가하면 Accuracy가 높아진다.그러나 모델이 복잡해지므로 interpretability가 낮아지고 coefficient의 분산이 커지므로 새로운 값에 대해 예측이 불안정하다. 이런 점 때문에 단순히 feature의 개수만 늘려서 모델의 성능이 좋아진다고 판단하면 안된다. feature를 어떻게 고를 것이며 몇개를 골라야할지에 대해 공부해보도록 하겠다. Best Subset Selection모든 조합을 전부 살펴보는 것이다.1단계: Null Model(\(\mathcal{M}_0\)) 설정아무 predictor도 포함하지 않은 모델로 모든 관측값에 대해 평균값으로 예측하는 모델이다.2단계:feature 개수별 후보 모델 탐색변수가 \(p\)개있고 그 중 \(k\)개에 대..

[Machine learning] Lasso와 Ridge regression 중 어떤 것을 사용??

Shrinkage Methodsubset selection은 불필요한 feature를 제거하여 모델의 성능을 향상하지만, 자칫 필요한 변수까지 제거할 수도 있다.따라서 모든 feature를 이용하는 대신 regularization항을 추가하여 계수들이 0에 가깝도록 강제하는 Shrinkage Method에 대해 공부할 것이다. 대표적인 방법으로는 Ridge regression과 Lasso가 있다. Ridge regressionRidge regression은 다음과 같이 일반적인 선형 회귀 RSS에 계수들의 제곱합(l2 norm)에 대한 penalty term을 추가로 더하는 것이다.\(\lambda\)가 크면 \(\beta\)가 작아져 분산이 작아지지만 bias가 커질 수 있다.반면 \(\lambda\)..

[Machine learning] Bootstrap에 대해 알아보기

BootstrapBootstrap은 resampling 기법으로, 이미 확보된 하나의 데이터셋에서 복수의 새로운 표본을 생성하여 추정량(모델의 파라미터)의 uncertainty를 평가하는 방법이다. 단, 여기서 sampling은 with replacement(복원 추출)로 이뤄진다. resampling을 통해서 예를 들어 100개의 데이터만 가지고도 100+개의 데이터로 추정한 성능을 내는 것이다. bootstrap을 통해 coefficient의 standard error나 confidence interval를 추정할 수 있다. 간단한 예시를 들어보겠다.두 금융자산 \(X, Y\)의 수익률이 있고, 한정된 자금을 \(\alpha\)만큼은 \(X\)에, 나머지\(1-\alpha\)만큼은 \(Y\)에 투자한..

[Machine learning] Linear regression, Logistic regression code 구현중 모르거나 헷갈렸던 code 정리

linear regression부터 k-fold validation에 대해 실제 예제(code 구현)를 공부하다가 기억하면 좋을 것 같은 내용에 대해 정리.Linear regression_bias항을 모델에 포함시키기Scalar가 아니라 Matrix form일 때, bias를 따로 처리하면 귀찮아지므로, 모든 샘플의 입력 앞에 1을 붙여서 절편도 가중치 취급을 한다.X = np.hstack((np.ones((X.shape[0], 1)), X))X.shape[0] 즉 row방향으로 1로 채워진 배열을 X앞에 stack 한다.X =[[x11, x12], [x21, x22]]↓ hstack with ones[[1, x11, x12], [1, x21, x22]]Linear regression_data split..

[Machine learning] Test error를 추정하는 방법 (K-fold cross validation)

train error와 test error의 관계는 어떻게 될까?모델을 만들었을 때, 최종 목표는 test error를 줄이는 것이다.학습할 때는 test dataset을 볼 수 없으며 이용해서도 안된다. 그럼 어떻게 test error를 낮추고 확인할 수 있을까?오늘 공부할 내용은 test error를 추정하고 이를 낮출 수 있는 방법이다.Training Error vs Test Errortrain dataset과 test dataset은 기본적으로 같은 분포고 특별히 뭐가 어렵고 쉬운 것은 아니다.test error는 학습 때 사용하지 않은 새로운 관측치에 대해 예측하여 발생하는 error이다.반면에 train error는 train할 때 본 관측치에 대해 발생하는 error이다. 단지, 학습할 때 ..

[Machine learning] ML 3주차 공부(Classification? Discriminant Analysis)

Classification 방법 중 Discriminant analysis에 대해 공부한 내용이다. Classify를 하는 방법에는 다음과 같이 2가지 방법이 있다. \(x\)라는 data가 있을 때, 어떤 \(y\) class에 속하는지 확률 분포 \(p(y|x)\)를 예측하는 것이다.Generative Classifier: likelihood인 \(p(x|y)\)와 prior distribution인 \(p(y)\)를 추정하여 posterior distribution인 \(p(y|x)\)를 예측하는 것이다. 여기서 알고자 하는 posterior distribution은 신만이 알고 있는 분포라고도 한다. 예시로 Bayes classifier가 있으며, Discriminant Analysis가 그 방법..