数据挖掘算法基础(一)

机器学习算法基础

引言

引入NLP的算法体系,当前的主流算法可以分为两类:

  1. 传统的基于统计学的机器学习算法体系。
  2. 人工神经网络算法体系。
    很多机器学习算法经常应用到NLP相关的任务中,例如用朴素贝叶斯、支持向量机、逻辑回归等方法进行文本分类,用k-means方法进行文本聚类等。
    近几年,人们对大脑和语言的内在机制了解的越来越多,也能够从更高的层次上观察和认知思维现象,由此形成了一套人工神经网络的算法体系。
    本章将介绍机器学习算法和人工神经网络算法的概念、原理和方法。

分类算法

分类算法就是根据对象的特征或属性,将其划分到已有的类别中。比如邮件分类,网页内容分类等。常用的算法如决策树、朴素贝叶斯以及支持向量机SVM等分类算法。

朴素贝叶斯模型

朴素贝叶斯方法是基于贝叶斯定理特征条件独立假设的分类方法。对于给定的训练集合,首先基于特征条件独立学习输入、输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯方法简单,学习与预测的效率都很高,是常用的方法。
基本方法如下:
(1)确定特征属性,获取训练样本集合。
在这里插入图片描述
(2)计算各类别的先验概率。
在这里插入图片描述
(3)计算各类别下各特征属性的条件概率。
在这里插入图片描述
(4)计算各类别的后验概率
在这里插入图片描述
(5)以后验概率的最大项作为样本所属类别。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

决策树模型

决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。由于这种决策分支画成图形很像一棵树的枝干,故称为决策树。决策树的生成算法主要有ID3、C4.5和C5.0生成树算法。在这里插入图片描述
决策树是一个树结构,每个非叶节点表示一个特征属性,每个分支边表示这个特征属性在值域上的取值,叶节点存放一个类别。
决策过程:从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,知道达到叶子节点,将叶子节点存放的类别作为决策结果。
ID3算法生成决策树过程:
(1)从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同值建立子节点;
(2)对子节点递归地调用以上方法,构建决策树;
(3)直到所有特征的信息增益很小或则没有特征可选择为止,最后得到一颗决策树;
信息熵是接收的每条信息中所包含信息的平均量,是不确定性的度量。香农将随机变量X的熵值定义H(X)如下:
在这里插入图片描述
信息增益:用来衡量一个属性区分样本的能力。当使用某一个属性作为一颗决策树的根节点时,该属性的信息增益越大,这颗决策树也就越简洁。信息增益是信息熵H的变形,定义如下:
在这里插入图片描述
在这里插入图片描述

支持向量机模型

支持向量机(SVM)是用来解决分类问题的。作为数据挖掘领域中一项非常重要的任务,分类目前在商业上应用最多。而分类的目的是构造一个分类任务或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个,从而可以用于预测未知类别。
通俗的说,支持向量机的最终目的是在特征空间中寻找到一个尽可能将两个数据集合分开的超级平面。之所以名字里面加上了前缀“超级”,是因为我们的数据特征空间很有可能是高维度空间,而且我们希望这个超级平面能够尽可能大的将两类数据分开。
支持向量机可以分为
线性可分支持向量机
(硬间隔支持向量机)和非线性可分支持向量机(软间隔支持向量机)。支持向量机算法已经应用在很多领域,例如文本分类、图像分类、数据挖掘、手写数字识别、行人检测等,且其可应用的领域还远远不止这些。
支持向量机是一种监督学习方法,主要思想是建立一个最优决策超平面,使得该平面的两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。
SVM算法的优点:可用于线性可分,也可用于回归;低泛化误差;推导过程优美,容易理解;计算复杂度低。
SVM算法的缺点:对参数选择比较敏感;原始的SVM只擅长处理二分类问题。
以上的方法只能解决线性可分的问题,遇到线性不可分的问题需要引入核函数,将问题转化的高维空间。

逻辑回归模型

逻辑回归算法常用于数据挖掘、疾病自动诊断、经济预测等领域。逻辑回归算法是一种广义的线性回归方法,其仅在线性回归算法的基础上套用了一个逻辑函数,从而对事件发生的概率进行预测。
逻辑回归算法的步骤如下所示:

  1. 加载数据文件。
  2. 数据预处理,生成多项式特征。由于最简单的二分类问题只有一阶特征,决策边界为一条直线,可以不考虑本步骤。而现实中的样本,往往需要拟合一条曲线来划分数据,即多项式拟合。多边形边界需要将特征转换为多项式,进而更改样本的分布状态,使之能拟合更复杂的边界,例如圆或者其它不规则图形。
  3. 初始化参数,构建代价函数。
    在这里插入图片描述
  4. 用梯度下降法优化代价函数,确定参数。
    在这里插入图片描述
  5. 构建预测函数,求概率值。
  6. 根据概率值画决策边界。

