机器学习与大数据基础知识(二)

本文全面介绍了机器学习的基础知识,包括数据集处理、特征工程、模型选择与评估、正则化及交叉验证等核心概念。深入探讨了监督学习、无监督学习、半监督学习和强化学习的不同应用场景,以及如何设计和优化机器学习系统。
摘要由CSDN通过智能技术生成

目录

数据集

如何对二分类问题进行评价?

机器学习的步骤

机器学习分类

机器学习三要素

如何设计机器学习系统

模型选择-泛化性能体现

正则化 

交叉验证

库介绍


数据集

  • 数据集的行:样本

  • 数据集的列:特征

  • 特征组成的空间:特征或属性空间

  • 组成属性空间中的点:特征或属性向量

  • 将数据集切分成训练集和测试集,使用训练集+算法构成模型解决实际问题

非数值特征如何处理?

非数值特征需要通过labelcoder和onehotencoder转化为数值型变量,注意使用onehotencoder需要将维度扩大

序号颜色花瓣直径(cm)分类
11.5玫瑰
21.2牵牛花
31.3牵牛花
  • labelencoder标签编码(红:0,蓝:1,黄:2)

序号颜色花瓣直径(cm)分类
101.5玫瑰
211.2牵牛花
321.3牵牛花
  • onehot encoder 独热编码(红:100,黄:010,蓝001)

序号花瓣直径(cm)分类
11001.5玫瑰
20011.2牵牛花
30101.3牵牛花

如何对二分类问题进行评价?

  • 绝对值误差函数

  • 平方误差函数

  • 训练误差:关于训练集的平均损失

  • 测试误差:关于测试集的平均损失

  • 泛化误差:对新数据误差

        性能矩阵(混淆矩阵)

 postivenegative
postivePPPN
negativeNPNN

 

  • Accuraccy 准确率=(PP+NN)/ALL

  • Precsition精确率=PP/(PP+NP)

  • Recall=Tpr 真正率或召回率=PP/(PP+PN)

  • Fpr假正率=NP/(NP+NN)

  • F1-Score精确率和召回率的调和平均数=2/(1/精确率 + 1/召回率)=2PP/(2PP+PN+NP)

  • ROC曲线的AUC指标

 

机器学习的步骤

  1. 把数据拆分为训练集和测试集

  2. 用训练集和训练集的特征向量来训练算法

  3. 用学习来的算法运用在测试集上来评估算法

机器学习分类

概念学习:关于布尔函数的学习方式

有监督学习:有类别标签

  • 分类:目标标记为类别型数据

            决策树、KNN、SVM、Perception&&NeuralNetwork、Bayes、LogisticRegression

  • 回归:目标标记为连续性数值

            简单线性回归、多元线性回归、Lasso回归、Ridge回归、ElasticNet

无监督学习:无类别标签

  • 聚类:通过特征之间的相似性

  • 降维:通过机器学习算法到达降维目的,区别于特征选择

半监督学习:有的有标签,有的无标签

  • 主动学习(专家系统)

  • 纯半监督学习(预测新数据)/直推学习(预测无标签数据)

强化学习:解决连续决策问题
迁移学习:解决小数据集和个性化问题

 

机器学习三要素

机器学习模型=数据+算法+策略

  • 机器学习模型:y=ax+b

  • 策略:什么样的模型是好的模型

  • 算法:如何找到最优的a和b

模型

  • 决策函数:结果为类别标签 —— F={f|Y=f(X)}

  • 条件概率分布:结果为概率模型 —— F={P|P(Y|X)}

策略

  • 0-1损失函数:用于分类

  • 平方损失函数:用于回归

  • 绝对值损失函数:分类或回归

  • 对数损失函数

  • 指数损失

 

损失函数期望越小越好,但求解损失函数p(x,y)不容易求解。

从而提出了一系列概念。经验损失=平均损失--->当数据量足够大时,经验风险最小化=平均损失最小化--->结构风险:在经验风险的基础上增加正则罚项,使结构风险最小化。以下是一些详细概念

期望损失

经验损失/平均损失---->平均/经验损失最小化

 

结构风险-->结构风险最小化

 

  • 决策函数:损失函数就是平方损失

  • 条件概率:极大似然估计:经验损失=平均损失

  • 参考图示:随着模型的复杂度增加,模型在训练集上的误差越小,但是模型在测试集上的误差先减小然后增加,这里需要找到一个合适的点,该点需要模型具备很好的泛化能力,因此得到了结构风险最小化的点对应的就是求解最佳的点,该点对应的参数即为所求解参数

算法

  • 解析解---平常方法

  • 最优解---梯度下降放(最优解)、牛顿法

 

如何设计机器学习系统:

  • 首先明确:该问题是否是机器学习问题?--是;该问题是机器学习问题的哪方面?--监督学习,非监督学习

  • 当拿到数据之后从下面两个角度思考问题:从数据角度思考:根据具备的数据能够看出是监督学习还是无监督学习;从业务的角度思考:根据业务部门指定的业务方向

特征工程

  • 对特征处理

  • 对数据处理

 

模型选择-泛化性能体现

对于多个模型如何选择?

模型的泛化能力

  • 欠拟合:模型在训练集和测试集的效果都很差 60% 58%

  • 过拟合:模型在训练集上的效果好,但在测试集上效果差 100% 40%

欠拟合

  • 欠拟合出现原因:模型过于简单

  • 欠拟合出现场景:模型的训练初期

  • 欠拟合解决办法:增加模型多项式项、增加模型多项式项的次数、减少正则罚项

过拟合

  • 过拟合出现原因:模型过于复杂、数据不纯、训练数量太少

  • 过拟合出现场景:出现在模型训练的中后期

  • 过拟合解决办法:针对模型过于复杂的--增加正则罚项、针对数据不纯的重新清洗数据、训练数据少的增加训练的数据量、对样本进行抽样或特征进行抽样、dropout随机丢弃一些点(深度学习)

奥卡姆剃刀原则:具有两个相同泛化误差的模型,较简单的模型比较复杂的更可取

 

正则化 

  • 目的:为了降低模型的复杂度

  • L1正则=损失函数后加上λ|ω|

  • L2正则=损失函数后加上λ|ω|**2

交叉验证

在机器学习中常用的精度测试方法,叫做交叉验证。它的目的是得到可靠稳定的模型,具体做法是拿出大部分数据进行建模,留小部分样本进行预测,并求出这些小部分样本中的预测误差,交叉验证在克服过拟合的问题上非常有效。

  • 简单交叉验证

         将数据集切分为:训练集和测试集=7:3  6:4  8:2

  • K则交叉验证

        将数据集平均随机切分成K等分,将其中一份数据作为测试集,其余数据作为训练集,训练K个模型,得到平均准确率

  • 留一验证

        特殊的K则交叉验证。每次只留一个样本作为测试集

 

库介绍

  • 基于Python的sklearn库

  • 基于spark的mllib库

  • 基于spark的sparkR库

  • 基于Java的Weka库

深度学习库

  • 基于java的dl4j库

  • 基于python的tensorflow

  • 基于tensorflow之上的pytorch、keras等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值