MarTechApe

View Original

实例教学:如何一步一步建立AI机器人

开始我对气象学一无所知,虽然直到现在我其实也什么都不知道。但因为人工智能的力量使我能够几乎接近专业的天气预报水准来预测天气,因而你可以想象人工智能在营销和广告领域会是多么有用。

数据科学最令人兴奋的地方是它可以基于过去预测未来的能力。这使其成为了营销领域中一个非常强大的工具。从预测客户流失、发现客户参与的可能性,到定义客户终身价值和客户细分——所有这些都可以通过人工智能来解决。

在本文中,我将不使用任何术语,以一种通俗易懂的方式带你经历一个数据科学任务,就仿佛是在对我那只会用Facebook和亚马逊的老妈解释一样。我会建立一个人工智能模型来预测天气。到最后,相信你对人工智能的了解将会大大提升,并可以将这些步骤应用到实际项目中!

Step 0: 定义任务

我想要解决一个我不熟悉的问题,以此来证明一个数据科学家不需要具备专家知识也可以成功解决一个问题。天气预测对我来说是一个很好的选择,因为我曾经只在市场营销和金融领域的数据科学部门工作过一段时间,所以我对天气预测一无所知。我相信大部分正在阅读此文章的人应该也跟我差不多。

首先设定一个具体的目标是非常重要的,否则你很难选择正确的工具和方法,并且在执行任务的过程中很容易失去重点,迷失方向。所以,最开始让我们先陈述清楚这个天气预测任务的目标:

依据过去10天的历史数据,我们希望能够预测接下来24小时内的气温。理想情况下,80%的时间里,我们预测的温度跟实际温度的差别应该在1摄氏度以内。

See this product in the original post

▲积累数据分析实战经历,戳图了解《营销组合建模训练营》详情

Step 1: 何谓数据以及如何获取数据?

数据就是一个有着很多数字的大型文本文件。任何Excel或Google Sheet都可以被保存为文本文件(文件名以.csv结尾)。该文件中的每一行对应电子表格中的一行,列与列之间则用逗号分隔。CSV文件中的数据就是数据科学家日常的精神食粮。

电子表格形式(左),CSV形式(右)

Source:Medium

获取数据可以是一个很复杂的过程,所花费时间从几分钟到几个月不等。有时候有现存的数据,数据科学家所要做的就是登陆Google Drive把它们下载下来;有时,数据科学家不得不花一些时间自己去收集数据。

你如何收集数据?针对历史的天气数据,我可以选择:

  • 原始社会的方式:在室外设置一个温度计,每小时读取一次气温,然后记录在电子表格中。

  • 21世纪的新方式:去某个显示世界上某地当前天气的网站(比如国家气象局网),每小时读取一次上面记录的网站,并将其保存在电子表格中。

显然,如果你有一些编程经验(比如Python),可以自动保存网站上更新的每小时气温,甚至记录下其他的天气参数(比如降水量或湿度)。

幸运的是,有人已经为我们做了这件事——把温度计放在室外,并把数据保存到电子表格中,也就是来自德国耶拿Max-Planck研究所的研究人员。每隔十分钟,他们就会在自己的网站上实时分享楼顶的天气情况,包括温度、湿度、风向,甚至还有一张通过网络摄像头显示的图像。他们还允许他人下载其历史数据,简直就是为创建我们的天气预测器量身准备。

网站上的数据

Source:Medium

所以这一步,我所要做的就是去他们的网站下载两个CSV文件。

See this product in the original post

▲积累数据分析实战经历,戳图了解《营销组合建模训练营》详情

Step 2: 探索数据

玩转数据是更好掌握数据的一种有效做法。这能让数据科学家在确定搭建人工智能模型的架构时做出更好的决策。

然而,在查看数据之前,我会将整个数据集分为两部分:一部分是在构建模型时要使用的,另一部分则是直到所有模型都准备好要进行最后的评估时才会使用。否则我们很容易创造出一些虽然与历史数据拟合良好、但却无法准确预测未来的模型。为了防止这种情况出现,我需要先保留一部分数据不被用于模型构建,之后再用来测试我们构建出的模型是否具备预测能力。从这一点来讲,我们将数据分成:

  • 历史数据集——从2009年1月1日到2019年1月1日的十年数据。我会对这部分数据进行我所有的分析和训练。

  • 未来数据集——从2019年1月1日至9月30日的数据。我把这部分数据保存在一个单独的地方,以避免任何对预测未来可能造成的偏差。并且我只会使用这部分数据一次,来最后评估我的人工智能模型。

