作者:cooperyjli,腾讯CDG数据分析师机器学习是一种以收集数据、应用算法、生成模型为核心的解决问题的思维方式。与普通的数据统计和分析相比,机器学习有自己的优化过程和评价体系,是一个更加独立和相对闭环的领域。冯友兰在《中国哲学简史》中说,所谓哲学,就是对人生进行系统反思的思想。从这个意义上说,机器学习对于日常数据工作来说无疑是一个相对更加智能的工具箱。本文不是技术文章。意在完全跳出数学推导和编程实现两部分,用纯正的中文讲解机器学习的战略原理。人们说,去掉物理公式,物理就变成了数学。如果你抽出机器学习的基本问题来看机器学习,你会发现它其实就像一门丰富而实用的哲学。思考,或者一些解决问题的策略原则。下面首先讲解机器学习的基本流程,列出几个主要流程和关键要素;然后介绍了机器学习的主要算法框架,包括监督学习算法、非监督学习算法和常用的降维、特征选择算法等;最后在业务实践过程中给出了一个可行的项目管理流程供参考。1.基本流程1.1机器学习的五步流程如果你把机器学习当做一个闭环的工作项,你会发现它的整个流程和我们日常生活中的其他事情类似,比如做一个ABtest,Do竞争产品分析,或编写量化策略。只是在基本过程中,我们要考虑的问题和使用的工具和方法不同。下面参考Dalio的五步流程法,试图将机器学习的基本流程简化为五个环节。01确定目标机器学习的目标不是机器学习,而是我们将这种方法应用到现实世界的场景中,解决现实世界的问题。所以在开始工作之前,我们需要想好我们要实现的目标是什么,比如流失用户的风险提示,潜在付费用户的意愿评估,或者授信用户的欺诈识别。02诊断问题因为明确了要达到的目标,所以可以根据实际诊断问题。为了实现这个目标,机器学习需要什么样的输出,简单的0-1标签就可以了,或者需要连续的风险概率;目前的数据量能否支撑这个项目,业务样本的黑白比例是否不够均衡,这些问题都需要诊断。03方案设计明确了要实现的目标,了解了现实基础上存在的问题,就可以进行方案设计了。在这种细分的业务场景下,适合使用哪类算法?不同的领域往往会诞生不同的算法;在这种场景下,如果没有明确的黑白样本,需要用什么方法来定义样本。在程序设计环节,需要对要开展的工作给出一个大方向,相当于把时间和精力限制在一个合适的框架内。04程序执行程序执行过程中遇到问题,如何解决也是一个很重要的环节。机器学习算法的执行过程一般称为优化过程,即在一个算法框架下如何尽快达到最优结果。整个计划的实施将包括数据准备、特征工程、算法调试、模型评估等具体事项。每一件事都相互独立,有自己的方法论,但又相互影响。上下游环环相扣的执行效果。05评估迭代评估的过程实际上是一个目标量化的过程。因为量化,才有绝对的效果。只是业务目标不同,模型框架不同,对应的评价体系不同而已。建立一套合适的评估方法,机器学习项目将实现闭环,在迭代中逐步接近要实现的业务目标。1.2机器学习的关键要素01机器学习的三要素与经济学的基本要素劳动、资本、土地相同。事实上,机器学习也有自己的三要素,即数据、算法和模型。它们缺一不可,又相互关联。并贯穿于工作的全过程。人们说机器学习的过程就是准备足够的数据并应用合适的算法生成优秀模型的过程。02其他关键点除了机器学习的三要素外,其实还有一些其他的点也是相当重要的,比如特征处理、优化算法、模型评估等。如果没有这些内容,模型实际上可以生成,但只能在大大降低的级别上生成。特征处理决定了模型性能的上限,优化算法让我们以最好的方式逼近模型性能的上限,模型评估定义了我们在说什么。它们分别是怎样的模型性能?2.监督学习监督学习必须处理有标签的数据,即在业务场景中有绝对的黑白分明,好坏分明。比如在信用风控的场景下,逾期逾期了。在金融市场的场景中,涨跌也有明确的定义。通过对历史数据的学习,给当前数据赋予一个离散的标签,或者说是一个连续的数值结果。2.1线性模型线性的起点模型很简单,就是要建立一个事物,要考虑多个因素,比如ABCDE五个因素,每个因素都有自己的权重,权衡每个因素之后,再做最后的决定。将这个想法转化为数学表达式,就有了因变量、自变量、系数、偏差等概念,从而形成了一个线性模型。线性模型也可能很复杂,历史悠久,并且有很多变体。最经典的形式是在线性基础上加一个Sigmoid函数,从而将线性输出转化为概率,进一步转化为黑白标签,即逻辑回归。在传统金融场景的记分卡领域,逻辑回归的应用非常广泛和深入。2.2决策树决策树的思想可以用四个词来概括,就是分而治之。线性模型中考虑的因素是相互并列的,具有不同的权重,而在决策树中则不是这样。决策树中的因素是串行的,即先考虑因素A,然后针对因素A中的各种情况不断考虑新的因素,形成一组决策链,即决策树。所以决策树中最重要的问题就是我在当前节点应该考虑哪些因素才能继续做这个决定。为了解决这个问题,决策树在计算机领域引入了信息熵的概念。推导后有最大增益和增益率等指标,分别对应ID3和C4.5这两个经典的决策树范式。后来引入基尼系数作为因子选择的判断条件,生成了CART决策树。2.3贝叶斯贝叶斯学派与频率学派的争论很像物理学中的波粒之争。数学家争论参数是否存在,物理学家争论光是不是波。粒子。波粒之争最终通过波粒二象性理论落下帷幕,但贝叶斯与频率论的争论并没有结束,它们在不同时代继续占据主导地位。频率派认为存在一个客观的实体(参数),所以他们要做的就是尽可能地拟合和逼近这个参数,比如最大似然估计。贝叶斯主义者拒绝相信这一点,他们坚持认为我看到(先验概率),我思考(后验概率),我做出决定(贝叶斯模型)。贝叶斯理论在文本处理领域应用广泛,产生了很多经典模型。根据因素之间的独立性差异,产生了朴素贝叶斯和其他贝叶斯算法。2.4支持向量机支持向量机是追求极致的,它必须在所有可行解中找到唯一的最优解。在二维平面上,这个解是唯一的直线,在三维空间里,这个解是一个唯一的面,那么,在N维空间里,这个解是一个唯一的超平面。用于找到该解决方案的样本点称为支持向量。核函数是支持向量机中的大杀器。类似于人们所说的“降维打击”,核函数就是通过增加维度来解决问题。如果在当前的困境中找不到答案,那就在更高的维度去尝试破局。2.5神经网络神经网络引入了生物学中神经元的概念。每个神经元都很简单,有输入和权值,有阈值和输出,但是当用很多神经元来构建多层网络,并且网络是相互连接的时候,问题就变得复杂了。2006年后,神经网络转向深度学习,成就了无数神秘或伟大的商业故事。在神经网络的训练过程中,有一个很有意思的东西,就是局部最优和全局最优。在模型训练中,很容易陷入局部最优的困境而停止寻找最优解,就像我们做的事情很多,只是做好了,却还不够好。为了解决这个问题,人们设计了模拟退火、随机梯度下降等多种训练策略。2.6综合学习综合学习的概念是“好而不同”。对于一个问题,如果单个模型不能始终给出最优解,那么最好将几个好的、不同的子模型集成起来,这样可能会取得优异的性能。三个皮匠,胜过诸葛亮。每个皮匠都有缺点,但各有各的优点,而诸葛亮作为一个单一的模型是极致的,但仍然有局限性。集成学习有两个分支,如果子模型是串行生成的,则为Boost;如果子模型是并行生成的,则为Bagging。Boost强调一点一点往上走。对于上一个子模型的缺陷,通过下一个子模型来弥补。xgBoost和GBDT都是它的代表;Bagging强调一起往上走。样本生成不同的子模型。随机森林是Bagging的一种变体,是这类模型的优秀代表。3.无监督学习监督学习处理标记数据,而无监督学习处理未标记数据。正是因为没有这种绝对的标签,所以才会更加强调数据本身的信息和结构,才会对模型得到的结果的合理性有更丰富、更精细的评价。下面主要介绍几种不同类型的聚类算法。3.1基于原型的聚类强调数据中存在确定性结构,不同类别的结构应该不同。K-means是原型聚类的经典代表。它认为数据中有K个中心点,迭代更新K个中心点的位置,从而将所有样本点划分为K个原型,直到迭代结束。3.2基于密度的聚类,强调如果数据中有一个类别,那么这个类别中的样本点之间有一定的接近度,如果没有,则属于其他类别。DBSCAN是这类算法的代表。它与K-means的区别在于它没有预先假设K个中心,而是先找到一个类别,得到该类别的所有样本点,然后在剩下的数据集中,寻找Nextclass,直到所有样本都找到类别。3.3Hierarchy-basedclustering是从更立体的角度,从下到上对样本点逐层划分。AGENS就是这类算法的代表。在第一层,它把所有的样本点作为一个初始类别,通过计算类别间的距离不断合并它们,从而在最后一层保留指定的点。数的类别。与监督学习相比,无监督学习没有了标签的羁绊,而是变成了一个更加开放的场景,涌现出一大批形形色色的算法。但是,这些不同类型的聚类算法仍然需要讨论一些共同的问题,例如如何衡量聚类结果的性能,分为外部指标和内部指标;比如如何计算样本点之间的距离,根据不同的维度,Min的距离可以分为曼哈顿距离、欧式距离、切比雪夫距离。4.其他算法除了有监督学习和无监督学习,还有一些算法虽然不直接生成具体模型,但在数据探索和模型训练过程中仍然不可或缺,例如降维算法和特征选择。algorithmetc.4.1将降维数据中的方差作为一种信息表达方式。如果重构当前的数据集,用少量的特征提取数据集中包含的大量信息就是降维的概念,其优秀的代表就是PCA。为了实现业务目标,我们从现实世界中收集的数据往往没有得到最佳表达。它们可能是重复的和多余的。通过降维,可以重构这些原始数据,生成更好的数据表达。4.2特征选择机器学习算法是用来做菜的,但是你要选择哪些食材做菜,这本身也是一个问题。要做一份扬州炒饭,肯定不会把厨房里的所有食材都加进去,也不可能一把一把菜和米饭一起炒。如何选择配料是特征选择的领域。在过滤方法中,特征选择和模型训练相互独立,互不干扰;在wrapping方法中,模型性能是特征选择效果的参考,两者相互影响;此外,还有嵌入期权法。数据处理和特征选择的效果往往决定了模型性能的上限。5、实践过程业务实践的过程往往是一个追求“工业化”的过程,要求所做的事情必须符合实际,必须是可实现的、可重用的。在这个过程中,人们往往喜欢用一个固定的框架来规范自己所做的工作。这种框架的缺点是比较死板,限制了一些自由度,但优点是可以有清晰可见的进度条,有利于项目管理和推进。笔者在此分享一个可行的管理框架,已被借鉴。5.1场景分析除了一些紧急的事情,对于工作中大部分不那么紧急的事情,你都可以给自己预留一个场景分析的过程。相当于在做某事之前先跳出这件事情,想一想周围的环境和它的相互关系,以及可能决定它能否成立的各种条件,然后选择一头扎进这个场景。在场景分析过程中,需要对细分的业务场景进行梳理,基于业务目标评估机器学习建模的可行性和复用性。如果业务目标明确,机器学习的方法合适,那就去建模吧。5.2数据准备数据是机器学习项目的原材料,相当于做饭的原料,盖楼房的地基。这并非不重要。在数据准备过程中,要看现实中有多少数据源,它们共同形成了什么样的数据广度;根据业务目标,推出一套要素指标体系,看看哪些是可以实现的;同时,对于最终得到的数据,还需要进行质量分析,如完整性、异常值等,并进行基础的数据预处理工作。5.3模型开发模型开发工作实际上是一个真正意义上的生产过程。首先,你需要了解所选算法的基本原理,以便进行后续的处理工作,比如通过特征工程将源数据转化为模型可以读取的数据;通过成熟的机器学习平台或框架,模型训练和生成,以及在生产前的模型评估和验证。5.4模型应用模型生成后,实际上只是技术意义上的生成,不能用于业务意义上。例如,信用风险模型输出一个概率。如何将这种概率应用到不同的用户群体中,需要特定的商业策略体系。模型的应用过程是模型输出和业务输出之间的桥梁。5.5模型部署通过评估验收后,若模型性能达到预期效果,可进入模型部署和任务调度阶段。但是,模型的部署并不是一劳永逸的事情。投产后还需要跟踪监控,比如模型性能的变化,覆盖人群的稳定性等。如果触发变化条件,则需要优化模型。
