1.问题定义:
设定目标,将特殊的业务问题转化为数据问题
一般来讲,适合用数据解决的问题有以下五个特点
- 1.问题有明确、可量化的目标:
许多时候,数据科学家解决一个商业问题需要定义多个目标,每个目标对应一个模型,而最终的数据科学解决方案由多个模型组成。
例如,设计一个电商搜索引擎,需要从不同的角度考虑什么是一个合理的流量分配机制。如果电商搜索的目标仅仅是提高成交转化率,那么这可能会导致搜索所浮现的商品高度同质化。
优化一个电商搜索引擎不仅需要关注成交转化率,同时需要关注浏览转化率、类目丰富度、消费者满意度、新品成交比例、作弊比例等多种因素。
- 2.可以收集到丰富全面的数据样本
当数据样本可以覆盖问题的不同侧面时,机器便可以更加完整地从数据中学习到规律。一个人如果只见过白色的天鹅,他自然会认为天鹅全是白色的,黑天鹅便是他决策的盲点。在这一点上,机器与人并无区别。
许多时候,数据科学家在开始实施一个项目之前,需要判断描述问题的样本是否足够全面,问题的不同侧面是否都有足够的样本描述。并且,数据科学家往往需要调整不同类别样本的比例,以保证机器学习算法可以充分理解问题。
在信用风险评估模型中,正常客户的样本一般都会远大于逾期还款客户的样本。如果数据科学家直接把这个数据喂给机器,机器往往会盲目乐观,认为大部分客户都不会逾期还款。在统计学中,只有数据中不同类别的样本相对均匀时,统计推断才是合理的。
当数据中两个类别的样本高度不均衡的时候,机器学习算法从小类别中学习到的信息往往严重少于它从大类别中学到的信息。尤其,逾期还款客户之所以逾期的原因是多种多样的,当这个类别样本量相对不足时,算法很难充分挖掘不同类型逾期还款的信息。
在这种情况下,数据科学家需要重新调整正常客户和逾期还款客户的比例,例如模拟逾期还款客户的样本并从正常客户样本中进行筛选,使得两个类别的样本近似均衡。基于数据科学家处理过的数据,机器学习算法才可以充分从数据样本中识别完整规律。
如果没有大量的围棋比赛数据样本输入给AlphaGo, 纵使AlphaGo使用的算法再高超,也难以胜过李世石。在癌症数据分析中,癌症病人的数据样本是非常稀缺的,而癌症诊断模型是否有效往往取决于患者样本的大小。并且,不同人群的数据样本往往存着巨大的差异,从一个人群的数据样本中得到的结论不一定适用于另一个人群的诊断。
在医学领域,数据科学家往往仅能获得有限的样本数据。在这种情况下,机器学习算法使用的数据变量越多,模型的效果往往越不好。
这就是机器学习中的“维度咒诅问题”——模型使用数据变量个数要随着样本量的增加而增加,不然模型会“过拟合”(即从有限的数据中过度学习从而得到错误推断)
数据样本的丰富度决定了机器学习的能力。这就是为什么机器不善于创新——机器学习算法很难成功解决一个全新的问题。在新问题中,即使问题目标被定义清晰,数据科学家也很难为机器准备出足够丰富的样本来描述问题。
- 3.可以收集到丰富全面的数据样本
在这些问题中,寻找描述问题的关键特征的起点往往是行业经验。人们常以为行业规则和数据建模是对立的。实际上,经验规则正是机器学习的起点。一个领域如果完全没有经验的积累,机器学习技术的启动往往也非常困难。数据科学家需要善于从经验中提炼基础数据,并找到从基础数据生成更多经验规则的方法。
有许多问题,从表面看描述问题的关键特征已经存在,但实际上关键特征却是缺失的。例如,在银行的小微企业线下信贷业务中,判断小微企业信用风险的核心数据往往需要线下实地收集。数据科学家需要设计问卷收集数据,并借助算法来判断什么数据是关键数据。
在现场调查中,信贷员往往需要收集以下数据:商家在调研当时有多少现金、调研时商家厂房用电量、商家家庭状况和对贷款态度、调研时商家的货物库存状况。如果这些关键数据不能获取,基于有限数据的机器学习结果会给人误导。
由于机器仅仅能解决单一目标的问题,一个优秀的数据科学家的价值体现在充分理解问题背后的业务背景,站在业务角度提炼明确、可量化的目标,让机器可以在不同目标下从数据中学习,最终完成数据科学的完整解决方案。
数据科学家是一个特殊的职业,要成为一名卓越的数据科学家绝非易事。数据科学家一方面需要深入理解数据和算法技术,一方面又要深入理解行业和企业特性。
- 4.人工成本高
搜索是一个数据可以充分发挥价值的应用,因为没有运营人员可以满足每个用户的每个关键字搜索需求,因此搜索必须靠机器解决,尽管机器解决得不一定那么完美。个性化推荐也是数据可以发挥优势的应用,因为没有企业可以负担让客户经理去照顾每个客户个性化需求的人工成本。
同理,量化交易也是数据科学可以创造价值的领域之一,没有任何交易员可以24小时关注大量信息,而且这些信息可能包括许许多多曲线和大量资讯。当数据科学家设定好交易目标,并获取充足的样本和数据变量后,机器便可以极低的成本不停运转计算。
在医学领域,真正为大众带来创新价值的数据挖掘不一定是寻找灵丹妙药,而是以更高的频率关注人身体的健康与疾病信息。如果关键信息可以通过机器学习算法被提前发现,许多疾病便可以在更早期被干预治疗,甚至是完全避免。
许多人工智能技术是完美的科研项目,但由于它所解决的问题的人工成本并不高,所以并不适合被大规模商业化。许多在商业上被成功应用的机器学习技术,其本质都是通过提升企业运营效率来为企业创造利润或者其他竞争优势。
典型的成功案例有机器学习技术在Google成功提升搜索广告匹配到目标客户的效率,在PayPal成功提高了金融欺诈检测的效率。
- 5.存在适合的人工场景
数据科学家往往需要深入理解行业,判断在不同行业中什么应用场景是最适合用数据解决的问题。例如,互联网行业的核心是流量,因此试图优化流量分配机制的排序算法在互联网行业中价值巨大;而金融行业的核心是风险管理,因此起到基础作用的金融模型一直围绕着风控。受行业特性影响,互联网排序算法尤其强调计算效率,但信用风险评估模型对计算效率要求并不高,反而对模型的可解释性和稳定性却有很高的要求。
数据科学家需要理解数据嵌入的产品最终为谁服务,数据是否提升产品服务的附加值。一个准确猜中用户需求的产品推荐算法是否可以被大规模应用,取决于产品推荐的结果出现在哪个场景。如果这个产品推荐的结果出现在购物车中,用户可能会发现惊喜;但如果这个推荐结果出现在搜索引擎旁边,用户可能完全无视推荐结果。
一个贷款审批模型可能可以精准预测客户的信用风险,但是如果信贷业务的客户经理主观上并不希望其审批权力被取代,则再准确的信用风控模型也不会发挥任何实际价值。
以银行风控业务为例,不同的业务场景往往对风控模型的需求是截然不同的。对于大客户信贷审批,数据模型没有实际作用,因为大客户审批的工作量完全可以由业务人员来承担,并且大额审批一定是靠人决策。即使一个富翁请了10个保姆去打理花园和厨房,也仍会让自己老婆去管理房产证。但是,在小微商户的信贷业务的贷后管理中,数据模型便可以发挥举足轻重的作用,银行没有大量人力去在贷后的每一个月都去派业务人员进行大量企业的贷后风险管理。
而在公安大数据应用中,数据模型的可解释性远大于预测的准确性。你不能因为安全模型给本拉登打分为99分就将他枪毙,总需要一些客观的根据(数据)。公安数据模型最大价值就是从大量原始数据中缩小范围,提供可解释的关键数据。这些关键数据,正是公安中的证据。
2.数据准备:
从数据源抽取特征,对特征数据进行加工处理
在电商网站中,成交量最多的关键字商品往往没有什么特别价值,但是,一个关键字商品如果在最近几天拥有大量浏览却很少被购买,才正是说明了这里有市场需求未被满足这一关键信息。一个贷款客户最近半年交易流水数据的汇总信息往往意义不大,而是变化趋势和支出/收入比例有更大信息价值。一部电影是否符合你的胃口,不仅取决于你长期的兴趣,更取决于你最近的经历变化。
有经验的数据科学家可以凭借业务经验、直觉和逻辑推理提炼出大量具有预测意义的“数据特征”,同时可以将数据特征的抽取方式总结成一套算法体系,让计算机系统去自动提取特征。数据科学家负责设计特征抽取机制,借助经验与算法的协作,来不断丰富原始数据到关键数据的提炼机制。
3.算法调优:
基于准备好的数据,自动寻找最优算法和参数
所谓好算法,就是不浪费数据。能最大化数据价值的算法,是基于不同数据结构而发挥数据价值的。换句话说,不同的数据结构和不同的算法确实存在匹配关系,没有最好的算法,只有最适合的算法。例如,决策树算法效率非常高,也易于解释,但却不适合在高维度数据中做建模。而即使预测能力非常强的GBDT算法,在文本挖掘中也难显示其威力。
4.知识发现:
将模型转化为决策依据,发现经验外的新知识
在我看来,大数据的价值不是预测,是发现——发现那些宏观的规律让人获取新的洞见,发现那些微观的细节便于快速决策。在人最关注的问题上,人很难放手交给机器去做决策,人更希望机器是重大决策的辅助者。
5.效果分析:
定义不同衡量标准,分析模型整体与局部效果
完整的模型效果分析,往往是模型优化最重要的环节。数据科学家在效果分析中往往需要回答几个问题:
(1) 最适合评估解决特定业务问题的模型效果衡量指标是什么?
(2) 模型上线测试前,模型的离线测试效果是否理想?
(3) 模型的计算效率如何,是否可以在海量数据中跑通?
(4) 模型的业务逻辑是什么?
(5) 模型在不同数据样本之间的效果是否有显著差异,这意味着什么?
6.线上部署:
规范模型输入输出,模型与多个系统无缝对接
把模型部署上线前,数据科学家需要严格定义模型的输入和输出,并且让模型的上下游系统与模型无缝对接。机器学习的结果,往往需要和多个系统对接,彼此之间的完美配合是让算法发挥效力的重要前提。
7.模型更新:
监控数据异动与模型变化,持续迭代更新模型
最出色的数据科学家可以从数据中提炼价值,但他们会让数据价值的挖掘过程并不一直依赖于他们自己的持续耕耘。数据科学家是机器的导师,真正优秀的导师一定是“授机器以渔,而非授机器以鱼”。数据科学家只应该负责设计机器学习算法并将其部署上线,让机器应该具备直接从数据中自动学习,并且根据数据的变化动态调整模型的能力。
数据科学家需要设计“监控算法”,以持续监控模型效果的变化、模型逻辑的变化以及数据本身的变化,从而让模型实现自动更新。并且,数据科学家设计的模型在不同应用场景分别学习后,机器便得到了普世智慧,这一技巧可以让算法在新问题中也可以很好的发挥作用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。