从技术上来讲,就相当于我假装在2019年1月1日开始使用该预测模型预测天气,用接下来的9个月来评估其预测准确度。

对于工具的选择,我喜欢使用一个针对数据科学家的名为Google Colab的免费平台。对于数据科学家来说,它就相当于Excel。它允许用户在同一个文件中编写文本和执行代码。感谢Google可以让人们在一个速度非常快的平台上运行代码,并且不收取任何费用。

上图是一个Google Colab界面的例子,我之后的工作都会在这里进行。

Source:Medium

首先,我想看看2009年至2019年期间的每日平均气温。我把它展现在了如下的这幅图中:

你可以在上图中看到四季的气温变化规律吗?

Source:Medium

然后我想算出在冬季,每天的温度波动是多少。我选择了2018年1月的第一周,把温度展现在了下图中:

图中可以看出昼夜温度变化

Source:Medium

那么夏季的气温波动模式会不会有所不同呢?从下图显示的2018年7月第一周的温度波动来看,是的。

Source:Medium

起初我只是绘制了一下空气温度的波动图,但这份数据集包含的信息远比温度多得多!其中还有其他14项解读:包括:

  • 大气压

  • 露点温度(空气中水汽含量达到饱和的气温,低于此温度时水汽会从空气中析出凝成水珠)

  • 相对湿度

  • 一氧化碳含量

  • 日晒强度

这些看起来好像都会影响空气温度,所以在建立我的预测器时,我要把这些数据都考虑进来。

See this product in the original post

▲积累数据分析实战经历,戳图了解《营销组合建模训练营》详情

Step3: 选择正确的算法

机器学习、人工智能和神经网络,这些buzz word本质上指的都是同一件事——一个模型。接下来的几点将是我为你们准备的机器学习入门课程。(机器学习是用来构建人工智能的一种工具)

  1. 将模型想成一个聊天机器人。当你向它发送一个问题,它会返回一个理想情况下的有用答案。

  2. 通过进行数千次这样输入提示和得到我们想要的回答,一个模型就被创建出来了。这个过程就叫做训练

  3. 我们有数百种训练模型的方法,当中的每一种都被称为是一种算法。

  4. 没有万能的算法。一个算法可以很好地处理某些事情,但面对其他问题时就会毫无用处。作为一名数据科学家,你的任务是通过反复尝试和不断试错来找到一种能为特定问题提供最佳结果的算法。

所以哪种算法对天气数据的预测最有效呢?这一点直到你亲自建立和测试了一些算法以后才会知道。实际上,对这种时间序列形式的数据,表现最好的算法是来自一个统称为神经网络的算法大类。它们之所以被称为“神经”,是因为它们的发明者受到了动物大脑神经元之间联系的启发。但你不用觉得这真的就跟“神经”、生物学之类的概念有很大的关系,这位发明者同样也可以决定称它们为“热狗网络”。

Source:CSDN

Source:Wikipedia

我将尝试属于神经网络范畴的六种算法。其中一种是一个简单的densely connected nework,我并不对其效果抱有很大的期望。不过它可以作为我训练其他算法的基准,包括被称为递归神经网络的不同形状和形式的算法。它们可以很好地处理文本数据和时间序列数据。作为一名数据科学家,你需要从自己过往的经验和学识中知道应该先尝试哪些类型的算法。

See this product in the original post

▲积累数据分析实战经历,戳图了解《营销组合建模训练营》详情

Step 4: 准备数据

这一步所花的时间同样可以从几分钟到几天不等。在这个阶段,作为一名数据科学家,你需要决定如何处理各种异常或缺失数据。例如,在这个案例中,我该如何处理因为断电而导致温度计故障一小时的情况呢(该例子只是我虚构的)?我应该把一整天的数据都剔除,还是仅仅去掉这一小时的?没有绝对正确和错误的方式,而是需要花一些时间去找出最合理的方法。

幸运的是,来自Max Planck研究所的温度数据都记录得很好,因而不需要花费我很多时间做准备工作。

最后,我对数据进行了缩放和标准化。因为如果每个变量是在不同的数值范围,那么就会导致神经算法最终的表现很差,比如压力值在900左右,而空气温度在10。

天气数据集(缩放和标准化前)

Source:Medium

数据科学家指出,解决数据量级不同的问题的最佳方法(即将数据进行标准化的方式)是得出每列数据的平均值和标准差,然后把该列中的每一个数值先减去平均值,再将得到的值除以同一列的标准差。这样做以后,你就可以看到所有的值都在一个差不多的数值范围内:

