机器学习理论基础2笔记
在学习机器学习之前熟悉一下机器学习相关的词,对今后的机器学习有一定的帮助,使得我们能够更为清晰的认识机器学习
此次的笔记只是一种简要的概括,具体的可以参照博客https://www.csdn.net/gather_27/MtTacg5sOTg2Ni1ibG9n.html
当然还有其它的,只要我们能够学到好东西就可以收藏。
机器学习关于数据集的概念
什么样的数据集
数据集的行---样本
数据集的列---特征
特征组成的空间---特征或属性空间
组成属性空间中的点---特征或属性向量
将数据集切分成训练集和测试集
使用训练集+算法构成模型解决实际问题
误差:进行校验结果情况
如果对于非数值的特征,需要进行特征转换
如何对二分类问题进行评价?
绝对值误差函数
平方误差函数
训练误差:机器学习模型在训练数据集上表现出的误差叫做训练误差
测试误差: 模型在测试集上的错分率
泛化误差:在任意一个测试数据样本上表现出的误差的期望值叫做泛化误差
性能矩阵(混淆矩阵)
https://blog.csdn.net/u013063099/article/details/80964865该链接对以下的名词解释比较详细,有图有公式
准确率Accuracy
精确率Precision
召回率=真正率TPR(true positive rate)
假正率FPR(false negative rate)
F1-Score(F1值): 精确率和召回率的调和平均
F1 score=2/(1/pre + 1/recall) = 2*pre*recall/(recall+pre)
ROC(受试者工作曲线) 曲线:AUC(Area under Cruve) [0,1]
机器学习基本概念
基本概念:训练集、测试集、特征值、监督学习、非监督学习、半监督学习、分类、回归
训练集(training set/data)/训练样例(training examples):用来进行训练,也就是产生模型或者算法的数据集。
测试集(testing set/data)/训练样例(testing examples):(通常只知道特征,用来进行预测)用来专门进行测试已经学习好的模型或者算法的数据集。
特征向量(features/feature vector):属性的集合,通常用一个向量来表示,属于一个实例。
标记(label):c(x),实例类别的标记。
正例(positive example)
反例(negative example)
分类(classification):
目标标记为类别型数据(category)
回归(regression):
目标标记为连续性数值(continuous numeric value)
初识机器学习分类
有监督学习(supervised learning): 训练集有类别标记(class label)
无监督学习(unsupervised learning): 无类别标记
半监督学习(semi-supervised learning):有类别标记的训练集 + 无标记的训练集
机器学习步骤框架
- 把数据拆分为训练集和测试集
- 用训练集和训练集的特征向量来训练算法
- 用学习来的算法运用在测试集上来评估算法(可能要涉及到调整参数(parameter tuning)--(验证集(validation set)))
机器学习分类详解
监督学习、非监督学习、半监督学习、强化学习、迁移学习、深度强化迁移学习
监督学习(supervised)是指训练数据集中的每个样本均有一个已知的输出项(类标label)
输出变量为连续变量的预测问题称为回归(regression)问题(西瓜的成熟度)。
输出变量为有限个离散变量的预测问题称为分类问题(西瓜的分类)。
监督学习和无监督学习区别:是否有类别标签
监督学习
是否具备连续的预测值
分类
回归
无监督学习(非监督学习)
- 聚类(KMeans)
在没有类别标签的情况下,通过特征之间的相似性或向异性进行分类
- 降维
根据算法将高维特征降低到了低维特征,低维度的特征不具备可解析性行
聚类的假设:将有标记的样本和无标记的样本混合在一起,通过特征之间的相似性
样本分成若干个组或若干个簇,使得组内的相似性较大,组间的相异性较大,将样
本点都进行分组,此时,分组的样本点即包含了有类别标签的也包含没有类别标签
根据有类别标签的样本,按照少数服从多数的投票原则对没有加标记的样本添加标
记。至此,所有的未标记数据都可以分配标记。
半监督学习:
主动学习
纯半监督学习/直推学习
强化学习
是机器学习的一个重要分支,主要用来解决连续决策的问题。
迁移学习
解决小数据集和个性化问题
深度(特征)+强化(连续决策)+迁移(模型的适应性问题)
机器学习三要素详解及概念强化
统计学习=模型+策略+算法
模型:规律y=ax+b
策略:什么样的模型是好的模型?损失函数
算法:如何高效找到最优参数,模型中未知的参数a,b
机器学习模型=数据+算法+策略
数据:
算法:提供求解参数的方法
解析解—平常方法
最优解—梯度下降法(最优解)、牛顿法
策略:损失函数
模型学习模型=模型+算法+策略
模型:
决策函数—输出0或1
条件概率函数—按照概率进行输出
模型—寻找规律
机器学习中,首先要考虑学习什么样的模型,在监督学习中,如模型(y=ax+b)
就是所要学习的内容
模型通常分为决策函数或条件概率分布
由决策函数表示的模型为非概率模型,由条件概率分不表示的模型为概率模型
策略—模型好不好
评估模型的好坏,使用损失函数来进行度量,模型给出的值与实际真实值存在的差别。
算法
机器学习的算法就是最优化问题的算法。如果最优化问题有显示的解析解,这个最优化问题就比较简单,但通常这个解析解不存在,所以就需要利用数值计算额方法来求解。
机器学习可以利用已有的最优化算法,也可以开发独自的最优化算法。
如何设计机器学习系统
首先明确:
该问题是否为机器学习问题?
该问题是机器学习哪方面的问题?--监督学习,无监督学习
当拿到数据之后从下面两个角度思考问题:
从数据角度思考:
根据具备的数据看能够做监督学习or无监督学习or半监督学习
从业务的角度思考:
根据业务部门指定的业务方向,整理数据,从而建模
特征工程
对特征处理
对数据处理
数据+选择的算法è模型
通过测试集模型,给定最终模型
如果有新数据,通过模型给出预测结果
泛化
模型具有好的泛化能力指的是:模型不但在训练数据集上表现的效果很好,对于新数据的适应能力也有很好的效果。
泛化能力的表现:过拟合和欠拟合
过拟合overfitting:模型在训练数据上表现良好,在未知数据或者测试集上表现差。
欠拟合underfitting:在训练数据和未知数据上表现都很差。
- 欠拟合
模型在训练集和测试集的效果都很差
A:60% B:58%
欠拟合出现的原因:模型过于简单
欠拟合出现的场景:模型训练初期
欠拟合解决办法:
增加模型的多项式的项
增加模型多项式的次数
减少正则罚项
- 过拟合
模型在训练集上的效果很好,但是测试效果很差
A:100% B: 80%
A:100% B: 40%
过拟合的出现原因:模型过于复杂,数据不纯、训练数据量太少
过拟合出现的场景:出现在模型训练的中后期
过拟合解决办法:
针对模型过于复杂的特性,增加正则罚项了,L1,L2
重新清洗数据
增加训练数据量
对样本抽样或特征进行抽样
dropout—随机丢弃一些点(深度学习)
模型的选择—奥卡姆剃刀原则是模型选择的基本而且重要的原则
给定两个具有相同泛化误差的模型,较简单的模型比复杂的模型更可取
机器学习三要素数学理论补充
数据
算法
策略
这里的策略缩小到损失函数
损失函数、目标函数、误差函数(这三个指的是一个意思)
损失函数越小越好
损失函数的期望是:
损失函数的期望越小越好P(x,y)不易求解
监督学习的两个基本策略:1.经验风险最小化 2.结构风险最小化
经验损失------平均损失------经验风险最小化
结构风险------在经验风险基础上增加了正则罚项------结构风险最小化
随着模型的复杂度的增加,模型在训练集上的误差越小,但是模型在测试集上
的误差先减少然后增加,这里需要找到一个适合的点,该点需要模型具备很好
泛化误差能力,因此得到了结构风险最小化的点对应的就是求解的最佳点,该
点对应的参数即为所求解参数
正则化
正则项
目的:为了降低模型的复杂度
有几个正则项:
L1正则项、L2正则项
https://blog.csdn.net/coderTC/article/details/78452300讲述了两者的区别
交叉验证
简单交叉验证:
将数据集切分为:训练集和测试集 7:3 6:4 8:2
K则交叉验证:
将数据集平均随机切分为K等份,将其中一份数据作为测试集,训练K个模型,得
平均准确率
留一验证:
特殊的K则交叉验证