聚类算法

聚类算法是无监督学习的典型算法,不需要标签。试图探索和发现一定的模式,用于发现共同的群体,按照内在相似性将数据划分为多个类别使得类内相似性大,类间相似性小。应用场景包括新闻聚类、用户购买模式、图像与基因技术等。
常见的聚类算法包括:

  1. 原型聚类:原型聚类亦称为“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。
  2. 密度聚类:密度聚类亦称为“基于密度的聚类”,此类算法假设聚类结构能通过样本分布的紧密程度确定。
  3. 层次聚类:层次聚类算法试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。

原型聚类——k-means算法

原型聚类亦称为“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示、不同的求解方式,将产生不同的算法。下面介绍经典的原型聚类算法k-means也称为k均值法。下面介绍经典的原型聚类算法k-means也称为k均值法。
算法思想就是首先随机确定k个中心点作为聚类中心,然后把各个数据点分配给最邻近的中心点,分配完成后将中心点移动到所表示的聚类的平均中心位置处,然后重复迭代上述步骤,直到分配过程不再产生变化位置。
k-means算法采用距离作为相似性指标,认为簇由靠近的对象组成,因此两个对象的距离越近,则其相似度越高。而不同的距离度量会对聚类的结果产生影响,常见的距离度量如下:
在这里插入图片描述
K-means算法流程:
在这里插入图片描述

  1. 随机选择K个随机的点(称为聚类中心);
  2. 对与数据集中的每个数据点,按照距离K个中心点的距离,将其与距离最近的中心点关联起来,与同一中心点关联的所有点聚成一类;
  3. 计算每一组的均值,将该组所关联的中心点移动到平均值的位置;
  4. 重复执行2-3步,直至中心点不再变化;

密度聚类——DBSCAN算法

基于密度聚类的方法:

  1. 密度聚类假设聚类结构能通过样本的紧密程度确定,同一类别的样本,他们之间是紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。
  2. 从样本密度出发考虑样本间的可连接性,然后基于可连接样本不断扩展聚类的簇实现聚类的目的。

DBSCAN算法流程

  1. 给定包含 n 个对象的数据集 D ,邻域为 ϵ,密度阈值为 MinPts
  2. 首先找到所有的核心对象
  3. 根据 (ϵ,MinPts) 对 n 个对象进行搜索,寻找所有的核心对象,构成核心对象集合。
  4. 根据上述的核心对象寻找 D 中所有密度相连的样本,构成簇,若上述核心对象已被访问,则剔除出去。
  5. 重复上述过程,直至核心对象集合为空。

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法):基于一组“邻域”参数 (ϵ,MinPts) 来刻画样本分布的紧密程度。
令 MinPts=3,且虚线显示出 ϵ 邻域。
x_1 为核心对象
x_2 由 x_1 密度直达
x_3 由 x_1 密度可达
x_3 与 x_4 密度相连
在这里插入图片描述
在这里插入图片描述

层次聚类

层次聚类算法试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。
AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看做一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。这里的关键是如何计算聚类簇之间的距离。实际上,每个簇是一个样本集合,因此,只需采用关于集合的某种距离即可。可通过下面的式子来计算距离:
在这里插入图片描述
AGNES算法流程:

  1. AGNES(Agglomerative NESting)算法最初将每个对象做为一个簇,然后这些簇根据某些准则被一步步的合并,使用单链接方法;
  2. 两个簇间的相似度由这两个不同簇中距离最近的数据点对的相似度来确定。此外当两个簇最近距离超过用户给定的阈值时聚类过程就会终止;
  3. 聚类的合并过程反复进行直到所有的对象最终满足簇数据。AGNES算法生成的树状图如图所示:
    在这里插入图片描述

模型的评估与选择

经验误差与过拟合

