请各位客官谨记:R是一把锋利的刀,用得不好会割到自己(so sharp that you’ll cut yourself)。近日一位小同学的一个问题真是让我颇有些生气。
带着图形界面统计软件的思维来用R的话,十有八九会割到自己。在SPSS、SAS等工具中,虽然看着满屏幕的按钮,但大部分人可能也不害怕,因为不用管它们是什么意思,瞎选一通,按OK,下面就可以洋洋自得看着长篇大论的报表出来了,这种过程很是爽。
到了R的世界,满屏幕只有代码,后来好不容易明白了,原来R不用编程,调用现成函数就可以了,于是乎,开始把各式各样的数据、参数往函数里面扔,扔完了summary()一下,长篇大论的报表也出来了,甚爽。直到有一天,R向你报告说某地方出错了,于是傻了。
这里的案例是AdaBoost,这位同学用adabag包中的adaboost.M1()函数对树模型做boosting,却被告知无法进行。我看了一下数据,原来因变量是数值变量。于是火了,数值变量你咋用Adaboost.M1啊?它本身是对分类问题做的提升,对于一个回归问题非要驴唇对马嘴,这不净瞎扯么。
洒家满以为是个有趣的问题,结果饿着肚子回了邮件,真是亏大了。外专业的同仁也就罢了,俺不会说什么,关键是统计专业的。挥一挥衣袖,用膳去鸟。