机器学习能发现数据下隐藏的各种客观规律,对提高产品的智能化程度,提升用户满意度等方面有很大的帮助,这里不再赘言。那么怎么实现一个机器学习系统,并和大数据的开发套件上的调度结合起来实现自动化呢,本文就一些测试数据做一个例子。

场景假设

我这里用著名的鸢尾花数据集作为测试数据。那就假设我是一个植物研究院,希望根据已经有的一些花的数据和分类,判断新收集上来的样本的花的类型(类似的,企业数据里可以判断用户会不会买,会不会投诉甚至流失)。这里用的算法就先简单一些,用朴素贝叶斯。

使用场景是,假设我们的项目里已经有一些历史的花的数据,每天训练可能还会有一些更新。希望针对这些训练数据,做出一个算法模型,预测新采集到的花的类型。

数据准备

我Iris表存放当天的全量训练集。而预测集,用Iris_daily表做每天增量同步。具体每天配置增量同步的方法,可以参考这个例子。比如1月18日凌晨做的计算,会计算1月17日的全量数据。那就把17日的数据放到ds='20170117'这个分区里。

表结构如下
odps@ >desc iris_daily;+------------------------------------------------------------------------------------+
| TableComment:                                                                      |
+------------------------------------------------------------------------------------+
| CreateTime:               2017-01-18 13:31:40                                      |
| LastDDLTime:              2017-01-18 13:31:40                                      |
| LastModifiedTime:         2017-01-18 13:39:45                                      |
+------------------------------------------------------------------------------------+
| InternalTable: YES      | Size: 1960                                               |
+------------------------------------------------------------------------------------+
| Native Columns:                                                                    |
+------------------------------------------------------------------------------------+
| Field           | Type       | Label | Comment                                     |
+------------------------------------------------------------------------------------+
| sepal_length    | double     |       |                                             |
| sepal_width     | double     |       |                                             |
| petal_length    | double     |       |                                             |
| petal_width     | double     |       |                                             |
| category        | string     |       |                                             |
+------------------------------------------------------------------------------------+
| Partition Columns:                                                                 |
+------------------------------------------------------------------------------------+
| ds              | string     |                                                     |
+------------------------------------------------------------------------------------+--浏览一下前几条数据:
+--------------+-------------+--------------+-------------+------------+------------+
| sepal_length | sepal_width | petal_length | petal_width | category   | ds         |
+--------------+-------------+--------------+-------------+------------+------------+
| 5.1          | 3.5         | 1.4          | 0.2         | Iris Setosa | 20170117   |
| 4.9          | 3.0         | 1.4          | 0.2         | Iris Setosa | 20170117   |
| 4.7          | 3.2         | 1.3          | 0.2         | Iris Setosa | 20170117   |
+--------------+-------------+--------------+-------------+------------+------------+

模型训练

我们先在机器学习产品里搭建一个算法。看一下效果。画布区的配置可以参考下面截图(这里需要说明的是,在机器学习画布区里测试的时候yyyyMMdd测试的时候业务期是今天,但是实际上企业上我们都是今天跑昨天的数据,业务期也是昨天的,可以在画布区把任务先配置成"ds=@@{yyyyMMdd-1d}",到后面嵌入到大数据开发套件前再改成ds=@@{yyyyMMdd},):

朴素贝叶斯的配置如图:

咱们先跑一次这个模型,可以看到预测的结果如图:

Iris Setosa的数据和其他的2个分类的区分度比较大,所以预测都是准的。但是Iris Virginica和Iris Versicolour之间区别不大,甚至有一些交集,就会有一些临界点的数据容易预测不准。下图来自机器学习产品的散点图模块。

训练的结果咱们也看下(这里就截了混淆矩阵和统计信息):

至此机器学习实验的配置结束。如果觉得这个例子有点简单,还没能理解机器学习的配置方法,可以在创建实验的时候使用模板来创建,里面已经把数据、实验配置都弄好了,更容易理解算法的用法。

定时调度

毕竟我们不能每天去手工跑一次实验,我们可以用大数据开发套件创建一个任务,把数据的前文提到的数据导入、后续的导出等串起来。

我们需要先创建一个工作流,在工作流里配置任务,如图:

对于机器学习组件,我们双击组件,进去选择之前配置的实验即可。后续的任务的测试,发布流程和大数据开发套件里的其他组件的用法是一样的。

其他

可能大家在机器学习的控制台有看到一个在线预测的功能,这是一个后续会推出的新功能。我们看到现在我们的预测是离线算好的。如果是实时预测不是更Cool嘛。比如前面提到的购买行为、用户投诉行为的预测,都需要较好的时效性。后续通过在线预测的功能就可以实现这个功能啦~

看到这里,可能你还有一个疑问,为什么我不用更加常见的企业个性化推荐场景做例子呢?自己使用底层产品自己搭建固然可以,但是更好的方法是使用已经有的产品,省的自己重复造轮子,把资源更多地投入到业务上。所以可以参考推荐引擎,或许更加适合你。

