在生活中,我们会依靠经验来处理大量的事情,而形成经验就需要通过大量的实践,总结出事物的重要特征和结果之间的规律。比如,我们经常会去超市,在选购水果时,会通过颜色、形状等特征对水果口味进行预判。那么,我们是怎样具备的这种预判经验呢?正是由于我们在生活中品尝水果时,不断积累与发现的水果的颜色、形状等特征与口味之间的对应规律,例如全红色的苹果会比半青色半红色的要甜一些。
同样,为了能够更好的完成工作,我们也需要不断从实践中总结各种业务规律。例如,在电商平台的用户购物场景中,为了能够增加用户的购买金额,运营人员需要设置为用户推荐的关联购买商品。此时,为了使推荐出的商品得到最大的转化率,需要运营人员分析历史订单数据,从中找出商品关联购买的规律。但是,人工寻找并分析出每一个商品的关联规律,并不是一件容易的事情,需要消耗大量的时间与人力。并且随着商品不断推出新款,市场中商品流行趋势的变化等因素影响,已经形成的规律也需要不断进行及时的调整更新。
那有没有办法,让计算机为我们做类似这样的总结规律的工作呢?这个答案正是机器学习技术。
1、机器学习是什么?
可以将机器学习理解为:让机器从大量的数据中自行寻找潜在规律,并应用此规律来识别或预测新的数据。机器学习所取得的成果称为模型,这个模型类似于传统产品开发出的后台服务程序,在实际使用中也是通过前端程序获取输入数据,经过模型处理后输出结果。只不过,研发这个模型的过程变化了。研发模型并不是通过研发工程师编写而成,也不需要提供严密的业务逻辑与判断流程文档,而是通过训练机器学习模型完成。
在开始训练机器模型前,必须先为模型准备一个唯一的任务目标,因为一个模型只能完成一个任务目标。然后进入训练机器学习模型的三个步骤,如图1。
第一步,根据任务目标确定算法。关于算法方面,最为主要的算法类型有分类算法、回归算法和聚类算法等。不同的算法类型可以解决不同的业务问题,例如:分类算法可以识别或预测分类类型;回归算法可以预测连续型数值,这里所说的连续型数值是指包含若干位小数且取值密集的数值;聚类可以挖掘出不同数据的分组关系,从而可以用于数据分析与知识发现。
算法类型下会很多种有不同的具体算法。例如分类算法下会有K邻近、朴素贝叶斯、随机森林等,不同的算法在完成同一的任务目标的训练和应用时,会体现出不同的特性。这里所说的特性,包括训练与应用需要消耗的计算资源/存储资源、应用的准确性等方面。
第二步,根据算法的学习方式准备好数据。这里所说的学习方式主要有三类:有监督学习、无监督学习和半监督学习。但在讲解学习方式之前,需要先了解几个概念:
● 训练样本是指为训练机器学习模型所需要准备的数据,这里的数据可以是图片、文本或是表格数据等。如图2,是预测芒果口味的训练样本数据。
● 特征就是样本数据的属性,如图2中包含两个特征[颜色、大小]。这里需要强调的是,在机器学习过程中,选择特征是一项非常重要的工作,通常是由在目标业务领域中有较多经验的人参与,并且过程中需要发挥很多智力行为。因为特征选择的好坏直接决定最终模型的好坏。例如上面的案例中,如果增加包装类型的属性,也许就与芒果口味的关系不大了。类似增加这种无关或相关性非常低的特征,不但需要投入更多的计算资源,而且还可能对训练的模型产生干扰。
● 特征值就是样本数据对应特征的参数值。
● 标记可以理解为样本数据的结果,是机器学习模型将要预测的目标数据。如图2,口味便是标记项。
接下来讲解三种学习方式,这三种方式的区别在于训练样本中是否会包含标记值。
有监督学习是指训练样本中的所有样本数据都包含标记值的学习方式。这种方式将学习到特征值与标记值之间的对应规律。在很多情况下,样本数据的标记值是由人工标记的,例如在准备语音识别训练样本时,是由人工标记的文本信息。因此也不难看出,为了得到带有标记值的样本数据,是需要付出大量的人工处理工作。
无监督学习是指训练样本中的所有样本数据都不包含标记值的学习方式。当需要了解一组数据存在的分组关系时,便可以用到无监督学习。
半监督学习是指训练样本中只有部分样本数据包含标记值的学习方式。当没有足够人力标记所有的样本数据,并且稍稍降低对模型预测精度的要求时,便可以使用半监督学习。相比无监督学习会有较高的精度,相比有监督学习可以大幅降低人工标记成本。例如,在拥有上百万篇文章资讯类的网站中进行文章分类标记,便可以采用半监督学习,只需要对训练样本进行少量的人工标注处理,便可以得到较高精度的分类结果。
第三步,使用训练样本数据与算法进行模型的训练。本步骤首先需要由AI工程师进行算法的参数设置。之后进入机器自我训练的过程,该过程可能会需要很长时间,甚至是几天时间。
这个步骤需要注意三点:第一,由于机器学习算法执行过程具有一定的随机性,在保持算法、数据与算法参数不变的情况下,多次运行机器学习训练后得到的结果可能不相同;第二,为了能够训练出较高性能的模型,通常会同时选择多个算法进行训练,并对训练结果进行比较,最终选择最高性能的模型投入使用;第三,机器学习训练得到的模型是个“黑箱”,一般情况下不可能通过调整模型来优化机器学习模型的性能。
到现在为止,我们通过训练得到了一个机器学习模型,该模型可以嵌入到前端程序中用于识别或预测任务。上文说过,不同的算法类型能够解决不同类型的问题,而入门机器学习最多被提及的算法类型有分类算法、回归算法与聚类算法,那么下面就详细讲解这三种算法类型。
2、理解机器学习中的分类、回归与聚类
(1)分类算法
分类算法是一种有监督学习,目标是学习到训练样本数据中多个特征值与标记值的对应规律,训练出模型称为分类器。使用训练好的分类器,输入新数据的全部特征值时,输出识别或预测的结果。这里所说的识别与预测对于算法模型来说并没有实质上的区别,仅是在实际使用分类器时,描述业务目标的方式不同。识别更强调对当前信息的辨认,而预测更强调对尚未发生的事情的推测。
分类算法分为二分类与多分类。二分类的意思是结果会包含正类与反类,比如当前任务是识别出猫的图片,那么猫的图片就为正类,其他图片就为反类。多分类可以完成多种类型的识别,例如在识别新闻文章类型时,多分类分类器可以识别出文章属于经济、娱乐、体育等多种类型中的一个或多个类型。通常情况下可以使用多个二分类分类器的方式实现。这时先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器。例如上面的新闻分类例子中,可以拆解为三个分类器:经济类型分类器、娱乐类型分类器、体育类型分类器,其中每一个分类器都包含一个正类与一个反类。
下面讲解一个二分类在业务中的应用示例。
案例:
一家汽车销售公司,拥有完备的客户历史消费和潜在客户详细资料数据库。现公司准备举办一次汽车促销活动。为了能够提升本次促销活动的销售量,公司准备为潜在客户寄送一份精美的汽车销售材料和一份礼品。但活动经费有限,仅能寄送给1000名潜在客户。
任务目标:选出1000名寄送资料与礼品的潜在客户,并尽可能最大化这些潜在客户的购买转化率。
应用分类算法:
第一步,整理历史数据并确定分类方式。找出类似于本次促销活动的历史促销活动消费数据和对应的客户详细资料,并按照是否购买车辆将结果标记分为正反两类,正类为客户参与相关促销活动后购买了的车辆,反类是没有购买。
第二步,确定训练样本数据的特征。从客户的详细资料中,分析对购车行为可能有影响的客户属性,将这些属性确定为训练样本的特征,本例中的特征有:年龄、性别、有无车、年收入等属性字段。
第三步,确定选用的分类算法。这里可以选择逻辑回归算法、决策树算法或是支持向量机等具体的算法。
第四步,完成模型训练工作。训练完成的模型是一个二分类分类器,分类器输出的结果可以表示成概率形式,即有可能为正类的概率值。如输入某一客户数据,得到0.68的输出结果时,可以认为这个客户购买车辆的可能性有68%的概率。
第五步,找出最有可能转化的1000名潜在客户。此时,可以将所有潜在客户信息输入分类器,将得到每一名潜在客户购买车辆的概率值。然后将概率值从大到小排列,选择前1000名潜在客户,就完成了本次任务的目标。
(2)回归算法
回归算法是一种有监督学习,学习目标与分类算法相同,也将学习到训练样本数据中多个特征值与标记值的对应规律。使用训练好的回归模型可以对已知数据的未知参数进行估算,在业务上可用于对特定参数进行预测,例如:预测电影票房、预测车流量、预测天气污染指数、预测产品销量等。
回归算法与分类算法有一定区别。分类算法可以对数据的某个属性类别进行预判,这个类别是由有限个类型组成。而回归可以对数据的某个参数值进行预测,这个参数值是连续型的数值,因此有无限可能性。例如:分类算法可以确定如[甜、不甜]这样的有限分类,而回归算法可以推算出如天气温度25.325°C等这种连续型数值。
下面讲解一个应用回归算法预测电影票房的示例。
案例:
一家媒体机构希望对一部即将上映的电影进行票房预测。该媒体已经收集过众多电影详细资料与历史的票房数据,数据字段包括:电影名称、题材、内容、导演、演员、编辑、发行方、票房金额等等。
任务目标:收集相关信息并预测即将上映的电影票房数值。
应用回归算法:
第一步,整理历史数据并确定训练样本特征。除了上文内容,还可以使用影评数据、舆情数据等当做特征,但这些特征值需要进行处理后才能投入使用。例如影评数据可以通过自然语言处理技术,将影评内容区分出不同类型,再去应用。
第二步,收集预测影片的相关信息。根据确定的特征项,收集目标影片当前的信息。
第三步,确定选用的回归算法。这里可以选择线性回归、支持向量机回归、相关向量机等具体的算法。
第四步,完成训练工作。训练完成后,便可以使用模型计算出指定影片的票房预测数值。在本例中输出值可以是2830000,代表预测票房为283万元。
(3)聚类算法
聚类算法是一种无监督学习,可以挖掘到样本数据的特征值的潜在相关性,将具有类似特征值的数据进行分组。因此,聚类算法可以被用作知识发现使用,也被称为探索性数据分析方法。该算法常被用于市场研究、用户分组、用户画像等分析过程。
聚类算法与前两类算法不相同,训练模型时的样本数据中并不包含标记,所以就不能具备对特定属性进行预测的能力。
使用聚类算法时,可以划分为指定的分组数目,也可以不确定具体分组数目。如果不确定分组数量时,算法会根据自身特性计算出最合适的分组数目。划分好分组后,使用者可以分析分组中的数据,研究算法划分的具体原因。
下面讲解一个应用聚类算法进行市场研究的示例。
案例:
一家笔记本电脑制造公司,准备研发一款新型笔记本电脑。现在进行初期的市场研究工作,希望能够根据市场中笔记本产品的配置、价格及销售情况,指导新款笔记本的研发与市场定价。
任务目标:挖掘出市场中销售量较高的笔记本产品具有配置特点,并找出不同配置类型的定价情况。
应用聚类算法:
第一步,收集相关数据。从各个电商平台收集相关笔记本电脑的配置信息,如:电脑型号、品牌、CPU性能、显卡性能、内存大小、硬盘大小、屏幕大小、重量、电池容量、定价等。并且筛选出销售量较高的产品。
第二步,确定聚类分析的特征项。在聚类分析中,特征项的数目不是越多越好,对于没有明显差异的变量对聚类分析并没有实质的意义,并且可能会对结果造成干扰。因此,可以选择CPU性能、显卡性能、内存大小、硬盘大小等作为聚类分析的特征项。
第三步,确定选用的聚类算法。这里可以选择K-means、层次聚类算法、SOM聚类算法等具体的算法。
第四步,完成训练工作。当指定聚类算法分为N个分组时,会输出N个分组的情况。当不指定分组数据时,会输出算法认为合适的分组数量与分组情况。
第五步,分析各组数据的相似性特点,并为每类分组命名。这一步需要使用者对每一个分组内的数据进行详细分析,找出其中分组内哪些特征值相类似,最终还要为每一个分组进行命名。本例中,需要分析每组笔记本相似的配置项,然后为每组数据分类命名,最终的命名结果可能为:配置高显卡高的分组命名为游戏本、配置一般显卡低的命名为商务本、配置高显卡一般的命名为家用本等等。
第五步,按照每种分组统计平均价格。到此为止,就完成了对市场中销量较好的笔记本产品的研究,研究结果可以了解市场中畅销的笔记本产品的不同配置分组与平均价格。
3、小结
本篇为读者首先介绍了机器学习技术,从大量的数据中自行寻找潜在规律,并应用此规律来识别或预测新数据的技术。第二,介绍了机器学习模型的训练过程:确定算法、准备数据、训练模型。第三,介绍了机器学习面向业务使用中最重要的三个算法:分类算法、回归算法与聚类算法。
本文通过示例的方法帮助读者入门机器学习算法。但真实案例中肯定不会这么简单,通常情况下特征项都会超过10万个,还需要考虑样本数据对最终模型可能产生的影响等。因此,读者首先要从示例中理解不同的算法能够解决什么样的问题,然后在深入学习机器学习相关的数据预处理、特征工程、算法调参、性能评估等知识。
产品经理需要深入学习相关技术知识么?笔者认为还是需要根据实际应用程度进行一定程度的深入学习,原因有以下三点:第一,不同类型的机器学习算法有不同应用场景与价值,如果不能对算法类型所解决的问题有所认知,那么在解决具体业务问题时的思路将受到限制;第二,同一算法类型下的不同算法,在面向不同数据时会有不同的性能效果,这里所说的性能效果可以简单理解为精确度,如果对算法没有了解,那么在实际项目中可能会影响研发周期;第三,不同机器学习算法对硬件计算能力、数据存储空间有不同要求,并且具体业务也会对算法的计算时间与精度有限制,如果没有相关了解,那么可能会影响研发成本。
目前机器学习技术应用范围非常广泛,最为典型的应用领域有数据分析、商品推荐、文章推荐等。虽然机器学习也可以应用在图像识别与语音识别等领域,但是一直以来并没有得到很好的识别准确率。这其中主要的原因就是,机器学习算法的性能依赖于所提取的特征的准确度。而深度学习尝试从数据中自行挖掘出有效的特征属性,并且已经在图像识别与语音识别领域取得了非常优异的成绩。后续,我们将继续讲解深度学习。