fengdu78 / lihang-code

《统计学习方法》的代码实现
18.66k stars 6.26k forks source link

第8章提升方法代码中G(x)函数的实现存在问题(同#11) #18

Closed Ruikun-Li closed 5 years ago

Ruikun-Li commented 5 years ago

在第8章提升方法中,进行了二分类AdaBoost的实现,其中在G(x)函数中,根据当前阈值v得到的error与现有error的比较来决定是否更新最小误差error、分类器输出compare_array以及最好的阈值best_v,但是却没有对弱分类器的类型direct(“positive”或“nagetive”)进行更新。

原代码: if weight_error < error: error = weight_error compare_array = _compare_array best_v = v return best_v, direct, error, compare_array

修正代码: f_direct = "positive" #定义f_direct,为最终的direct ... ... ... if weight_error < error: error = weight_error compare_array = _compare_array best_v = v f_direct = direct #对f_direct进行更新 return best_v, f_direct, error, compare_array