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/机器学习