基于Spark的机器学习实践 (一) - 初识机器学习

1,001 阅读4分钟

1 导学

1.1 开源大数据技术

1.2 提高竞争力必备

1.3 教程规划

1.7 预备知识

  • 了解大数据相关基础知识
  • 熟悉Linux基本命令
  • 熟悉Scala语言的编程方法
  • 有一定的数学基础

1.8 环境参数

  • Spark : 2.3.0
  • JDK : 1.8
  • IDE : IDEA

2 机器学习概述

2.1 机器学习概念

维基定义

2.2 机器学习发展史

2.3 机器学习(ML) & 人工智能(AI)

2.4 机器学习的一般功能

◆分类 识别图像中人脸的性别是男还是女

◆聚类 发掘喜欢类型的女朋友

◆回归 预测一下股市价格

分类与回归的区别

◆分类的类别是离散的,回归的输出是连续的

◆实例

  • 性别分类的结果只能是{男,女}集合中的一个
  • 而回归输出的值可能是一定范围内的任意数字,例如股票的价格。

2.4 机器学习的应用

◆ 自然语言处理,数据挖掘,生物信息识别(如人脸识别) , 计算机视觉等

2.5 机器学习的现状

◆应用领域十分广泛 如DNA测序,证券分析

◆国家战略 多次出现在政府工作报告中

◆人才缺乏

  • 新兴发展领域,门]槛相对较高.
  • 人才缺口巨大

3 机器学习核心思想

3.1 机器学习的方法

  • 统计机器学习(本教程的主要内容)
  • BP神经网络
  • 深度学习

3.2 机器学习的种类

◆监督学习

◆无监督学习 (也有介于两者的半监督学习)

◆强化学习

3.2.1 监督学习

◆ 学习一个模型,使模型能够对任意给定的输入作出相应的预测 学习的数据形式是(X,Y)组合

  • X,Y的组合

3.2.2 无监督学习

◆学习一个模型,使用的数据是没有被标记过的,自己默默地在学习隐含的特征,寻找模型与规律 输入数据形式只有X.例如聚类

3.2.3 强化学习

◆在没有指示的情况下,算法自己评估预测结果的好坏 从而使得计算机在没有学习过的问题上,依然具有很好的泛化能力

3.3 机器学习思想的总结

◆本质思想 使用现有的数据,训练出一个模型 然后再用这样一个模型去拟合其他的数据,给位置的数据做出预测

◆人类学习的过程 老师教数学题 ,学生举一反三 ,考试成绩是学习效果的检验

3.4 更深入一点的数学原理

◆在数学上找到衡量预测结果与实际结果之间偏差的一个函数

◆通过反复(迭代)地训练模型,学习特征,使偏差极小化(注意不是最小化)

  • 比如并不是一直刷题就会满分,这不靠谱~
  • 而是很接近

◆衡量预测偏差的函数称为:损失函数( loss function )

◆机器学习是一个求解最优化问题的过程

3.5 训练模型应避免的两种情况

◆过拟合:模型训练过度,假设过于严格

  • 判别图片是否是一片树叶:模型认为树叶一定包含锯齿

◆欠拟合: 模型有待继续训练,拟合能力不强

  • 判别图片是否是一-片树叶:模型认为只要是绿色的就是树叶

4 机器学习的框架与选型

4.1 机器学习常用编程语言

◆Python

◆C++

◆Scala

4.2 机器学习常用框架

◆ 统计学习 Spark(ml/mllib) scikit-learn Mahout

4.3 使用Spark的好处

◆ 技术栈统一 便于整合Spark四个模块

◆ 机器学习模型的训练是迭代过程,基于内存的计算效率更高

◆ 天然的分布式:弥补单机算力不足,具备弹性扩容的能力

◆原型即产品 Spark 可直接适用在生产环境

◆支持主流深度学习框架运行

◆ 自带矩阵计算和机器学习库,算法全面

4.4 机器学习项目选型要点

◆充分考虑生产环境与业务场景

◆尽量选择文档更详尽,资料更完备,社区更活跃的开源项目

◆考虑研发团队情况,力求技术栈精简统一,避免冗杂

参考

wiki/机器学习