05.最优化方法
数据分析
数据分析,或者大数据分析并非易事,下车伊始可能会觉得选择合适的算法模型即可。接触越多会越发现更多来自于业务与场景的挑战:
数据科学通常包含三个部分:数据采集与处理、数据分析与数据可视化。数据科学家可划分为 Analytics 和 MachineLearning 两类,但是也有很多人兼顾两个角色,在工作中相互转换,就是戴两顶帽子(wearing two hats)。前一类通过 AB 测试、深度分析等指导产品决策,而后一类搭建智能决策的产品,提升效率。
-
Analytics 大多是问题导向,如购物平台上用户在工作时间和下班后消费习惯的差异。最初可以针对用户总体进行分析,然后在结果的基础上做更细化的分析。可把用户按照城市、地理位置、用户使用的客户端来分类细化。整个过程是交互式的,就是不断提出新问题,通过分析解决问题,然后再提出新的问题,最终目的是做决策辅助。
-
MachineLearning 主要是指标驱动,如提高广告平台上用户的转化率。转化率就是从用户点击广告到生成转化(如用户访问广告商网站和下载 APP)的比率。通过应用预测模型或对当前系统调参来提升指标,最终生成智能化的产品。
开始先搜集原始数据(企业的 CRM 数据、交易记录等),还有网站点击流或用户 APP 内行为的埋点日志。
之后,对原始数据进行预处理,也叫数据清洗。原始数据会有很多冗余、变量缺失以及错误。基于清洗过的数据,可以做一些探索性分析和机器学习建模。
在探索性分析方面,尿片和啤酒是很经典的案例。很多分析师会对商品信息进行归类以及监督商品的相关度。一般情况,大多数的商品相关度都很低,约在 0.1 左右,啤酒跟尿片的相关度是 0.3 左右。针对这个奇怪的现象,分析师们做了分析,发现很多父亲晚上去超市给婴儿买尿片的同时也会买啤酒来自己喝。这样一来,超市摆放商品时可以把相关度比较高的商品放在一起,方便顾客挑选。所以对数据科学来讲,通过数据分析、建模可以得到一些可以让人信服的信息,便于做决策辅助。
另外就是数据产品,分为分析型和智能化产品。
-
分析类数据产品。如现在了解当前北京实时交通状况,可以爬取网上数据,针对这些数据做一些可视化和交互式分析。这样数据产品可以展现数据和定时更新数据内容,就是一个分析型数据产品。
-
智能化数据产品。如基于机器学习实现的搜索引擎,广告推荐系统等,自动搜集数据并基于数据决策的系统。
函数曲线极值
我们把函数曲线理解成一个一个山峰和山谷组成的山脉。那么我们可以设想所得到的每一个解就是一只袋鼠,我们希望它们不断的向着更高处跳去,直到跳到最高的山峰。所以求最大值的过程就转化成一个“袋鼠跳”的过程。 下面介绍介绍“袋鼠跳”的几种方式。
-
爬山算法:一只袋鼠朝着比现在高的地方跳去。它找到了不远处的最高的山峰。但是这座山不一定是最高峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。
-
模拟退火:袋鼠喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高峰跳去。这就是模拟退火算法。
-
遗传算法:有很多袋鼠,它们降落到喜玛拉雅山脉的任意地方。这些袋鼠并不知道它们的任务是寻找珠穆朗玛峰。但每过几年,就在一些海拔高度较低的地方射杀一些袋鼠。于是,不断有袋鼠死于海拔较低的地方,而越是在海拔高的袋鼠越是能活得更久,也越有机会生儿育女。就这样经过许多年,这些袋鼠们竟然都不自觉地聚拢到了一个个的山峰上,可是在所有的袋鼠中,只有聚拢到珠穆朗玛峰的袋鼠被带回了美丽的澳洲。