天气数据集(缩放和标准化后)

Source:Medium

Step 5: 找一个最简单的预测方式

许多刚开始从事数据研究的科学家会跳过这一步,直接就开始建模。在进一步讨论之前,我将考虑一种简单、幼稚的方法来解决预测问题。一个好的算法至少要和我这个幼稚的解决方案一样直接明了才行。

这是什么意思呢?当我在观察这周的温度变化图时,我注意到当中有很多重复循环的模式。这意味着现在的温度跟24小时之后的温度可能很接近。换句话说,明天早上8点的温度可能跟今天早上8点的温度差不多。如果我们这样预测气温的会怎么样呢?

我运行了一个快速测试,发现这个简单的解决方案实际上表现得还挺好。平均来说,它只比实际温度低了2.67摄氏度。这个结果令人印象深刻,也为人工智能的预测结果设置了高标准。

See this product in the original post

▲积累数据分析实战经历,戳图了解《营销组合建模训练营》详情

Step 6: 建立和训练模型

现在就到了创建人工智能的一步了。我们将自动把数据输入神经网络算法组当中的一些算法,这些算法将返回给我们用以预测未来气温的多个模型。

首先,我编写了算法的代码。写代码这件事可能听起来有点吓人,但其实只是大量的复制粘贴工作,就像搭乐高积木一样。

我想尝试一种新方法,叫做GRU。它是在2014年被发现的,为创建适合的时间序列机器学习模型提供了一种快速的替代方法。

使用GRU的算法原理图,看起来就像搭乐高积木一样

Source:Medium

在编写好我所选择的五种算法的代码后,剩下的就是按回车键,然后等待几个小时。是的,让电脑运行这些代码进行计算需要几个小时。

根据我使用的数据量,每次运行算法大约需要5分钟。为了建立更好的模型,对相同的数据进行多次算法运行是一种常见的做法。我选择运行10次,超过10次以后的每一次额外运行对提高模型的准确度就不再有太大的影响了。业内将达到这一点以后称为过度适应或过度训练

整个训练耗时接近5个小时(5种算法*10次运行*每次5分钟)。

有些算法运行起来比其他一些更快。我们可以通过绘制每次运行后模型的精确度来评估这个模型。我想看到的是一条最终趋于水平的直线,这意味着之后无论我运行多长时间、多少次,该算法都不会再变得更好了。最终,我会剔除那些未能在给定时间内给出令人满意的结果的模型。

左图是一个运行10次后仍然需要改进的算法,需要剔除;右图是一个在第2次运行后就达到了最大精度的算法,这是一个不错的模型。

Source:Medium

在这个例子中,给定时间内只有一个算法没有过度训练,所以我决定放弃它,用剩下的四种算法进行下一步。

Step 7: 超参数优化 hyperparameter optimization

我想对前面一步得出的模型进行过度拟合,也就是达到一个算法不能再改进的点。然而,令我没想到的是,过度拟合的模型在预测未来气温方面做得非常差!所以基于这些图,针对每个算法,我选择了一个在模型刚开始发生过度拟合的运行次数。

经过这一点,我得到了一些很好的模型。我做了一个小测试,结果是这些模型每一个都比我最初那个最简单幼稚的方法要表现得更准确。这算是一次成功的建模,但仍旧有很大的改进空间。

每一个机器学习算法都有一组称为超参数的东西。你不需要去了解它们具体是什么,只需要知道这样一个事实——改变它们可以使算法执行得更好,或更差。例如,在神经网络算法组里,有许多算法都有一个超参数,称为dropout。它可以取0.0到0.5之间的任意值。一开始,我随便选了一个0.2的值,但我绝不认为这是一个最优值。

Source:Towards Data Science

在超参数优化过程中,我通过试错方法来寻找一组超参数,使得一个算法产生了一个最精准的模型。我对剩下几种算法都重复了这一过程。

这显然是最耗时的一步。对算法进行试错意味着你要猜试许多超参数来构建一大堆模型,然后在试了一段时间后,选择到目前为止见到的最好的模型。

在这一步,我决定在每个算法上花费最多4小时来寻找最优超参数。我启动了机器学习,然后就去做其他事情了。

See this product in the original post

▲积累数据分析实战经历,戳图了解《营销组合建模训练营》详情

Step 8: 预测天气

第二天早上,超参数优化已经完成,现在就是对我的人工智能进行最终评选的时间。我将使用从2019年1月1日到9月30日的这部分测试数据集来评估这些模型究竟是好是坏。

