理论是高度通用的,但到最终落地的过程中,需要丰富的数据/业务知识, 以及一些tricks
一些长期实战摸索出来的经验,虽然够不上有多高的理论高度,但就像Hary Potter无意间得到的Half Blood Prince写在课本里的实验备注,寥寥几语,做起试验来非常有用,有意想不到的效果
最近有个优秀的同事离职去互联网大厂,他具有非常丰富的建模经验。临走前,跟他聊了不少关于模型的建模过程中的一些感触,总结起来,挺有启发的。
因此这里结合自身及他人的零散经验,不成体系的记录一下(保持更新)
001. 回归问题
- 在对特征建模时,先看response rate高不高,有无建模的条件,能否建立起有效的回归模型;
- 在处理回归时,尤其线性回归,要看一下特征的值域分布,看是否符合高斯分布,主要通过直方图跟QQ图;
- 同时重点关注异常值处理,剔除,或者均值化处理,在看特征分布的重点观察异常分布情况;
- 回归预测一般都不准;
- 可以采取区间分箱作为指标来评价模型的指标,例如3.3w落在分类组“3-4w”里,就算预测正确;这样业务的解释性比RME更强,同时提高了模型的性能
002. 分类问题
- 多分类问题使用logistics 回归时,自行拆分one-one分类后,进行融合 ( 这点保留意见)
- 一般效果最好的都是light GBM,XGBoost
003. 特征构建
- 最好的最相关的特征要有自己的想法,肯定是基于对业务的理解构建;
一个分析师是否建模优秀,核心判别之一为是否能构建出有效有想法的特征;
- 特征集合由2部分组成: 自己构建的强相关业务特征集 + 常用特征库; 构造完了后,按重要性进行筛选;
- 特征决定着模型的上限
- 消费记录建立的特征库最好 - lifestyle
- 连续问题离散化的分箱是常规套路
- 年龄/性别有时是非常关键的模型特征,但由于模型的道德要求越来越高,性别年龄反歧视的背景下,国际大银行有不再将其作为建模特征的趋势
004. 业务模型构建
- 银行的业务模型基本分为风控,市场营销,智能产品-NLP, 推荐系统;
- 风控算法要求不高,但可解释性要强,也就LR, Tree
- 市场营销类模型能提升就是好,一般是二分类为主,带概率的软分类,用于评分;回归问题效果差,应用少些;
- 智能产品-NLP,图像识别,语音识别,看技术团队实力了;NLP可用在智能聊天机器人,语音识别类可用在call center,图像识别想到的主要场景是在银行一线文档类工作的自动化,个人了解得比较少
- 推荐系统用于金融产品跟市场都有,可以推金融服务或产品销售,亦可以在商城或者生活消费类场景下,推商家。
不过推荐系统在金融产品处,那是锦上添花,没有也行,而在电商/feed流那,则是核心的东西,靠这吃饭
- 营销类流失模型,难建,难点在定义流失,每个产品的流失不同
- 客户分群中,一般cluster效果不好,很难聚出有意义的类,聚之前用T-sne试试看
聚类的数目选择,一般用Elbow法,但这个实践中经常没有明显的肘部点。而聚类一般是为其他的业务服务的,因此在聚类的时候,簇数K可以依据业务的目的确定,如吴恩达提的下面案例
005. 算法模型选择
- 从实践过程来看,在选择市场类算法时,并未需要到考虑数据基础结构,或非常特殊数据特征的层面,如稀疏,超高维等,一般就线性模型,GBDT/LightGBM/XGBoost等树模型,SVM
- 模型选择会考虑时间,但时间消费教少的,表现还不错的树模型就XGBoost跟LightGBM
- 深度学习里的LSTM,跟强化学习应该有一些实践,不过未接触,未来增加案例
006. 模型检验评价及调参
- 误差分析时,绘制误差-样本量曲线,判断是否数据量足够,须再加数据
- 分类一般要求K-S 评分 > 0.5, K-S > 0.6算是比较好
- K-S 低于0.5 需要重新训练,优化模型参数,或者数据特征,找出是哪里的问题
- 优化模型时,其中一轮是优化异常值,缺失值填充,不填充/均值填充等一并试一下; 一般按important score 排序,对前几名的做一遍填充优化,模型会优化一些
- Propensity model可用Lorance曲线评价, 在业务上,用lift来说明展示其优化效果
007. 模型运行监测 ( 待完善)
- PSI
- Segment sizing
008. 模型自动化 (鸡肋记录 ,忽略)
- 需要构建基础数据检测,以便模型运行时,输入数据正确
- Python + SAS
- Python + GCP
009. 模型驱动业务的价值 - 灵魂发问
- 模型的use case 有哪些的? 具体怎么实施 ?
- 模型提升或带来了哪些收入? 减少了哪些损失? 为什么?