Friedman mse vs Squared_error ??

Smiling Sammy·2022년 9월 18일
0

결정트리를 공부하다가 DecisionTreeRegressor 클래스의 criterion 하이퍼파라미터의 input 값에 있는 "friedman_mse"와 "squared_error"는 어떤 차이가 있는지 궁금했다.

"criterion"은 분할 품질을 측정하는 방법을 선택하는 하이퍼파라미터이다.
"squared_error"는 version 1.2 이전에서는 "mse"와 같은 방법을 의미한다.

"friedman_mse"와 "squared_error"는 불순도(impurity)를 개선하는 방법에서 차이가 있다.

MSE

Scikit Learn Code Formula

  • proxy  impurity  left=ikLeftSumi2proxy\;impurity\;left = \sum^k_{i}{Left Sum_i^2}
  • proxy  impurity  right=ikRightSumi2proxy\;impurity\;right = \sum^k_{i}{Right Sum_i^2}
proxy  impurity  improvement=proxy  impurity  leftweighted  n  left+proxy  impurity  rightweighted  n  rightproxy\;impurity\;improvement = {{proxy\;impurity\;left}\over {weighted\;n\;left}} + {{proxy\;impurity\;right}\over {weighted\;n\;right}}

Friedman MSE

Scikit Learn Code Formula

  • total  sum  left=ikLeftSumitotal\;sum\;left = \sum^k_{i}{Left Sum_i}
  • total  sum  right=ikRightSumitotal\;sum\;right = \sum^k_{i}{Right Sum_i}
  • diff=weighted  n  right×total  sum  leftweighted  n  left×total  sum  rightdiff = weighted\;n\;right \times total\;sum\;left - weighted\;n\;left \times total\;sum\;right
proxy  impurity  improvement=diff×diffweighted  n  left×weighted  n  rightproxy\;impurity\;improvement = {{diff \times diff}\over {weighted\;n\;left \times weighted\;n\;right}}

Friedman Paper formula 35

  • wlw_l: weighted n left
  • wrw_r: weighted n right
    i2(Rl,Rr)=wlwrwl+wr(ytˉyrˉ)2i^2(R_l, R_r) = {w_lw_r\over {w_l+w_r}}{{(\bar{y_t}-\bar{y_r})}^2}

참고

profile
Data Scientist, Data Analyst

0개의 댓글