但在那之前,我必须做的最后一件事是创建一个模型的集合。我决定对所有四种算法运行时间密集型的优化,因为我想要使用这个集合中的所有算法。

群体的智慧是强大的,尤其是在人工智能领域。这已经被一次又一次地证明,如果你明智地组合几个人工智能模型的输出结果,它们的联合预测将比任何单一模型的预测结果更准确。是不是很有趣?

Source:SAS Blogs

组合模型的创建可以通过对预测结果进行一个加权平均,尽管找出适合的权重这一过程非常的反智——就是通过反复试验。我建立了一个机制来尝试了数百种不同的权重组合,并选择了其中表现最准确的一种。

一旦这一步完成,我就结束了整个预测天气人工智能模型的创建。现在是时候在隐藏数据上测试人工智能了。我可以更进一步来评估我的天气预报器可以带来多少价值。

如果我在2019年1月1日建立了这样一个模型,在接下来的9个月里,每小时预测一次气温,平均下来,我只比实际温度差了2.48摄氏度。其中90%的预测都与实际温度相差在5度以内。

总结

尽管这些数字没有达到我之前设定的目标,但它们依旧令人兴奋。值得记住的是,这是一种基于过去来预测天气的纯粹的人工智能。它没有其他任何关于天气系统如何运作的知识,没有使用卫星图像,仅仅只是一大堆的数字。在数据科学多年研究的帮助下,我把像德国耶拿的历史天气一样难以消化的东西变成了一个像天气预报系统这样美好的东西。而且只花了一个周末的时间。

显然,这个模型还可以变得更好。关于如何继续改进它,使它变得更通用,我还有很多想法。如果我要花接下来一个月的时间,我一定会学更多关于气象学的知识。我可以从更多地方来获得更多数据,比如整合来自卫星系统的数据。我也可以在更大型的电脑上尝试更复杂的算法。

Source:Quotefancy

事实上,作为一个数据科学家,他们始终会想在电脑上不断改进自己的模型。

天气预报只是一个干巴巴的例子,来展现人工智能这个神奇的工具。这是一次对数据科学能力如何的测试。看到现在,你对人工智能的了解已经比营销领域的很多非数据科学家都要多很多了。

预测客户流失、探索客户参与度、定义客户终身价值、进行客户细分——所有这些问题都可以用人工智能,以更高效、更经济的方式解决。

好的项目可以帮助你学习到必要的概念并敲开理想工作的大门。如果你也想从事数据科学的工作,成为一名优秀的数据科学家或数据分析师,但目前缺乏十分相关的工作和项目经历,不妨来报名MarTechApe的宝藏级数据分析实操项目《营销组合建模训练营》吧!

该项目历经7期学员认证,帮助众多学员敲开了全美知名企业数据分析和商业分析工作的理想大门。

整个项目里会手把手带你经历全套的企业内营销分析流程,从数据源概况、数据处理与可视化,到统计建模、深度诊断。同时配备SQL面试辅导和简历指导。每位学员将有一套亲自打磨的Data成果作品和一套Model成果作品,以及一段完整的可以写在简历中为客户解决实际问题的经历。

现在项目第8期已开始招生,如果你希望通过这样一个项目在此番春招季中加速斩获理想Offer,就快来报名我们的《营销组合建模训练营》Marketing Mix Modeling Bootcamp吧!以下是项目具体介绍:

从2018年起,我们已举办了共8期《营销组合建模训练营》,往期的学生们拿到了全美顶级的面试机会以及全职工作OFFER,组成了训练营的荣誉之墙:

Marketing Mix Modeling Bootcamp往期学员拿到的面试机会以及全职工作OFFER包括Google、Facebook、Twitter、LinkedIn、Uber、Wayfair、Walmart、Accenture、Pepsi、Bloomberg、Square、Deloitte、Salesforce、AT&T、JP Morgan、Mediamath、GroupM等互联网科技公司、咨询公司、广告传媒公司、金融机构。

1.营销组合模型训练营是什么?

营销组合模型训练营(Marketing Mix Modeling Bootcamp)是MarTechApe的宝藏项目,由全球最大广告集团 WPP美国办公室的数据总监以及营销分析经理共同授课。在训练营中,你将学习在真实商业情境中如何用营销组合模型解决广告营销最核心的问题——科学合理地评估不同广告对品牌和销售的影响,以统计模型的结果来科学优化广告预算。

