数据挖掘中的机器学习
机器学习的含义
机器学习的核心目标是从经验数据中推导出规律,并将这种规律运用于新的数据中。我们把机器从经验数据中推导并找到规律的这一过程称为“学习”,把将规律应用于新数据这一过程称为“预测”,其中的规律称为“模型”。
机器学习处理的问题
监督学习
分类
分类的经验数据属于两个或更多个标记类别
回归
无监督学习
机器学习的框架
人类学习步骤:
选择知识
选择学习方法
学习或记忆
运用
评测学习效果
知识保存到脑海中
使用Python第三方模块Scikit-learn来构建机器学习的基本框架,机器学习的步骤:
数据的加载
选择模型
模型的训练
模型的预测
模型的评测
模型的保存
数据的加载和分割
启动一个python解释器,然后加载iris和digits数据集。
数据集是一个类似字典的对象,它保存有关数据集的所有数据和一些样本特征数据,通常储存在.data成员中。而在监督的学习中,一个或多个标记类别存储在,.target成员中。列如在digits数据中,digits.data保存的是分类的样本特征。
而digit.target表示数据集内每个数字的真实类别,也就是我们期望从每个手写数字图像中的学得到相应的数字标记。
在训练有监督的学习的机器学习模型的时候,会将数据划分为训练集和测试集,划分比例一般为0.75:0.25。对原始数据进行两个集合的划分,是为了能够选出效果(可以理解为准确率)最好的、泛化能力最佳的模型。
机器学习是从数据的属性中学习经验,并将它们运用到新数据的过程。
训练集的作用是用来拟合模型。
通过训练集,使用测试集进行模型预测。
机器学习的模型
模型的选择
数据的大小、质量及性质
可用计算时间
任务的紧迫性
数据的使用用途
学习和预测
从数据中学得模型的过程称为“学习”,这个过程通过执行某个学习模型算法来完成。模型对应了关于数据的某种潜在的规律,亦称“假设”;这种潜在规律则称为“真相”或“真实”,学习过程就是为了找出或逼出真相。
实现机器学习模型
模型的评估和保存
分类、回归、聚类不同的评判指标
把模型的实际预测输出与样本的真实输出之间的差异称为“误差”,模型在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”。我们希望得到泛化误差小的模型。我们事先并不知道新样本是什么,实际能做的就是努力使经验误差最小化。得到一个经验误差很小、在训练集上表现很好的模型。
评判性能:依据不同的模型选择不同的评判标准。
分类、回归、聚类关心的常用指标
准确率:分类器正确分类的样本数及总样本数之比
AUC是一个概率值。对应的AUC更大的分类器效果更好
回归分析中我们关心的常用指标有
均方误差(MSE)差平方
平均绝对误差(MAD)绝对值,反映了实际预测误差的大小。
交叉验证
模型在训练集上表现良好,往往其在测试集上也可能会出现表现不佳的情况。
测试集的反馈足以推翻训练模型,并且度量不再能有效地反映模型的泛化性能。
验证集:解决问题
交叉验证是将数据集D划分为k个大小相似的互斥子集飞空切,ai不等于解,每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到,调用cross_val_score辅助函数。
支持向量机
支持向量机可用于监督学习算法分类、回归和异常检测。
支持向量机有以下特点:
支持向量机的优势:
在高维空间中非常有效
即使在数维度比样本数量大的情况下仍然有效
在决策函数(称为支持向量)中使用训练集的子集,因此它也是高效利用内存的。
支持向量机的缺点:
如果特征数量比样本数量大得多,在选择核函数时要避免过拟合
支持向量机通过寻找支持向量找到最优分割平面,是典型的二分类问题,因此无法解决多分类问题
不直接提供概率估计
实现支持向量机分类
支持向量机的决策函数取决于训练集的一些子集,称作支持向量。
过拟合问题
过拟合
学习计把训练样本学得“太好”的时候,把训练本身的一些特点当作所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。这种现象在机器学习中称为“过拟合”,欠拟合是指对训练样本的一般性质尚未学好,具体表现就是最终模型在训练集上效果好、在测试集上效果差,模型发能力弱。
过拟合问题产生的原因:
使用的模型比较复杂,学习能力过强
有噪声存在
数据量有限
解决过拟合的办法
提前终止(当验证集上的效果变差的时候)
数据集扩增
寻找最优参数