机器学习平台-PAI

ACA课程学习笔记(12)

机器学习

对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验而自我完善,那么我们称这个计算机程序在从经验E中学习。 -Tom Mitchell《机器学习》

上面这个这是我个人感觉最好的“机器学习”定义,记得第一次听到这个定义是在吴恩达的视频里,立刻就感觉这个定义很优美。

比如最经典的西洋跳棋:

  • T :下西洋跳棋
  • P :赢棋概率
  • E :和自己下棋 将棋盘状态通过各种量化指标提取出来,比如黑子个数,被威胁黑子次数等,再用量化指标构建目标函数(V)。在此时,任务就变成了优化目标函数中的各项权重,就容易解决了。

特点:

  • 无需传统模式编程
  • 定义TPEV,并提供学习方式即可
  • 随着数据变化,能自动学习,更新

适用场景:

  • 手工编程解决不了的
  • 基于复杂数据的快速决策
  • 大规模的个性化系统

PAI平台

我感觉就像小时候用的图形化编程,所有的算法都封装好,直接拖动,配置函数的参数就能完成一个完整的机器学习流程。包括归一化,随机森林,特征变化,导入导出数据这些操作也是封装好的块。也就是说,使用PAI平台,你连敲函数名字都不需要了,和使用Python直接写相比,这种方法对小白更友好,更加直观,有点像幼儿图形化编程。但缺点就是,没有python写那么开放,可能小的项目对我来说没有python敲那么方便,其实相当于是比python更高层的一个工具,黑箱更多。

实验:分类分析

  1. 一如既往的,申请MaxCompute资源,再使用RAM用户登录
  2. 实验任务就是那个经典的葡萄酒质量,就懒得把具体内容复制过来了。我原来在什么通识课的半期考试上做过这东西,但在限时任务里没做好,可以点这里去看一下那个历史遗留的半成品。
  3. 建表,可以图形化操作,也可以DDL模式敲SQL
     CREATE TABLE wine_classification (
         fixed_acidity DOUBLE,
         volatile_acidity DOUBLE,
         citric_acid DOUBLE,
         suger DOUBLE,
         chlorides DOUBLE,
         free_sul_dio DOUBLE,
         total_sul_dio DOUBLE,
         density DOUBLE,
         ph DOUBLE,
         sulphates DOUBLE,
         alcohol DOUBLE,
         classification BIGINT
     );
    
  4. 把表提交到生产环境
  5. 把本地数据导入到云上的表里(注意检查字符映射)
  6. 进入PAI平台
  7. 拖拽流程图直接操作
  8. 这里有个很尴尬的情况,做得太开心我忘记录了,反正和下面那个实验的操作差不多,只是组件不一样。

实验:统计分析

该数据集的原背景:很多农民因为缺乏资金,在每年耕种前会向相关机构申请贷款来购买种地需要的物资,等丰收之后偿还。农业贷款发放问题是一个典型的数据挖掘问题。贷款发放人通过往年的数据,包括贷款人的年收入、种植的作物种类、历史借贷信息等特征来构建经验模型,通过这个模型来预测受贷人的还款能力。 本实验利用机器学习PAI强大的统计分析能力,探索不同地区的农民年收入的分布情况,不同地区的年收入之间是否有区别以及地区与年收入之间的相关性。故claimtype(贷款类型)和claimvalue(贷款金额)这两个字段在本实验中可以不用关心。

就是对数据进行一些简单的分析

这是整个实验的分析的流程(所见即所得) exper.png 可以看到左侧提供的组件是很丰富的,反正以我的水平,我需要的所有的功能都已经能直接使用了。

以下展示一些数据分析的结果:

  1. 数据分布观察 1.png
  2. 相关性矩阵 2.png
  3. 箱线图 3r.png
  4. 正态检验