训练营的学员收获了:

  • 真正意义上的“用数据和模型解决营销中最重要的问题”的经历。

  • 熟练掌握SQL、R、Tableau等时下最流行的数据处理语言,并用这些技能解决实际问题。

  • 大大提高Media/Advertising Industry的商业意识,熟悉不同媒介渠道的广告活动对不同商业指标的不同回报率(ROI)与有效性(Effectiveness),学会用“营销效果”的视角看待营销活动,理解各大公司市场营销部门、消费者洞察部门的痛点。

  • 跳出学校作业的框架,上手真正商业情境中、实际工作中的实战案例。让校园与实际工作无缝衔接。将学到的Analytics思维方式泛化到其他应用场景,面对Case Study建立系统性解决思路。

  • 提升项目演示Presentation技能,学会如何从原始数据中挖掘具有意义的故事。为客户解决实际问题,提高Business KPI。

  • 完成项目后,辅导老师将帮助你利用这一个惊艳的项目背景打造最引人注目的简历;所有学员获得内推机会,优秀学员获得一对一面试辅导。

2. 学员对训练营评价如何?

Marketing Mix Modeling Bootcamp开办至今,收获了大量好评,学员们都觉得Bootcamp的质量非常高,在节课后给我们发来了很多让我们 非常感动的评论:

3

训练营老师是谁?

1. 全球最大广告传媒集团WPP | 数据总监

  • 商业分析高级专家

  • 拥有7年数据分析经历

  • 各类SQL、Tableau疑难杂症的go-to person

2. 全球最大广告代理公司GroupM | 营销分析经理

  • 营销效果分析专家。为十多个每年广告预算上亿美元的大客户提供营销效果评估、销售预测等解决方案

  • 拥有6年Marketing Mix Modeling等高阶分析经验,具有丰富的训练新人和带领团队的经验

  • 毕业于Columbia University统计学系

现在Marketing Mix Modeling Bootcamp第九期

已正式开放报名!

我们的老规矩:小班教学,每一期Bootcamp只招收20名学生,先到先得!

接下来我们就看看训练营的具体课程内容吧!

4.在Bootcamp中可以学到哪些内容?

  • 整个bootcamp分为广告数据源概况、数据处理与可视化、统计建模、深度诊断,共计24小时课时,在两个月内完成。

  • 周末Online Live授课,课后完成老师布置的作业,助教团队在班级群随时答疑,直播录像永久回放。

  • 课程内容涵盖了数据分析岗位的完整工作流程(analytics cycle):

    • 数据收集 Data Acquisition

    • 数据处理和清洗 Data Processing

    • 数据可视化与商业洞察 Data Visualization & Data Story-telling

    • 统计建模 Modeling

    • 模型优化 Optimization

    • 销售预测 Simulation

    • 深度诊断 Side Diagnostics 

    • 结果展示 Presentation

  • 每位学员将有一套亲自做的Data成果作品和一套Model成果作品,以及一段完整的为客户解决实际问题的经历。

  • 结课后,每位学员获得提升简历的Project Experience完美描述,所有学员获得内推机会!优秀学员获得额外一对一面试辅导

  • 报名的学员可在开课前一周获得详细的Syllabus。

5.上完Bootcamp,有哪些成果可以展示?

从变量可视化分析、模型解读、营销渠道分析,到战略洞察、PPT演示,学员的精致作业就是他们最好的训练营成果,这一份拿的出手的高品质项目,无论是LinkedIn还是面试展示,都会是脱颖而出的最佳帮手!

学员作品

正是这些实打实的项目经验和能够直接拿到面试官面前展示的作品,让我们的学员在面试的时候信心倍增,让面试官刮目相看!

说了这么多,到底怎么报名这门干货十足物超所值的项目课程呢?

6. 报名方式

长按二维码,添加小助手为好友,回复“MMM”,即可报名bootcamp:

小助手(微信ID:yvonne91_wsn)


 价格规则 

熟悉我们的老用户,应该知道我们一直都是实行阶梯价格的,这次也不例外:

先到先得、越早报名越优惠(原价$1999美元)。以下价格单位为美元:

第1名~第5名:1299美元

第6名~第10名:1499美元

第11名~第15名:1599美元

第16名~第18名:1799美元

第19名~第20名:1999美元(原价)

2020年的你,是否能在更好的公司做更优秀的自己?投资自己,全方位提升能力,为自己增添被验证有效的宝藏项目经历!赶快报名吧!

本文来源:https://medium.com/better-marketing/data-science-for-marketers-an-8-step-tutorial-cf28b9c59668