机器学习业务基础及架构详解
一.机器学习基本概念
1.结合实例来说明数据集基础概念
- 数据集的名称:对应在业务上要解决什么问题
- 分析数据集:
对行和列都分析。 - 看数据集本身:把数据集的行和列与关系型数据库作对比。
行
在关系型数据库中:行叫做记录,
在机器学习中,行叫做样本或实例。
列
在关系型数据库中,列叫字段。
在机器学习中,列叫特征或属性。
例子中最后一列是class label,叫类别标签列(结果列)。类别标签列是一种特殊的属性。
因而前四列是特征,最后一列是class label,单独作为类别标签。 - 前四列(特征)整体组成----特征或属性空间----属性/特征向量----特征值/属性值:组成特征向量中的值
特征或属性空间:由特征张成的维----空间----即属性/特征空间
这里的维:有几个特征就有几个维度,在这里就是4个特征张成空间
在空间中,构成特征/属性向量----组成特征或属性空间中的样本点(行):即一行数据对应一个属性/特征向量----多个属性/特征向量组成多个点构成的空间----一个特征/属性向量中的一个维度(一个点中的一个轴的值)的值是特征/属性值。
- 描述这个实例(鸢尾花这个表):
- 训练模型
将所有数据全部用于训练模型,那么没办法衡量模型训练结果的好坏。
将数据分为训练集和测试集,训练集多于测试集。
在这个例子中,现在假设将前120个样本作为训练集,
训练集:x(特征)和y(类别标签)共同构成。
x到y的过程(加上算法)就是训练模型的过程,
- 测试模型
模型有了,可以拿测试数据测试模型。
测试集:测试数据x+y构成
将测试数据x给训练Model,得到预测结果:y_pred - 误差
拿预测结果和测试集中的y做对比,对比结果会产生误差,
误差error:
- y-y_pred,
- |y-y_pred绝对误差
- (y-y_pred)**2 平方误差 :之所以由平方误差,是因为绝对值函数在0点时不可导,而平方函数处处可导。
- 训练误差:不是所有的点都会被训练到,训练集上的误差
- 测试误差:真是结果和测试结果有差距,测试集上的误差
- 泛化误差:新数据欲预需要训练出的模型泛化能力比较强,泛化就是对新数据的适应能力。
2.数据处理
- 数值型和非数值型特征
- 当行和列对应的数据正好是数值的话,就可以直接用算法来处理。数值型特征可以直接用于模型的训练。
- 但是特征列对应的是非数值,要把非数值转化为数值才能用机器学习算法处理。
- 非数值型特征如何处理?非数值要转换为数值的方法:
- ** labelencoder标签编码**
- onehotencoder独热编码:用二进制方式替代单一数字编码。使用onehotencoder需要将维度扩大。
3.机器学习角度对样本的描述
4.性能评价标准(包括前面的误差)
对前面误差的扩展
这里针对二分类问题
- 分类的准确率
首先:准确率=分对的样本个数/all
在这个分类的例子中:二分类问题
下面的是性能矩阵/混淆矩阵
对二分类问题
1.准确率Accuracy=TP+TN/ALL
2.精确率Precision=TP/(TP+FP)
3.召回率=真正率TPR(true positive rate)=TP/(TP+FN)
4.假正率FPR(False negative rate)=FP/(FP+TN)
5.衡量精确率和召回率之间的差距:F1-Score(F1值):精确率和召回率的调和平均
F1-Score(F1值)=2/([1/pre+1/recall])=2*pre*recall/(pre+recall)
6.ROC(受试者工作曲线):可以描绘二分类问题。
要表达准确率如何要用到ROC的指标AUC(Area under Curve),AUC在[0,1]之间。
利用分类的真正率和假正率绘制图像取值都在0–1之间
auc=0.5,是随机产生的分类结果。auc>0.5,说明分类结果还行,auc<0.5,说明分类结果很差不可取。
5.总结要掌握的概念
6.概念学习
7.几个重要概念的理解
8.分类和回归问题
主要区别在于标签列,例子1中,是简单的二分类问题,例子2不是二分类问题。
根据类别标签列是否是连续的,将其分为两个:1,分类,2,回归
预测值是离散值,分类。预测值是连续值,回归。
9.初识机器学习分类
10.机器学习处理问题步骤框架
二.机器学习分类
1.监督学习
监督学习分为分类和回归
- 分类算法
- 回归算法
- 举例决策树模型
- 举例垃圾邮件分类
2.非监督学习
在没有样本标签的情况下,对样本点进行分类:利用特征之间的相似性/相异性进行分组/分类。
通过降低维度使处理的复杂度降低。
将高维降到低维,不是简单删除掉一个特征,而是新的的特征综合了之前的特征形成了新的特征,叫特征的降维,而把删除掉一个特征,叫做特征选择
聚类:在没有类别标签的情况下,根据特征相似性或相异性进行分类
特征选择:根据算法将高维特征降低到低维特征,新的低维度特征不具备可解析性。区别于特征选择:仅是在全部特征中选择部分特征。
3.半监督学习
1.半监督学习是一部分有类别标签,一部分没有类别标签。
半监督学习也是将无类别标签数据转化为有类别标签数据,即转化为监督学习的方式。
2.将无类别标签数据转化为有类别标签数据的方法分为:主动学习和其他。
主动学习:专家给无类别标签数据标记标签(人为影响大)。
其他(就是下面的两种):通过聚类方法给无类别标签数据标记标签2种方式。
3.将半监督学习分为:
(纯)半监督学习:未标记数据都标记上,作为训练数据
直推学习:未标记数据作为测试数据。
4.强化学习
Agent:代理人,代理商,代理,此处作为:智能体
reward:奖赏,报酬,奖励,回报
强化学习解决连续决策的问题,一个agent通过一个action作用到environment上面,通过发生改变,environment反馈给agent一个reward,一个闭环的系统最终给出了连续的决策。
5.迁移学习
深度学习(特征)------>强化学习(连续)-------->迁移学习(适应)
1.小数据集:两个相关领域
2.个性化:
6.总结
监督学习有结果标签,是明确指向性的学习。
无监督学习是单纯对数据的特征进行聚类、降维,由数据驱动
强化学习介于监督学习和无监督学习之间,没有明确的结果标签,但是可以和环境进行交互,得到反馈结果。
三.机器学习经典案例—手写体识别
- 手写体数字识别:十分类问题
- 将图片,借助于opencv/secondimage处理,处理为所能识别的图片。
- 经过灰度化/二值化处理,称为32*32矩阵
- 转化为11024二值图片向量;转化以后才能用学习算法处理。或者说,算法需要图片转化为行向量。
行向量,1行1024列。
四.机器学习三要素
1.模型-策略-算法
* 机器学习模型=数据+算法+策略
* 模型学习模型=模型+算法+策略
举例说明:
损失函数又叫误差函数/目标函数
2.模型—寻找规律
决策函数:直接盘定A属于类别1
条件概率函数:输出结果为概率大小,即A属于类别1的概率大小
3.策略–模型好不好
- 应用
0—1损失函数:真实值=预测值,误差为1,真实值≠预测值,误差为0,可以对分类问题作详解
平方损失函数:适合于连续性值得预测问题
绝对损失函数可作分类也可作连续预测。
对数损失函数
4.算法
解析解算法:我们所通用的
先求导,获得驻点,驻点把x区间分成几个区域,然后先下降后上升,是极小值,先上升后下降,是极大值。
优化算法:机器学习领域
计算机不能作解析解算法。计算机用求解0点二分法:用逼近的思想
先找到点a和点b,在(a,b)之间,f(a)*f(b)<0,说明存在0点,如f©=0.
接着找到点(a+b)/2和b点,判断f((a+b)/2)*f(b)<0?如果<0,那么在点(a+b)/2和b点之间存在点c,使得f©<0。
用这种方式逐渐逼近0点。
五.构建/设计机器学习系统
对于任何机器学习算法模型来讲,必须有算法和数据的输入,
- 输入数据,预处理时,如果特征维度很高,就要特征降维。涉及到:特征的抽取及缩放,特征选择,降维、抽样。
样本抽样:对数据集进行行列抽样,随机从大列样本中抽样随机样本出来
特征抽样: - 学习部分涉及到模型:
模型选择:比如y=ax+b,a和b有无穷多可能,要选出最好的a和b,如何选?
交叉验证:
性能矩阵:混淆矩阵
超参数优化:参数可以通过学习来得到。
在学习之前要指定参数,超参数就是需要在模型训练之前事先指定的参数叫做超参数。
比如在给定一个算法之前要指定迭代次数,如果迭代次数满足指定就要停止迭代。
六.模型选择–泛化性能体现
- 首先看数据
- 泛化
- 模型选择的—奥卡姆剃刀原则
七.机器学习三要素数学理论补充
1.数学基础补充
期望难以计算,所以引出经验风险来替代损失函数–期望
求解时会遇到一些问题:如果模型发生过拟合,就要加上正则项降低模型复杂度,即加上正则罚项,引出结构风险
2.正则化
八.交叉验证
- 简单交叉验证
- 10则交叉验证
训练出10个模型,哪个模型效果好就选哪个模型。 - 留1验证
九.机器学习的最佳时机
1.机器学习基础
2.机器学习成熟库
- Scikit-learn
Classification:分类,Regression:回归,Clustering:聚类。Dimensionality reduction:降维,Model selection:模型选择,Preprocessing:预处理。 - SparkMIIIB
- R与SparkR
- Weka
- R和Python之争