从数据到信息
从信息到洞察

零代码实现PowerBI 机器学习实战

机器学习广泛地应用于数据挖掘、自然语言处理、特征识别等领域,简单的说,它可以基于历史数据预测未来的变化,而 BI 数据分析侧重于对历史数据的描述和解释,这是两者之间的一个显著区别。

机器学习是时下非常热门的一个方向,在一些互联网企业,这是数据分析师岗位的标配技能。

即使你畏惧编程语言、概率论和统计学那些晦涩难懂的概念,也得小心老板某天突然从你身后出现,下达一个预测销量、分析权重的任务。可能并不是他跟你有仇,而是一个原本普通的分析结果一旦加入了机器学习内容,不管有没有实际作用,至少已经提升了溢价空间。

机器学习在互联网行业的应用非常广泛,比如我之前的公司从事的就是以机器学习为核心的计算广告业务,通俗的说就是根据当前正在浏览网页的用户特征,推送他感兴趣的广告内容,并预估广告被展示出来后的点击率,这个数据决定了 DSP 对广告的出价。

如果出价太低,无法从其他竞争对手中胜出。如果出价太高,虽然按广义第二高价计费,但过低的转化率和过高的转化成本也让这种方式没有可持续性。从技术层面来说,广告 CTR 预估属于大规模稀疏机器学习问题,和普通机器学习的不同之处在于,广告数据量庞大,特征数量庞大,正负样本非常不平衡,学习难度较大。

 

一般来说,基于本地业务数据的预测比这个要简单的多,一种普遍的方法是使用 Python 或者 R 语言调用现成的机器学习扩展包,实现对特定问题的建模和预测。你需要至少熟悉一门语言并且对常用的算法模型有一定了解,对于业务人员来说,找到与问题匹配的算法模型相对比较容易,但想熟练操作一门语言就不那么简单了。

零代码建立预测模型

那是否有途径让我们实现零代码建模预测,并且能顺带制作可视化报告呢?其实很多云服务厂商已经集成了这项能力,比如微软提供的在线 AutoML,只需要简单的拖拽就能快速生成训练模型,大大降低了操作难度,节省时间。本文我将带你一起总结目前 Power BI 可用的所有零代码机器学习方案,相信总有一款可以让你搞定领导,提升数据报告的含金量。

注:Power BI Desktop 内置的关键影响因素控件也使用了统计学模型,但它是在本地运行的单机方案,无法进行性能扩展和弹性伸缩。不在本文的介绍范围。

 

Azure 机器学习算法汇总

Power BI Service 内置的机器学习模型

微软已将 Azure 机器学习功能整合到 Power BI Premium 服务中,用户可以在 Service 端直接选择适合的模型进行预测,只需要四步操作,就可以得到训练结果。

 

选择右上角应用模型,可以在 Desktop 中通过 DataFlow 应用此模型对数据进行预测。

此功能最早于 2018 年 11 月的 Ignite 大会上对外展示,但并未如之前宣传的那样马上发布,直到今年四月份,微软才开始正式为 Premium 用户推送此功能。

使用 DataFlow 中的机器学习函数

这个方法将调用 Azure 机器学习模型的过程以函数的形式封装到 DataFlow 中,只需一个函数即可对当前调用模型进行计算。

上图中以认知服务命名的函数可以提供文本情绪打分模型、图片情绪打分模型,也可以应用自定义的模型。

导入需要分析的原始文本,选择相应的认知函数即可得到结果(红框中的两列:预测的结果和可能性):

 

可能有很多人还不知道 DataFlow 是什么东西,简单的说它是编辑查询功能的网页版,你可以在 web 端建立数据获取以及清洗的过程。但它的威力远不止于此,这是一个真正面向企业的,承担数据治理和管控作用的工具。一个统一管理的 DataFlow 让不同用户之间 ETL 工作充分共享,相同的数据处理工作只需要做一次,前人栽树后人乘凉。从企业层面有效避免同一数据源被反复清洗的问题,大大提升协作效率。

 

DataFlows 可溯源,可查看依赖性,可控制权限,用一个当下流行的词汇,这是企业数据治理和管控的中台。

既然 DataFlow 是编辑查询功能的 Web 版,那是不是说明我们也可以在 Desktop 中使用机器学习的函数呢?答案是否定的,目前 DataFlow 仍然是 Premium 用户的专属功能,想要使用机器学习功能,需要登陆验证后才能激活。

 

以上两种方法只有 Premium 用户才可以使用,如果价格不是问题(是的,贵不是微软的错,是我的错)。还有一个无法回避的问题是国内版暂时不支持 Premium。

免费方案:Azure ML Studio+Power BI

上面介绍的两者方法虽然操作简单,但因为需要价格昂贵的 Premium 账户,无法大规模普及。那有没有免费且容易上手的机器学习方案呢?答案是 Azure ML Studio 机器学习工作室  https://studio.azureml.net/

注册一个免费账户,你就可以在 Web 端用拖拽的方式生成训练模型并测试。免费账户拥有 10G 的数据存储空间和每个试验 24 小时的训练时长,可以满足一些常规的使用要求。下面是整个训练过程的简要描述。

步骤 1:上传训练数据

 

步骤 2:拖拽方式生成训练模型

 

步骤 3:训练好的模型需要配置为 Web 服务

 

接下来需要记录 Web 服务的完整名称和下面的两组 ID(Workspace ID 和 Token)信息,这样就完成了调用前的准备工作

 

步骤 4:记录 Workspace ID

 

步骤 5:记录 Authentication Token

 

步骤 6:回到 Desktop 的编辑查询界面,通过 R 脚本调用一次 AzureML 包,即可完成预测。

也只有在这一步才需要填写一段简单的代码

 

步骤 7:运行程序即可得到预测结果

 

我使用 4 万条汽车销售线索数据,通过 Azure ML Studio 对每条线索是否成交进行预测,训练出的模型准确率可以达到 90%。

看到这里,你可能对具体的操作步骤仍然没有概念,没关系,首次登陆会自动弹出一个引导教程,用步骤演示的方式给带着你从零开始完成一个机器学习案例。

什么?一遍没有看懂?点界面右上角的问号,选 Tour 可以再来一次。

查看在线报告

我以一位汽车经销商销售主管的视角,使用 Azure ML Studio 完成了数据上传、训练模型,在 Power BI 中调用服务,并制作了下面这份可视化报告,还原了整个过程。(点击编号切换页面)

点此全屏观看

以上是 Azure ML Studio 的简要操作介绍,你可以参考这份报告,动手训练一个自己的模型,如有问题,欢迎留言。

 

1
说点什么

1000
 
鼓掌微笑开心憧憬爱你色并不觉得吃瓜doge二哈喵喵思考笑哭捂脸悲伤大哭抓狂汗偷笑打脸捂眼黑线问号晕拜拜闭嘴衰咒骂ok作揖
1 评论数
0 被回复的评论
0 订阅评论的人数
 
查看最近回复
查看最热评论
  订阅本文评论  
最新 最旧 得票最多
提醒
游客
新人

手机也能回复,很方便