废话不多说,直接上表格吧。
金融 | 互联网 | |
1. 优化目标 | 单一、明确 (e.g. 是否违约) 比如对于一笔贷款来讲,可能只关系违约问题 | 想要优化的指标太多。 比如facebook的newsfeed要做ranking,要根据什么指标,比如好友po了一个消息,我们又希望这个消息被commment,又希望被like,又希望被share。所以可能需要建立multi task的machine learning model。 |
2. 模型开发过程 | ||
2.a. 周期 | 很长,1-2年。
1.开发周期很漫长。可能要出去买数据。 一个用户过来贷款,可能出现3种情况(1)他被拒绝(2)他被approve但是他没有来贷款(3)他被approve然后他来贷款。因为在建模的时候,可能只有第三种数据,但是由于模型的数据还是希望它更广泛,population能更balanced,所以没有前两种数据,所以都要买的,非常耗时间。
2.金融公司用sas,有点慢,现在很多公司是从sas转python。
3.把模型的风险和稳定性向别人验证,很耗时。(1)在2年内模型很robust,出现极端数据的时候你的模型还基本稳定,没有出问题.(2)银行会从征信机构拿数据,数据的可靠性和稳定性非常不确定,比如征信局突然不给数据,没有数据了,你的模型是否能抵挡这些意外情况 | 一周内。
只要明确了目标,要用什么数据,然后写一个pipeline,然后把数据输入进去,然后结果可能就几个小时之后或者几天之后就可以了。 |
2.b. 数据搜集时间 | 使用3-4年前的数据
一笔贷款,要观察他的违约情况,贷款一般是4-5年还清,所以才能看到这些数据。 | 近期内的数据,1周到几个月的数据就足够用
比如facebook每天数据就很多,是real time的就可以获得的。 |
2.c. feature engineering的重要性 | 一般都用bureau的data
金融公司一般用买的数据,不怎么用feature engineering | 很重要,往往新的feature能极大提高模型表现
|
2.d. 数据清理的重要性 | 缺失值、极端值、不合理值的处理
找工作要引起重视,这个是必考面试题,有的时候并不考你会不会model,而是去想怎么处理极端值,缺失值,这就是很好的印象。 | 不太重要
|
2.e. 调参的重要性 | 参数、feature的选择很重要 | 不太重要 |
2.f. 模型风险的重要性 | 很重要,花很多时间验证模型的稳定性 | 不太重要 |
3. 测试过程 | ||
3.a.测试方法 | 根据公司业务发展的需求,统一threshold
比如指标是80%,然后大家都往这个方面努力 | 使用同一个模型,不同的threshold,分别测试
|
3.b.搜集数据的容易程度 | 很慢,因为获得结果需要一定时间 | 很快,结果往往当天就能获得 |
3.c.模型的线下线上模型是否一致 | 大概率一致 | 不一定 |
4. 常用的编程语言 | SAS、Python、R | SQL、Python、R、PHP、JAVA、C++ |
5. 常用的模型 | 逻辑回归、GBM | GBM、NN |