本文使用的产品涉及大数据计算服务(MaxCompute),地址为https://www.aliyun.com/product/odps
机器学习 https://data.aliyun.com/product/learn
配合大数据开发套件 https://data.aliyun.com/product/ide 完成的。
如果有问题,可以加入我们的钉钉群来咨询

如何用大数据开发套件周期调度机器学习算法相关推荐

  1. 基于大数据开发套件定时调度带资源文件的MapReduce作业

    原文链接:http://click.aliyun.com/m/13937/ MaxCompute里的MR作业,很少是只要跑一次就好了的.如果需要周期性调度,目前MaxCompute(原名ODPS)只提 ...

  2. 大数据开发套件DataIDE使用教程

    课程介绍 大数据开发套件(Data IDE) 是阿里云数加重要的Paas平台产品,是"DataWorks"中最重要的核心组件.提供全面托管的工作流服务,一站式开发管理的界面,帮助企 ...

  3. 大数据开发套件—调度运维常见问题

    我们在进行大数据开发过程中,会遇到各种问题,本文将定期收集整理一些在使用阿里云数加 大数据开发套件 时遇到的常见问题,供大家参考~ Q. 如果之前提交的任务修改后再次提交,是否会影响当天的任务调度? ...

  4. 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

    点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache  DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...

  5. 使用时间序列分解模型预测商品销量(手把手教你如何利用阿里云大数据开发套件进行商品销量的预测)

    使用时间序列分解模型预测商品销量 1.1实验目的 1.2实验概述 1.3 实验目标 1.4 实验工具 1.5 实验准备 实验资源 ============== 这是一条分割线 ============ ...

  6. 云享团——基于大数据开发套件的增量同步策略

    免费开通大数据服务:https://www.aliyun.com/product/odps 转载自云享团 因为近期遇到用户在做ETL操作导入数据到MaxCompute的时候,对如何设置数据同步策略有疑 ...

  7. WOT讲师单艺:用大数据开发产品、优化运营

    大数据无处不在,发现人才要用到大数据,企业决策要用到大数据.事实上,大数据早已覆盖了我们生活的方方面面,数据挖掘.数据分析的技术在各行各业都有其用武之地.本次51CTO邀请了[WOT2015" ...

  8. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [6] 朴素贝叶斯实践

    本篇内容为<机器学习实战>第 4 章 基于概率论的分类方法:朴素贝叶斯程序清单.所用代码为 python3. 朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题. 缺点:对于 ...

  9. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [12] 集成学习实践

    本篇内容为<机器学习实战>第 7 章利用 AdaBoost 元算法提高分类性能程序清单.所用代码为 python3. AdaBoost 优点:泛化错误率低,易编码,可以应用在大部分分类器上 ...

  10. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [8] 支持向量机(二)...

    这两篇内容为西瓜书第 6 章支持向量机 6.1,6.2,6.4,6.3 的内容: 6.1 间隔与支持向量 6.2 对偶问题 6.4 软间隔与正则化 6.3 核函数 由于本章内容较多,分为两篇来叙述.本 ...

最新文章

  1. 大一java期末考笔试_大学java期末考试试题和答案
  2. javascript特效_如何在网页添加鼠标点击特效
  3. 支付宝二面微服务、分布式架构?太真实了!
  4. html怎么显示数学公式,怎么使用html数学公式显示库MathJax - js笔记
  5. set类型 php,常用php操作redis命令整理(四)SET类型详解
  6. 萌新学习Python爬取B站弹幕+R语言分词demo说明
  7. SQL Server索引视图
  8. SPSS常用方法及操作
  9. 怎么转换kux格式?教你把优酷的kux格式转换成avi
  10. IE-LAB网络实验室:华为培训中华为数通HCIE考试流程
  11. 转子系统动力学模型matlab程序代码
  12. 折线图-面积图-K线图
  13. B-spline Surfaces
  14. stm32h743单片机嵌入式学习笔记8-avi视频解码
  15. Redis(十九)-Redis的数据库与键空间
  16. python unpack_python struct中pack和unpack
  17. RMF模型评分制计算方法(2021/08/04)
  18. ava.io.IOException: Downloaded file /var/lib/jenkins/plugins/credentials.jpi.tmp does not match expe
  19. PHP下处理HTTP--json--xml信息
  20. 计算机组装与维修(一)

热门文章

  1. 27. Remove Element
  2. mahout推荐15-在hadoop上运行MapReduce
  3. android-support-v7-appcompat下载
  4. Eslint常用命令
  5. spring整体架构
  6. oracle主要的动态视图与基表的对应关系
  7. 个人作业week7——前端开发感想总结
  8. Extjs中设置只读的样式问题
  9. 中国农历2013,2014 (zz.IS2120@BG57IV3)
  10. 实现简单的web框架