결정트리를 공부하다가 DecisionTreeRegressor
클래스의 criterion
하이퍼파라미터의 input 값에 있는 "friedman_mse"와 "squared_error"는 어떤 차이가 있는지 궁금했다.
"criterion"은 분할 품질을 측정하는 방법을 선택하는 하이퍼파라미터이다.
"squared_error"는 version 1.2 이전에서는 "mse"와 같은 방법을 의미한다.
"friedman_mse"와 "squared_error"는 불순도(impurity)를 개선하는 방법에서 차이가 있다.
MSE
Scikit Learn Code Formula
- proxyimpurityleft=∑ikLeftSumi2
- proxyimpurityright=∑ikRightSumi2
proxyimpurityimprovement=weightednleftproxyimpurityleft+weightednrightproxyimpurityright
Friedman MSE
Scikit Learn Code Formula
- totalsumleft=∑ikLeftSumi
- totalsumright=∑ikRightSumi
- diff=weightednright×totalsumleft−weightednleft×totalsumright
proxyimpurityimprovement=weightednleft×weightednrightdiff×diff
Friedman Paper formula 35
- wl: weighted n left
- wr: weighted n right
i2(Rl,Rr)=wl+wrwlwr(ytˉ−yrˉ)2
참고