什么是好算法
在应用科学领域,算法的选择和应用是一个复杂的问题,它涉及到数学、工程和业务策略等多个方面。这篇文章,我们来看看算法的增益、部署问题、线性与非线性模型的选择,以及树模型和神经网络算法的适用场景。
其实,在应用科学领域,这是最微不足道的。
AI,就是数学的游戏,这不能算贬义,因为数学真的是皇冠。
算法带来的超额效果很小。除了逻辑回归复杂度较低之外,xgb、lgb,神经网弱等学习能力都很强,算法的增益几乎可以忽略不计。
选择算法,最重要的是考虑部署问题。如果你们工程上只会逻辑回归的线性计算,那你就只能选逻辑回归。选择别的算法,要先解决工程问题。但其实都好解决,也不好解决,主要看系统能力,其次看个人能力。
从线性和非线性的角度说吧,逻辑回归当然是线性的,神经网络和树模型是非线性的。这个问题带来的结果是,线性的需要分客群,非线性的可能可以不特别需要分客群。
为什么?
ln(odds)=a1x1+a2x2+…,你看表达式就知道了,不同客群的系数矩阵A肯定是不一样的,实际上连组成X矩阵的woe值都不一样。不一样的表达式,采用线性的方式强行合成一个,肯定是有损的。
那树模型呢?分客群可以看作第一层分裂进行了手动分群,其实还不如不分,留给算法自己分。如果你保证总的复杂度不变的话,我相信算法自己分效果会更好。
也就是说,假如分了n个客群,建了n个模型,对比的那一个不分客群的模型,在相同的参数下,评估器的数量应该乘以n。
我们这里说的是做模型分不分客群。建模不分客群不代表策略不分客群,做策略的时候自行去划分就好了。
有人说,神经网络算法更适合同质类数据,即数据的每一维变量是有同样含义的,比如图像中的像素、文字中的字符、音频中的波形,决策树算法更适合异质类数据,比如风控场景中的年龄、收入、职业等。
有点道理,这是结构化数据和非结构化数据的另一种说法。
有人说,在风险建模的时候,若采用树算法,最常采用的参数为低深度、高数量(树深通常设置为2-3,树的棵数设置为几十到一百),一旦树深设置过高,则极易产生过拟合,这与我们对金融数据缺少高阶信息的评判相符。一旦涉及到高阶交叉特征,则此时带来的噪声极可能超过信号,甚至影响到低阶特征的学习效果。对于同质信息,比如数据源都为多头信息,树深可以设置的高一些,因为此时更深的树也不代表高阶交叉,本质上只是同一个信息源的不同分裂节点而已。
有点道理,树深的问题理解成高阶不高阶,仁者见仁智者见智,毕竟树深越深模型越复杂效果就是越好,你不能说它有什么大问题。设置低树深更重要的是和策略,和人的理解保持一致,三个变量交叉已经够你理解的了。至于同质信息,更深的树不代表高阶交叉,这样说也对,毕竟多个多头变量组合你可以理解成一个更复杂的多头变量加工。但是无须差异化,仍然保持低树深即可。
本文由人人都是产品经理作者【雷帅】,微信公众号:【雷帅快与慢】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
- 目前还没评论,等你发挥!