TIP
本文主要是介绍 机器学习-基础入门知识 。
转载:什么是机器学习?看完就明白了
推荐理由:本文是从产品经理视角 讲解机器学习、深度学习的相关基础知识和概念,通俗易懂,对于入门开发小伙伴来说,相关知识和理论是非常实用的。
# 机器学习基础知识(产品经理视角)
# 一、什么是机器学习
# 1. 机器学习概念
机器学习就是对计算机一部分数据进行学习,然后对另外一些数据进行预测与判断。
机器学习的核心是“使用算法解析数据,从中学习,然后对新数据做出决定或预测”。也就是说计算机利用以获取的数据得出某一模型,然后利用此模型进行预测的一种方法,这个过程跟人的学习过程有些类似,比如人获取一定的经验,可以对新问题进行预测。
我们举个例子,我们都知道支付宝春节的“集五福”活动,我们用手机扫“福”字照片识别福字,这个就是用了机器学习的方法。我们可以为计算机提供“福”字的照片数据,通过算法模型机型训练,系统不断更新学习,然后输入一张新的福字照片,机器自动识别这张照片上是否有福字。
机器学习是一门多领域交叉学科,涉及概率论、统计学、计算机科学等多门学科。机器学习的概念就是通过输入海量训练数据对模型进行训练,使模型掌握数据所蕴含的潜在规律,进而对新输入的数据进行准确的分类或预测。如下图所示:
# 2. 机器学习分类
我们了解了机器学习的概念,通过建立模型进行自我学习,那么学习方法有哪些呢?
# (1)监督学习
监督学习就是训练机器学习的模型的训练样本数据有对应的目标值,监督学习就是通过对数据样本因子和已知的结果建立联系,提取特征值和映射关系,通过已知的结果,已知数据样本不断的学习和训练,对新的数据进行结果的预测。
监督学习通常用在分类和回归。比如手机识别垃圾短信,电子邮箱识别垃圾邮件,都是通过对一些历史短信、历史邮件做垃圾分类的标记,对这些带有标记的数据进行模型训练,然后获取到新的短信或是新的邮件时,进行模型匹配,来识别此邮件是或是不是,这就是监督学习下分类的预测。
再举一个回归的例子,比如我们要预测公司净利润的数据,我们可以通过历史上公司利润(目标值),以及跟利润相关的指标,比如营业收入、资产负债情况、管理费用等数据,通过回归的方式我们回到的一个回归方程,建立公司利润与相关因此的方程式,通过输入因子数据,来预测公司利润。
监督学习难点是获取具有目标值的样本数据成本较高,成本高的原因在于这些训练集的要依赖人工标注工作。
# (2)无监督学习
无监督学习跟监督学习的区别就是选取的样本数据无需有目标值,我们无需分析这些数据对某些结果的影响,只是分析这些数据内在的规律。
无监督学习常用在聚类分析上面。比如客户分群、因子降维等。比如RFM模型的使用,通过客户的销售行为(消费次数、最近消费时间、消费金额)指标,来对客户数据进行聚类:
重要价值客户:最近消费时间近、消费频次和消费金额都很高;重要保持客户:最近消费时间较远,但消费频次和金额都很高,说明这是个一段时间没来的忠诚客户,我们需要主动和他保持联系;重要发展客户:最近消费时间较近、消费金额高,但频次不高,忠诚度不高,很有潜力的用户,必须重点发展;重要挽留客户:最近消费时间较远、消费频次不高,但消费金额高的用户,可能是将要流失或者已经要流失的用户,应当基于挽留措施。除此之外,无监督学习也适用于降维,无监督学习比监督学习好处是数据不需要人工打标记,数据获取成本低。
# (3)半监督学习
半监督学习是监督学习和无监督学习相互结合的一种学习方法,通过半监督学习的方法可以实现分类、回归、聚类的结合使用。
半监督分类:是在无类标签的样例的帮助下训练有类标签的样本,获得比只用有类标签的样本训练得到更优的分类;半监督回归:在无输出的输入的帮助下训练有输出的输入,获得比只用有输出的输入训练得到的回归器性能更好的回归;半监督聚类:在有类标签的样本的信息帮助下获得比只用无类标签的样例得到的结果更好的簇,提高聚类方法的精度;半监督降维:在有类标签的样本的信息帮助下找到高维输入数据的低维结构,同时保持原始高维数据和成对约束的结构不变。半监督学习是最近比较流行的方法。
# (4)强化学习
强化学习是一种比较复杂的机器学习方法,强调系统与外界不断的交互反馈,它主要是针对流程中不断需要推理的场景,比如无人汽车驾驶,它更多关注性能。它是机器学习中的热点学习方法。
# 3. 关于深度学习
深度学习是目前关注度很高的一类算法,深度学习(DeepLearning,DL)属于机器学习的子类。它的灵感来源于人类大脑的工作方式,是利用深度神经网络来解决特征表达的一种学习过程。
人工智能、机器学习、深度学习关系如下图所示:
深度学习归根结底也是机器学习,不过它不同于监督学习、半监督学习、无监督学习、强化学习的这种分类方法,它是另一种分类方法,基于算法神经网络的深度,可以分成浅层学习算法和深度学习算法。
浅层学习算法主要是对一些结构化数据、半结构化数据一些场景的预测,深度学习主要解决复杂的场景,比如图像、文本、语音识别与分析等。
# 4. 了解机器学习概念的意义
本节主要在于理清一些机器学习基本概念,简单介绍一下应用场景,重点在于理解机器学习本质上还是对于数据的的一种处理方式,数据的使用方式,通过数据解析其中的规律,来预测未来数据结果。
# 二、机器学习的应用
我们在说机器学习分类的时候,简单介绍了一下不同机器学习方法,主要是解决是什么问题,在本节中具体介绍一些常用的应用场景,主要说明这些应用到底怎么用,不对其中的算法以及原理做深入的介绍。
# 1. 分类和聚类
分类和聚类机器学习最常用的应用场景,分类和聚类都是对数据的分组,我们刚接触的时候,很容易混淆这两个应用的概念,觉得分类就是聚类,其实他们有很多的不同。
分类是我们知道有哪些组,然后对数据进行判断,判断这些数据到底是预先知道的那些组。举个很简单的例子,比如我们在军训排队时要求男生一组,女生一组,这就是一种分类,我们提前知道要分那些组,然后通过一种算法对输入的数据判定,来分类到已知的类别下,这个就是分类。
分类从数学函数角度来说:分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y中。就是我们根据已知的一些样本(包括属性与类标号)来得到分类模型(即得到样本属性与类标号之间的函数),然后通过此目标函数来对只包含属性的样本数据进行分类。
所以分类属于监督学习方法,比如图像识别,比如我们从一些图像中识别是猫还是狗的照片等,它解决的是“是或否”的问题,就是将需要被分析的数据跟已知的类别结果做判断,看这些数据到底是那个类别数据。
在分类中,对于目标数据中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来。但是聚类解决的就是在不知道类的情况下,如何把数据参数做一个划分。
聚类是实现不知道这批数据有哪些类别或标签,然后通过算法的选择,分析数据参数的特征值,然后进行机器的数据划分,把相似的数据聚到一起,所以它是无监督学习;
比如RFM模型中我们通过客户销售数据,通过这些数据对客户分群,然后通过聚类的方法,将相似度高的数据聚类到一起,通过分析出来的数据我们可以对数据特性在定义标签,它解决的是相似度的问题,将相似度高的聚集到一起。
我们举个例子来总结一下分类和聚类都是什么用途:
比如我们有1000张照片,假设我们之前已经定义好猫、狗的照片,做了训练,如果从这1000张照片中区分出来猫、狗的照片,那么这就是分类;
假设我们没做过猫狗的照片,我们只是对1000张照片的数据做一个归类,看看那些照片相似度高,分类完成后,在通过相似度比较高的几类,我们再定义这些类别的是猫、狗或是其他图片什么的。
# 2. 回归
回归在统计学角度,指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。
在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。
回归从数学角度来看是一种方程式,是一种解题方法,一种通过一些函数因子的关系的一种学习方法。比如以下简单的一个函数:
回归从算法角度来说,它是对有监督的连续数据结果的预测,比如通过一个人过去年份工资收入相关的影响参数,建立回归模型,然后通过相关的参数的变更来预测他未来工资收入。
当然通过建立回归模型,再结合数学上对方程式的解析,我们也可以倒退出来为了一个预定的结果我们需要对那些参数值做优化。回归最终要的是得到相关的参数和参数的特征值,因此我们通常在做回归分析时通常会做目标参数相关性分析。
只要我们有足够的数据,都可以做一些回归分析帮助我们做预测与决策。比如我们上线了一些功能,可以通过点击率、打开率、分享情况等等跟产生的业务结果做回归分析,如果建立了函数关系,我们就可以预测一些结果,再比如我们通过历史上年龄、体重、血压指标、血脂指标、是否抽烟、是否喝酒等指标跟某种疾病做回归分析,可以预测某一名人员是否有此疾病的风险等。
所以回归的主要目的在于对连续数据产生的规律之后对新数据可能产生某种结果的预测。
# 3. 降维
降维就是去除冗余的特征,降低特征参数的维度降低,用更加少的维度来表示特征,比如图像识别中将一幅图像转换成高纬度的数据集合,因为高纬度数据处理复杂度很高,我们就需要进行降维处理,降低了计算机处理高维度的图像数据的复杂性,减少了冗余数据造成的识别误差,提高识别经度。
我们从统计学角度在理解一下机器学习的这四大应用,如果我们有一批样本,希望能够预测是都属于某相关属性,如果样本值是离散的,我们就可以使用分类的方法,如果是连续的我们就可以使用回归的方法,如果我们这批样本没有对应的属性,而是想挖掘其中的相关性,那么就用聚类的方式。
如果我们涉及到的参数很多,维度很多,我们就可以用降维的方法去寻找更精准的参数,不管是做分类、聚类还是回归,都能达到更精确的判断和预测。
除此之外,语音识别、图像识别、文本识别、语义分析等都是通过机器学习基本方法的综合利用。
# 4. 不同应用场景算法举例
下图中针对不同应用场景做的算法举例,大家感兴趣可自行了解各个算法的原理。
# 5. 理解机器学习应用对产品经理的意义
理解机器学习应用对产品经理非常有意义:
一方面产品经理需要理解机器学习到底能解决什么问题,面对我们的业务需求,是否可以通过机器学习的方式去满足我们的需求;同时理解了机器学习的应用也就是理解AI为什么中台作用这么明显。
比如我们在面临的人群划分、或是商品标签划分,可以考虑一下聚类方法;在面对APP功能点击预测、分享预测我们可以考虑一下分类方法;面对商品购买预测我们可以考虑回归的方法等;
另一方面通过机器学习应用我们可以看到数据的重要性,要求我们产品经理能更好的利用数据,数据可以通过一些算法来解决一些预测、判断的问题。
# 三、机器学习流程
人们在使用机器学习的时候,把很大的精力放在了选择算法、优化算法上面,其实算法的选择只是机器学习其中的一个步骤,但是机器学习其他的步骤也是很关键的,尤其是作为产品经理,了解这个机器学习流程也是至关重要的。
机器学习的流程本质上就是数据准备、数据分析、数据处理、结果反馈的过程,按照这个思路,我们可以把机器学习分为如下步骤:业务场景分析、数据处理、特征工程、算法模型训练、应用服务。下面具体介绍一下这几个步骤。
# 1. 业务场景分析
业务场景分析就是将我们的业务需求、使用场景转换成机器学习的需求语言,然后分析数据,选择算法的过程。这个是机器学习的准备阶段,主要包括以下3点:业务抽象、数据准备、选择算法。
# (1)业务抽象
业务抽象说白了就是针对于业务需求,抽象成机器学习的应用场景的问题,我们上节中讲了机器学习的分类、聚类、回归、降维的应用场景,其实业务抽象就是把我们遇到的业务需求抽象成上述应用场景。
比如我们要做产品推荐的需求,我们要把指定的产品推荐给相应的用户,也就是如何精准营销,给用户推荐是合适的产品。
我们抽象成机器学习的语言就是一个产品A是否要推荐给用户a,这就是一个是或者否的问题,也就是一个分类应用场景。这就是业务抽象,就是把业务需求抽象成机器学习的应用场景。
# (2)数据准备
机器学习的基础就是数据,没有数据是无法训练模型,也就是机器是无法学习的,所以数据准备就是识别、收集、加工数据阶段。
通过图谱我们了解到,我们能获取到的数据有机构化数据、半结构化数据、非结构化数据,机器学习同样的是这些数据,这些数据类型在知识图谱有讲解,不在赘述,这里主要讲一下作为产品经理进行数据准备时需要考虑的因素。
1)数据字段的考虑
关于数据字段考虑就是说我们在准备数据时,无论是结构化数据、非结构化数据、半结构话数据,我们都要抽象成一个二维表,二维表表头就是这些数据的表示或是数据的名称,这个就是数据字段。
对于数据字段涉及到两方面:
一方面就是数据字段范围,也就是我们在做业务需求的时候需要哪些字段作为机器学习参数,这跟我们做后台产品经理类似。
做后台涉及需要进行数据项字段的设计,这些字段有业务字段、逻辑字段、系统字段等,对于机器学习字段考虑要比后台设计的字段考虑更深一些,他不仅仅是后台产生的这写数据,还包括一些过程数据、结果数据、埋点数据、转换数据(定性转定量)等,具体我们可以参考一些统计学的方法,去收集、制定机器学习的字段。
一方面就是字段类型的判定,比如到底是字符串型的还是数值型的。
我们做回归分析,需要的必须是数值型的,因为回归是连续变量的分析,假如你要分析性别这个字段,那么必须把他的字段值定义成数值型的,例如0和1,这样才算是连续变量,才能做回归分析,假如要做分类,我们就可以把性别的字段设定成字符串,例如男和女。
2)数据的考虑
关于数据的考虑就是你能获取到的数据案例,就是二维表中除了表头数据字段名称剩下的真实数据了,对于数据考虑,作为产品经理我们要考虑两点:
一个是数据量,在机器学习中,数据需要一定的量,希望可以尽可能的大;
一个是数据的缺省,这个是数据质量问题,要求我们尽可能完善的收集数据,如果数据缺失比较多或者数据乱码比较多的字段,可以不参与模型测算,否则会影响结果,
# (3)算法选择
算法选择确定了机器学习的需求、确定了数据项,选择何种算法模型的问题,此阶段由算法工程师主导的,我们知道机器学习有很多的算法,所以算法选择也具有多样性;
同样一个问题可以多种算法解决,随着计算机科学的发展,为了也会有更多的算法支持,同时同一种算法也可以通过调参进行优化。
# 2. 数据处理
数据处理就是数据的选择和清洗的过程,数据准备好后,确定了算法,确定了需求,就需要对数据进行处理,数据处理的目的就是尽可能降低对算法的干扰。在数据处理中我们会经常用到“去噪”和“归一”。
去噪就是去除数中干扰的数据,也就是说你的数据案例中存在特别情况的,或者是不正常的数据,一方面要求我们产品经理拿到的数据是反映真实世界的数据,一方面我们通过算法可以识别干扰的数据,比如对于数据有正态分布效果的我们可以通过3标准差去噪,因此去噪的目的就是去除掉数据中异常的数据。
归一就是将数据进行简化,一般将数据简化在【0,1】,数据归一化主要是帮助算法能够很好的寻找最优解。
一方面解决的是对于一个数据字段可有多重标示方式,然后数据拿到的多重标示方式的时候,比如一群羊有30只羊,然后你那到的数据有以群为单位的,有以只为单位的,那么着数据必然有误差;
再比如形容一个小时,我们可以以小时单位,也可以以分钟为单位,也可以以秒单位,因为数据分析是不分析单位的,就需要归一化处理,这也就是归一化解决的第一个问题“去量纲”这需要产品经理在获取数据的时候,统一数据计量单位;
归一化另外一个问题就是解决算法“收敛”的问题,这个需要算法去实现,比如你要分析X和Y,X的数据范围是【0-10】,Y的数据范围是【0-100000】算法在处理时考虑到数据收敛问题,会对数据标准化处理。
当然在数据处理中有很多手段,并且有很多算法协助去处理,数据梳理的目的就是按照业务场景将数据优化成对算法模型干扰最小的阶段。
# 3. 特征工程
在机器学习中有这么一种说法,数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限,数据和特征是算法模型的基础,所谓特征工程就是对处理完成后的数据进行特征提取,转换成算法模型可以使用的数据。
特征功能的目的有以下几个方面:
从数据抽取出对预测结果有用的数据;从数据中构建衍生出对结果有用的信息;寻找更好的特征提高算法高效性;寻找更好的特征可以选择简单的模型就能出具更好的拟合效果。一般情况下在数据处理过程中就可以进行特征工程的工作,比如归一化处理,我们可能在进行特征发现的时候,还需要进一步进行数据处理。
什么是特征?特征就是在原始数据可测量的属性,可测量可以理解成这个数据指标可以被统计,可以被运算或是计算,比如时间戳数据,我们通常获取的数据就是年月日时分秒的结构,比如2019-01-09;12:30:45,这样一个数据是无法被机器学习所运算的,所以需要对这个数进行特征转换,转换成一些数值的表达式,以便于算法理解。
特征工程处理过程包括特征的抽象、特征的评估与选择(同一数据可以抽象成多种特征,对多种特征进行评估和选择)、特征的衍生(特征与特征之间进行组合使用)。特征工程是特征业务定义、算法、数据处理综合的应用。
作为产品经理,我们重点说明一下特征的抽象。特征的抽象就是对原数据转换成特征数据的过程。
我们举几个例子来说明一下:比如你收集到的数据值字符型的数据,比如你收集到的数据是“是和否”型的数据,这种数据机器是无法运算的,那么我们可以转换成“0和1”这样讲数据进行特征抽象后就可以机器学习了。
特征工程是机器学习很重要的一环,特征的好坏直接影响了机器学些的结果,对于同一组数据,我们可能用了相同的算法,但是因为特征选择的不同,我们最终得出的质量也会有很大的差别。所以对特征工程有兴趣的可以参考相关其他相关更详细的资料。
# 4. 模型训练与应用服务
模型训练就是经历了数据准备、数据处理、特征工程之后,根据选择好的算法,进行训练与评估,通过算法训练得到算法模型,通过新数据测试完成模型质量的评估,这款主要工作在算法工程师这里,产品经理重点关注模型在新数据不断注入的情况下是可以反复训练的。
应用服务就是说模型训练好了,如何输出的问题,以及如何快速训练模型、配置模型相关参数的问题,对于模型的应用可以通过API的方式供应用层调用,应用层也可以通过配置页面来配置模型相关参数,比如置信度等。
# 5. 了解机器学习流程对产品经理意义
通过简单直白的介绍机器学习流程,对我们有以下意义:
机器学习过程,不是一个简单的过程,不是说定好了需求,直接交给算法工程师就可以了,要把握机器学习业务场景抽象;要对原始数据质量、数量有很好的把控;对特征的抽象需要有深入的了解;机器学习的基础是数据、以及数据特征的转换,需要我们对处理的处理过程有更深层次的了解与掌握,需要多学一些数据、统计学、计量学相关知识;机器学习的需求也不仅仅是通过原型、文档就能解决的,需要产品经理与工程师深度的合作,参与到机器学习的过程中。本文由 @罗飞 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自 Unsplash ,基于 CC0 协议
# 参考文章
- https://baijiahao.baidu.com/s?id=1648513303243551939&wfr=spider&for=pc