【郑州校区】机器学习第二天笔记分享 机器学习第二天的重难点:
1.了解神经网络发展过程
2.明确MP神经元模型---感知机模型---BP神经网络
3.如何构建一个机器学习系统。(以分类为例)
4.模型选择部分--如何进行模型选择?
5.机器学习成熟库:Python的sklearn(scikit-learn)
Spark的MLLIB、WEKA
回顾机器学习第一天的内容:
1.大数据架构
以电信日志分析为例
数据:电信用户上网所产生的的日志
用户的访问日志--地区码|目标ip|用户ip|流量数据|其他数据
用户的安全日志--安全规则|安全码
获取数据的方式:
ftp方式---上传的是用户的访问日志
---每个小时上传上一个小时的日志
---通过shell将小文件进行合并之后上传到文件系统中
socket方式---上传的是用户的安全日志
---以socket流文件的方式上传,先缓存在加载到内存中
数据存储:HDFS(分布式文件系统)
数据清洗(ETL): 使用Mapreduce--处理用户访问数据,用于Hive进行进一步分析
--Mapreduce和Redis进行交互将访问日志中401地区码变更为地区名字,如“上海”
数据清洗包括缺失字段的处理(可以删除字段、均值填充、中位数填充)
数据分析:Hive、Impala、HBase、Spark
Hive处理的是小文件合并,临时业务需求,用户的访问查询
通过sqoop导入到oracle中做进一步的通过web端访问。
Impala进行实时的查询业务
通过jdbc和web端进行交互
Hbase从MR处理完用户的访单数据之后,入库到HBase通过HBase做实时的详单查询
通过协处理器或thrift服务和web端进行交互
Spark为了解决单一数据源下40个指标需要加载到内存中去处理,TopN
通过sqoop导入到oracle中做进一步的通过web端访问。
机器学习:在数据分析之后,需要寻找数据之间存在的关联或模式,而大数据的框架
能够做到大数据量的存储和基本的统计计算,如果需要利用机器学习算法,预测现实
世界的真实事件(分类、回归、聚类)
2.机器学习架构(以推荐系统为例)
web/App--设置一些埋点---用户的行为数据----存储在数据中心或数据库中
离线计算:从数据库中拿出用户历史行为数据,使用协同过滤算法或ALS算法进行
基于用户的协同过滤推荐或基于商品的协同过滤推荐,得到的推荐结果存储到
在线存储介质中
在线计算:拿到用户实时点击商品对应的特征,通过该特征和在线存储介质中的
商品数据做相似性计算,拿到相似度在前面topn的个数。
过滤,补全,排序
近线计算:将整个推荐系统的业务逻辑整合在一起
推荐系统的API-->web端会发起请求request,通过api和近线计算进行交互,通过
-->推荐系统的API返回对应的推荐商品的值。(response)
3.究竟大数据时代究竟改变了什么?
数据资源----数据资产
基于知识----基于数据
统计学------数据科学
目标决策----数据决策
基于业务的数据化---基于数据的业务化
基于战略---基于数据
计算智能:复杂算法----简单算法(MapReduce模型)
4.大数据的4v特征
数据量大---TP-PB-ZB----HDFS
数据处理速度快---MR---Hive--Impala---Spark---Flink
数据源种类多----结构化数据--非结构化数据---半结构化数据
价值密度低---->机器学习
5.机器学习的应用:
无人驾驶、图像识别、语音识别、自然语言处理、计算广告、推荐系统
6.人工智能
跳棋---专家系统
国际象棋---IBM深蓝战胜人类高手 SVM支持向量机
围棋---AlphaGo---深度学习、神经网络和大数据流派
7.人工智能、深度学习、机器学习的关系
机器学习是人工智能的一个分支,而深度学习是机器学习的一种方法。
8.数据、数据分析、数据挖掘
数据:测量值
信息:对数据进行数据分析得到的结果
数据挖掘:将信息进行价值化的提取
机器学习是一种方法,数据挖掘是一件事情,使用这样一个方法解决数据挖掘这样一件事情
9.什么是机器学习?
如何通过计算(CPU和GPU)的手段,利用经验来改善计算机自身的性能,从而达到智能的目的。
数据Data+机器学习算法=模型Model
以西瓜数据集为例:
数据集中样本、特征、训练集、测试集、模型准确性
给你一个没有切开的西瓜,通过数据代入模型中得到一个是好or不好西瓜的结果
10机器学习的各个概念:
数据集DataSet
样本sample
特征features
类标签label
训练集training set
测试集:test set
训练:fit-learning
模型:Model
预测:prediction
误差:error
训练集上的误差:train error
测试集上的误差:test error
准备率:score,accuracy
11.机器学习的分类
是否有标签:
监督学习:分类(2分类和多分类)--垃圾邮件
回归(是否输出值是连续值,是)---房价预测问题
非监督学习:聚类(KMeans)
组内的相似性极大的,组间的相异性极大的
降维(PCA,LDA,SVD)
将数据中的特征从高纬度降低到低纬度中
半监督学习:一部分是有标签,一部分是没有标签的
常用的方法:主动学习(依赖于外部环境)
半监督学习:基于聚类假设
纯半监督学习
直推学习
强化学习:解决的连续值决策的问题
12.手写体识别的案例
手写体数据----->灰度化和二值化的处理--->矩阵--->行矩阵--->算法中--->模型---->预测
python的sklearn(scikit-learn)演示流程
1.数据探索
2.数据集的切分
3.训练集训练模型
4.测试集测试模型的优劣
5.使用模型进行预测predict
6.考量模型的优劣(模型.score())
神经网络部分:
人工智能的三次浪潮----神经网络出现三次浪潮
从人脑结构的神经元如何转化抽象得到人工神经网络结构的。
MP神经元模型--->缺点:没有学习的能力
感知机模型--->缺点:XOR异或问题 ----神经网络第一次浪潮
BP神经网络---->缺点:提取特征的能力有限 ----神经网络第二次浪潮
CNN--卷积神经网络 DNN--深度神经网络 ----神经网络的第三次浪潮
机器学习三要素:
机器学习:Data+Alg+策略(损失函数-目标函数)==>MODEL
模型:决策函数或条件概率分布
策略:损失函数0-1损失,绝对值损失,平方损失,交叉熵损失
算法:最优解的表达形式
如何构建机器学习系统?
数据和特征的处理+机器学习算法-->模型-->通过损失函数---->对模型进行校验
如何在大量的模型中选择最合适的模型?
以多项式为例:
模型的泛化性能最佳的:
模型的过拟合和模型的欠拟合
模型过拟合:
模型在训练集上的效果好,在测试上的效果比较差的
模型的欠拟合:
模型在训练集和测试集上的效果都很差
解决欠拟合:
增加特征项、增加模型复杂程度、减少正则罚项
解决过拟合:
增加正则罚项、重新采样、增加训练数据
防火防盗防止过拟合
如果两个模型的泛化误差都是相同的,模型如何选择?
使用奥卡姆剃刀原则,在相同的泛化误差的情况下,选择较简单的模型中作为最终的模型。
为什么现在是进入机器学习领域的最佳时机?
得益于我们成熟库的实现,方便了我们自己手写算法,实现业务需求,方便计算
Spark的MLLIB WEKA 基于Python的sklearn
tensorflow库---深度学习(CNN DNN RNN)
Keras库--基于tensorflow封装的库、MXnet、Caffe等
基于Python的Sklearn学习:
(1)安装python环境
---python的原生环境安装
两个版本:python的2.7和3.6两个版本
在python中3.6版本并没有兼容2.7版本
在python中使用pip命令安装package
轮子文件:whl--python组织包的方式
安装:pip install xxxx (离线安装(对应的whl文件)和在线安装(直接输入相应的包名字))
卸载:pip uninstall xxx
如何测试轮子文件是否安装成功?
进入python的环境----import numpy as np
import pandas as pd
import matplotlib as mpl
在Python中有一个解析器interpreter用于语言解析(类似于java中的jvm)
这也是python为什么是一门解析性的语言之一的原因
---eclipse(IDE)
基于eclipse如何安装python环境呢?
---idea如何安装
---Anaconda(数据科学环境)+Pycharm(IDE)---数据科学首选的环境
不仅可以使用pip进行包管理,还可以使用conda管理---pip list或者conda list 查看当前版本中安装的包的名字
pip install xxxx /pip uninstall xxx
conda install xxx/conda uninstall xxx
(2)基于Anaconda+Pycharm进行数据科学的学习
总结:
神经网络:MP神经元模型---感知机模型---BP神经网络----CNN\RNN\DNN
MP神经元模型---输入x1 x2 x3 b Y=sum(xiwi)+b----F(Y)=sign--0or1 存在问题:模型没有学习能力
感知机模型-----误差反向传播解决权值更新问题
---如何更新权值?
1.建立损失函数
2.梯度下降法求解损失函数的最优解
问题:XOR异或问题无法解决
BP神经网络:具有两层神经元的神经网络结构,BP神经网络
如何设计一个神经网络结构?
1.确定神经元的层数
输入层1----输出层1-----隐藏层n
2.确定每层神经元个数
输入层-输入样本个数------输出层--任务输出的个数-------隐藏层个数--准确率或交叉验证
如何构建一个机器学习系统。
1.数据 2.业务
数据探索
特征工程
数据集切分为训练集和测试集
训练集+算法-->MODEL
通过测试集X灌入算法中得到一个预测值Y1
形成误差|Y-Y1|
模型训练过程使得模型的无法最小的
评价指标
机器学习三要素:
数据+机器学习算法+策略==>Model模型
模型的过拟合和欠拟合
基于python的安装
Anaconda+pycharm进行数据科学学习
传智播客·黑马程序员郑州校区地址 河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
|