一般在分类问题中,我们把分类错误的样本数占样本总数的比例称作**“错误率”(error rate),(1-error rate)称作精度,即:精度=1-错误率。更一般地,我们把模型的预测输出与样本的真实输出之间的差异称作“误差”(error),模型在训练集上的误差称作训练误差**,也叫经验误差;在新样本上的误差称作泛化误差
当模型把训练样本学得“太好”时,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样会致使泛化性能的下降,这种现象在机器学习中称作**“过拟合”(overfitting),与过拟合相对的是“欠拟合”(underfitting)**,欠拟合是指对训练样本的一般性质尚未学好。
导致过拟合的原因:最常见的情况是由于学习能力过于强大,以至于把训练样本包含的不太一般的特性都学到了,而欠拟合通常是由于学习能力不足引起的。
欠拟合较为容易克服,例如在决策树学习中扩展分支、在神经网络学习中增加训练轮数等,而过拟合问题的解决较为麻烦,也是机器学习面临的关键障碍,各类学习算法都会有针对过拟合的措施,但是过拟合是无法完全避免的,我们能做的只是“缓解”。
过拟合与欠拟合对比

评估方法

在这里我们通常将已有的数据集划分为训练集和测试集两部分,其中训练集用来训练模型,而测试集则是用来评估模型对于新样本的判别能力。对于数据集的划分,我们通常要保证满足以下两个条件:
(1)训练集和测试集的分布要与样本真实分布一致,即训练集和测试集都要保证是从样本真实分布中独立同分布采样而得;
(2) 训练集和测试集要互斥。
基于以上两个条件主要有三种划分数据集的方式:留出法,交叉验证法和自助法

留一法

留出法”(hold-out)直接将数据集D划分为两个互斥集合,其中一个集合为训练集S,另一个作为测试集T,即:
训练集和测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。如数据集D包含1000个正样本,1000个负样本,数据集D划分为70%样本的训练集和30%样本的测试集,为了保证训练和测试正负样本的比例与数据D比例相同,采用分层抽样的方法,先从1000个正样本随机抽取700次,1000个负样本随机抽取700次,然后剩下的样本集作为测试集,分层抽样保证了训练集的正负样本的比例与数据集D的正负样本比例相同。
留出法的另一个问题是训练集S和测试集T是从数据集D随机抽样得到的,因此偶然性较大,需要多次进出留出法计算每次的测试误差率,然后对每次的测试误差率求平均,减小偶然因素。

交叉验证法

“交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集。
每个子集通过分层采样得到(如上节所述,为了保证正负样本的比例与数据集D的比例相同),然后用k-1个子集的并集作为训练集,余下的子集作为测试集;这样就获得k组训练/测试集,从而进行k次训练和测试,最后返回的是这k个测试结果的均值。通常把交叉验证法称为“k折交叉验证法”,k最常用的取值是10,此时称为10折交叉验证。
初始数据集的概率分布:
在这里插入图片描述
十折交叉验证的第一折的训练集的概率分布:在这里插入图片描述
十折交叉验证的训练集只包含了初始数据集的90%,训练数据集和初始数据集的概率分布不一样,因此用十折交叉验证估计的模型存在估计偏差。

自助法

我们希望评估的是用原始数据集D训练出的模型,但是留出法和交叉验证法训练的数据集比原始的数据集D小,这必然会引入因训练数据集不同导致的估计偏差,留一法受训练样本规模变化的影响较小,但是计算复杂度太高。
**“自助法”(bootstrapping)**是有放回抽样,给定包含m个样本的数据集D,我们对它进行采样产生数据集D’ :每次随机从D中挑选一个样本,将该样本拷贝放入D’ ,然后再将该样本放回初始数据集D中,下次抽样时仍然有可能被采到;重复执行m次该过程,我们就得到了包含m个样本数据集D’ ,这就是自助采样的结果。初始数据集D中有一部分样本会在数据集 D’ 中多次出现,也有一部分样本不会在数据集 D’中出现。

性能度量

错误率和精度

错误率和精度是分类任务中最常用的两种性能度量。错误率是指分类错误的样本数占样本总数的比例。精度是指分类正确的样本数占样本总数的比例。对样例集D,分类错误率定义为:
在这里插入图片描述
精度定义为:
在这里插入图片描述
在这里插入图片描述

查准率、查全率和F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例、假正例、真反例和假反例四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。分类结果的混淆矩阵如下表所示。
在这里插入图片描述
查准率P和查全率R的定义:
在这里插入图片描述
在这里插入图片描述

ROC和AUC曲线

ROC曲线全称“受试者工作特征曲线”(Receiver Operation Characteristic Curve)。ROC曲线就是以TPR(true positive rate) 和FPR(false positive rate)为轴,取不同的阈值点画的。它源于“二战”中用于敌机检测的雷达信号分析技术,二十世纪六七十年代开始被用于一些心理学、医学检测中,此后被引入机器学习领域。
ROC:纵轴:真正例率TPR;横轴:假正例率FPR。
AUC是ROC曲线下的面积。一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting,这个时候调模型可以只看AUC,面积越大一般认为模型越好。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值