在这个基准数据集中,并不太深的神经网络全部预测正确,而 XGBoost 预测错了三个。当然如果我们改变种子并且再运行一次,XGBoost 算法也可能会完全正确,所以这一结果并不能说明神经网络就要比提升方法好,我们也不需要进一步解读。 下面我们将以上的代码进一步推广到一般情况,因此我们能嵌入任何选定的数据集,并对比两种方法的测试集精度和可能存在困难的任务。当我们在处理代码时,我们可以在精度统计值上添加一个 boostrap 以了解不确定性大小。 完整的代码可以在 Github 查看:https://gist.github.com/maxberggren/b3ae92b26fd7039ccf22d937d49b1dfd Telecom churn 数据集(n=2325) 数据集:https://community.watsonanalytics.com/wp-content/uploads/2015/03/WA_Fn-UseC_-Telco-Customer-Churn.csv?cm_mc_uid=06267660176214972094054&cm_mc_sid_50200000=1497209405&cm_mc_sid_52640000=1497209405 ANN XGBoost Churn 是一个更加困难的任务,但两种方法都做得挺好。 三种红酒数据集(n=59) 数据集:https://gist.githubusercontent.com/tijptjik/9408623/raw/b237fa5848349a14a14e5d4107dc7897c21951f5/wine.csv ANN XGBoost 这是一个非常简单的数据集,这两种方法都没有出现异常,因为样本空间实在是太小了,所以 boostrap 基本上没起什么作用。 德国人资信数据(n=1000) 数据集:https://onlinecourses.science.psu.edu/stat857/sites/onlinecourses.science.psu.edu.stat857/files/german_credit.csv ANN XGBoost 所以从上面来看,ANN 有时能得到最好的性能,而 XGBoost 有时也能得到最好的性能。所以我们可以认为只要 ANN 控制了过拟合和过训练,它就能拥有优良的表现,至少是能和 XGBoost 相匹配的性能。 XGBoost 的调参确实需要很多时间,也很困难,但 ANN 基本不用花时间去做这些事情,所以让我们拭目以待 ANN 到底是否会在小数据集上也会有大的发展。 本文为机器之心编译,转载请联系本公众号获得授权。 ✄------------------------------------------------ 加入机器之心(全职记者/实习生):[email protected] 投稿或寻求报道:[email protected] 广告&商务合作:[email protected] (责任编辑:本港台直播) |