全文共7778字,预计学习时长15分钟
上图白板展示了一系列机器学习项目启动
机器学习覆盖的范围十分广泛。这篇文章将整体描述机器学习适用的典型问题,提供实现机器学习项目雏形的框架。
首先厘清一些定义。
机器学习、人工智能和数据科学区别何在?
这三个主题没有明确的定义,因而有些难以理解。为防止误解,我们将问题简化。读者可以认为本文提到的机器学习就是发现数据中的规律,以理解某些问题或者预测未来事件。
希望读者在阅读以下步骤时能边学边做,检验结果。在实践中学习。
一条机器学习管道可以被分解成三个主要步骤:数据收集、数据建模和模型运用。这三个步骤相互影响、环环相扣。
启动项目时,你可能走入如下循环:收集数据,对其建模,发现收集到的数据质量较差,重新收集数据,建模,运用这一模型,发现它并不管用,重新建模,运用,发现新模型仍然没用,再次收集数据……
等等,模型是什么?运用又是什么?如何收集数据?
好问题。
收集数据的方式取决于问题。下文将展示一些例子,读者也可以看看电子表中的顾客购买记录。
建模就是运用机器学习算法从收集到的数据中寻找知识。
普通算法和机器学习算法的区别是什么?
普通的算法就像菜谱,是把原料转换为美味菜肴的一系列指令。
机器学习的特殊之处在于,原始条件是材料和菜肴,而非指令。机器学习算法研究原料和菜肴,给出转换所需的指令。
机器学习算法多种多样,不同算法解决不同问题的性能不同,但是它们的目标一致,即寻找数据中的模式或者指令集。
运用就是实际应用找到的指令集。运用的形式多种多样,既可以是在网络商店中向顾客推荐商品,也可以是为医疗机构寻找更好的疾病检测方案。
不同项目中每个步骤的具体细节不尽相同,但是原理基本相似。
本文重点讲解数据建模。假设读者已经收集到了数据,正准备用它构建一个机器学习模型。这个过程可以分为以下几步:
机器学习项目可以分为三步,数据收集,建模和模型运用。本文主要关注建模阶段,并假设读者已经拥有数据。
1. 问题定义——要解决的商业问题是什么?如何把它转化为机器学习问题?
2. 数据——既然机器学习是在数据中洞察规律,那么数据是什么类型的?它如何与问题产生关联?数据是结构性的还是无结构的?静态的还是动态的?
3. 模型评估——怎么样才算成功?准确率95%的机器学习模型够好吗?
4. 变量——需要使用哪一部分数据?已知信息如何影响数据使用?
5. 建模——选择哪个模型?如何改进?如何比较不同模型的性能?
6. 实验——还可以做什么尝试?模型的表现符合预期吗?已知信息如何影响其他步骤?
下面深入讨论上述问题。
1. 问题定义——把商业问题改写成机器学习问题
判断能否运用机器学习,第一步是把待解决的商业问题转化为机器学习问题。
有监督学习、无监督学习、迁移学习和强化学习是四种主要的机器学习技术(此处为了行文简单,省略了半监督学习)。其中监督学习、无监督学习和迁移学习最常应用于商业项目。
有监督学习
已知数据和类标的机器学习称为监督学习。机器学习算法旨在研究影响类标的因素。监督发生在训练阶段。如果算法猜错了类标,它会尝试自我修正。
比如,如果试图检测某人是否患有心脏病,可以把100份匿名病历作为数据,是否患有心脏病作为类标。
机器学习算法可以研究病历(输入)以及病人是否患有心脏病(输出),然后判断病历中的哪些指标导致心脏病。
训练好算法之后,就可以把新病历(输入)传给算法,算法将预测患者是否