机器学习-分类简单介绍

一 分类概述

分类在数据挖掘中是一项很重要的任务。分类的目的是学会一个分类函数或分类模型(也经常称作为分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类别。

分类属于一种有指导的学习,模型的学习是在被告知每一个训练样本属于哪个类的“指导”下进行的。并随机的从样本群选取。每一个训练样本另一个特定的类标签与之相应,它不用于无指导的学习(聚类)。

二 分类器

分类器的构造方法有统计方法、机器方法、神经网络方法等。

统计方法

包含贝叶斯和非參数法。常见的临近学习或基于事例的学习属于非參数方法。相应的知识表示则为判别函数和原型事例。

机器学习方法

包含决策树法和规则归纳法。

前者相应的表示为决策树或判别树,后者则有决策表和产生式规则等。

神经网络方法

主要是BP算法,它的模型表示是前向反馈神经网络模型(由代表神经元的结点和代表联接权值的边组成的一种体系结构),BP算法本质上是一种非线性判别函数

另外,很多技术,如粗糙集等,都能够用于分类器构造中。

分类方法归结为四种类型:基于距离的分类方法(最临近方法)、决策树分类方法(ID3和C4.5算法)、贝叶斯分类方法(朴素贝叶斯算法和EM算法)和规则归纳(AQ算法、CN2算法和FOIL算法)等。

要构造分类器,须要有一个训练样本数据作为输入。

分类的目的是分析输入数据。通过在训练集中的数据表现出来的特性。为每个类找到一种准确的描写叙述或者模型。

一般地,数据分类分为两个步骤,建模和使用:

1. 建立一个模型,描写叙述预定的数据集或概念集

2. 使用模型进行分类

注:使用模型前须要评估模型的预測准确率。保持(Holdout)方法是一种使用类标号样本測试集的简单方法。这些样本随机选取,并独立于训练样本。模型在给定的測试集上的准确率是被模型正确分类的測试样本的百分比。对于每一个測试样本,将已知的类标号与该样本的学习模型类预測比較。假设模型的准确率依据训练数据集进行评估。评估可能是乐观的,由于学习模型倾向于过分拟合数据。

因此,使用交叉验证来评估模型是比較合理的。

三  朴素贝叶斯分类

贝叶斯分类是统计分类方法。基本思想:首先计算每一个分类的先验概率。然后在每种分类上计算待分类样本的后验概率。在哪个分类上的后验概率大就属于哪个分类。

贝叶斯分类器的分类是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,所谓的后验概率也就是该对象属于某一类的概率,然后选择具有最大后验概率的类作为该对象所属的类。即在哪个分类上的后验概率大就属于哪个分类。

朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。

每一个数据样本用一个n维特征向量表示。分别描写叙述对n个属性A1,A2,A3,......,An样本的n个度量。

假定有m个类C1,C2,......,Cm,给定一个不知类别的数据样本X,分类器将预測X属于具有最高后验概率(条件X下)的类。也就是说朴素贝叶斯分类将未知的样本分配给类Ci(1<=i<=m)当且仅当P(Ci | X) > P(Cj | X)。对随意的j=1,2,.....,m,j!=i.这样最大化的P(Ci|X)相应的类Ci称为最大后验假定,而P(Ci|X)能够依据以下的贝叶斯定理来确定:

因为P(X)对于全部类为常数。仅仅须要P(X|Ci)P(Ci)最大就可以。如果Ci类的先验概率未知,则通常假定这些类是等概率的。即P(C1)=P(C2)=.....=P(Cm),如果不是等概率。那么类的先验概率能够用P(Ci)=Si/S计算,当中Si是类Ci中的训练样本数,而S是训练样本总数。

因此问题就转化为对P(X|Ci)的最大化。P(X|Ci)常被称为给定Ci时数据X的似然度,而使P(X|Ci)最大的如果Ci称为最大似然如果。

给定具有很多属性的数据集,计算P(X|Ci)的开销是可能很大。为减少计算P(X|Ci)的开销,能够做类条件独立的朴素假定。

给定样本的类标号,假定属性值相互条件独立。即在属性间不存在依赖关系。

这样:

                                             

当中概率P(x1|Ci)、P(x2|C2)、P(x3|C3),.....,P(xn|Cn)能够由训练样本估值。

假设Ak是离散属性。则P(xk|Ci) = sik/si,当中sik是在属性Ak上具有值xk的类Ci的训练样本数,而si是Ci的训练样本数。

三 决策树分类

从数据中生成分类器的一个特别有效的方法是生成一个决策树(Decision Tree),决策树表示方法是应用最广泛的逻辑方法之中的一个。它从一组无序、无规则的事例中推理出决策树表示形式的分类规则。

决策树方法採用自顶向下的递归方式,在决策树的内部结点进行属性值的比較并依据不同的属性值推断从该结点向下的分支,在决策树的叶节点得到结论。

决策树是一个类似于流程图的树结构,当中每一个内部结点表示在一个属性上的測试,每一个分支代表一个測试输出,而每一个树叶结点代表类或类分布。

树的最顶层结点是根结点。一棵典型的决策树例如以下图所看到的。内部结点用矩形表示,而树叶节点用椭圆表示。为了对未知的样本分类,样本的属性值在决策树上測试。

 决策树从根到叶结点的一条路径就相应者一条合取规则。因此决策树easy转换成分类规则。

多叉树的内部结点是属性,边是该属性的全部取值,有几个取值,就有几条边。

数据的叶子结点都是类别标记。

决策树是应用很广泛的分类方法。眼下有多种决策树方法,如ID3、CN2、SQIQ、SPRINT等。大多数已开发的决策树是一种核心算法的变体。

 ID3算法是一种经典的决策树学习算法,由Quinlan于1979年提出。ID3算法的基本思想是,以信息熵为度量,用于决策树节点的属性选择,每次优先选取信息量最多的属性,亦即能使系统熵值变为最小的属性,以构造一颗熵值下降最快的决策树,到叶子节点的熵值为0,此时。每一个叶子节点相应的实例属于同一类。

决策树分类算法通常分为两个步骤,决策树生成和决策树修剪。

信息熵

  在信息论中。熵被用来衡量一个随机变量出现的期望值,它是随机变量的期望,用来度量信息的不确定程度。熵是整个系统的平均消息量。
一个系统越是有序,信息熵就越低;反之。一个系统越是混乱,信息熵就越高。所以,信息熵也能够说是系统有序化程度的一个度量。处理信息就是为了把信息搞清楚,就是熵降低的过程。

一个属性的熵越大。它蕴含的不确定信息越大。越有利于数据的分类。这样的信息理论方法使得对一个对象分类所需的期望測试数目达到最小,并尽量确保找到一棵简单的树来刻画相关的信息。

信息论中,事件ai的信息量(又叫信息本体)I(ai )可例如以下度量:

当中p(ai)表示事件ai发生的概率。如果有n个互不相容的事件a1,a2,a3,….,an,它们中有且仅有一个发生。则其平均的信息量(又叫先验熵)可例如以下度量:

设S是s个数据样本的集合。如果类标号属性具有m个不同的值。定义m个不同类

Ci(i=1,2,....,m)。设si是Ci中样本的个数。对一个给定的样本分类所需的期望信息量有以下

公式给出:

当中pi是随意样本属于Ci的概率,一般可用si/s来预计。

设属性A具有v个不同的值{a1,a2,...,av}。能够用属性A将S划分为v个子集{S1,S2,....Sv},其

中Sj包括S中这种一些样本,它们在A上具有值aj。假设用A作为測试属性(即最好的分裂

属性),则这些子集相应于包括集合S的结点生长出来的分支。

设sij是集合Sj中类Ci的样本数。依据由属性A划分子集的熵由下式给出:

充当第j个子集的权,而且等于字集(即A值为aj)中样本个数除以S中样本总数。

熵值越小,子集划分的纯度越高。说明选择属性A作为决策节点的效果
越好。

由期望信息和熵值能够得到相应的信息增益值。

对于在A上分支将获得的信息增益可

以由以下的公式得到:

信息增益就是这两个熵的差值。熵表示系统的不稳定程度。Gain(S,A)越大。系统熵减小的也就越快,表示条件A对于确定系统的贡献越大,说明选择測试属性A作为决策节点对分类提供的信息越多。系统趋于稳定的速度也更快。

ID3依据信息增益,运用自顶向下的贪心策略建立决策树。

信息增益用于度量某个属性对样本集合分类的好坏程度。

因为採用了信息增益,ID3算法建立的决策树规模比較小。查询速度快。

ID3算法缺点


 信息增益度度量存在一个内在偏置。它偏袒具有较多值的属性
。举一个极端的例子。假设有一个属性为日期,那么将有大量的值,太多的属性值把训练例子切割成非成小的空间,单独的日期就可能全然预測训练数据的目标属性。因此。这个属性可能会有很高的信息增益。该属性可能会被选为根结点的决策属性并形成一棵深度为一级但却很宽的树,这棵树能够理想的分类训练数据。可是这个决策树对于測试数据的分类性能可能会很差。由于它过分完美地切割了训练数据。它不是一个好的分类器。

 除此之外,ID3算法增长树的每个分支深度,指导恰好能对训练例子完美的分类

然而整个策略并不是行得通。其实,当数据中有噪声或训练例子的数量太少以至于不能产生目标函数的有代表性採样时,这个策略便会遇到困难,导致过度拟合训练集。

另外ID3算法仅仅能处理离散类型的数据。

ID3算法在搜索的过程中不能进行回溯,每当在树的某一层次选择了一个属性进行測试,它不会再回溯又一次考虑这个选择。所以。它易受无回溯的爬山搜索中的常见风险影响:收敛到局部最优的答案,而不是全局最优。

ID3算法在搜索的每一步都使用当前的全部训练例子,以统计为基础决定如何精化当前的如果。

这与那些基于单独的训练例子递增作出决定的方法不同。

使用全部例子的统计属性(比如:信息增益)的一个长处是大大减少了对个别训练例子错误的敏感性。因此,通过改动ID3算法的终止准则以接受不全然拟合训练数据的如果。是能够非常easy的扩展到处理含有噪声的训练数据。

剪枝

有几种途径可被用来避免决策树学习中的过度拟合。它们分为两类:

1.预先剪枝 及早停止树的增长,在ID3算法完美分类训练数据之前就停止树的增长。

2.后剪枝     即同意树过度拟合数据,然后对这个树进行后修剪。

虽然第一种方法可能看起来更直接,可是对过度拟合的树进行后修剪的第二中方法在实践中更成功。这是由于在第一种方法中精确地预计何时停止树增长是非常困难的。

C4.5算法概述

C4.5算法是从ID3算法演变而来,除了拥有ID3算法的功能外。C4.5算法引入了新的方法和添加了新的功能。比如:

1.用信息增益比例的概念

 
           

这里属性A具有v个不同的值{a1,a2,...,av}。

能够用属性A将S划分为v个子集{S1,S2,....Sv},其

中Sj包括S中这种一些样本,它们在A上具有值aj。

2. 合并具有连续值的属性

ID3算法最初假定属性离散值,但在实际环境中,非常多属性值是连续的。C4.5算法可以处理具有连续的属性值。

3. 处理含有未知属性值的训练样本

C4.5处理的样本能够含有未知属性值,其处理方法是用最经常使用的值替代或者将最经常使用的值分在同一类中。

详细採用概率的方法。根据属性已知的值。对属性和每个值赋予一个概率。取得这些概率依赖于该属性已知的值。

4. 产生规则

一旦树被简历。就能够把树转换成if-then规则。

四 小结

分类可用于预測,分类的目的是从历史数据记录中自己主动推导出对给定数据的趋势描写叙述。从而能对未来数据进行预測。

统计学中经常使用的预測方式是回归。数据挖掘中的分类和统计学中的回归方法是一对联系又有差别的概念。一般地,分类的输出是离散的类别值,而回归的输出则是连续数值。分类具有广泛的应用,比如垃圾邮件识别、信用卡系统的信用分级、图像的模式识别等。

时间: 2024-09-29 21:16:39

机器学习-分类简单介绍的相关文章

斯坦福机器学习公开课---1.机器学习简单介绍

斯坦福机器学习公开课---1. 机器学习简单介绍 1.1  介绍 机器学习流行原因--- 1)      由人工智能AI发展来的一个领域 2)      是计算机需要开发的一项新的能力,涉及工业和基础学科中的很多内容. 应用学习算法,如设计自主机器人,计算生物学和其他被机器学习影响的领域. 1.2  机器学习应用 1)        数据挖掘 网站点击流数据.电子医疗记录.计算生物学和工程学. 2)        无法手动进行编程的领域 自动直升机.手写体识别.自然语言处理NLP和计算机视觉.

Mahout学习之Mahout简单介绍、安装、配置、入门程序測试

一.Mahout简单介绍 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个非常强大的数据挖掘工具,是一个分布式机器学习算法的集合,包含:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的长处就是基于hadoop实现,把非常多曾经执行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法

机器学习入门 - 1. 介绍与决策树(decision tree)

机器学习(Machine Learning) 介绍与决策树(Decision Tree) 机器学习入门系列 是 个人学习过程中的一些记录与心得.其主要以要点形式呈现,简洁明了. 1.什么是机器学习? 一个比较概括的理解是: 根据现有的数据,预测未来 2.核心思想 : Generalization 可以理解为,归纳.概括.就像是人的学习一样,找出一件事物与与一件事物的联系 3.归纳性的机器学习(Inductive machine learning) 其核心思想是使用训练数据,并从其中摸索出一套适用

Python常用的库简单介绍一下

Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib ,[Python]标准库,计算文本差异 . Levenshtein ,快速计算字符串相似度. Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. shortuuid ,一组简洁URL/UUID函数库. ftfy ,Uni

WeX5的简单介绍及UI的简单讲解

WeX5的简单介绍及UI的简单讲解 (2016-01-13 14:49:05) 标签: it 分类: WeX5的初步自学 一.WeX5的简单讲解 1.WeX5是前端快速开发框架,可开发跨端运行应用.是移动App/微信/WebApp开发利器,一次开发多平台运行. 二.WeX5平台了解 1.菜单和工具栏 :查看API:启动Tomcat:搜索:首选项:复位透视图 2.透视图 :导入java项目:使用svn 3.模型资源 :文件对比 :新建.复制.删除:重命名文刷件新及文件夹:模型编译 切换到资源管理器

iOS开发数据库篇—SQLite简单介绍

转自:http://www.cnblogs.com/wendingding/p/3868893.html 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1)归档:NSCodeing.NSKeyedArchiver (2)偏好设置:NSUserDefaults (3)Plist存储:writeToFile 提示:上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数据,有性能的问题.

iOS开发——网络OC篇&amp;网络爬虫简单介绍

网络爬虫简单介绍 先来看看网络爬虫的基本原理: 一个通用的网络爬虫的框架如图所示: 网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中.此外,将这些URL放进已抓取URL队列. 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环. 以下内容均为本人个人

Swift中协议的简单介绍

熟悉objective-c语言的同学们肯定对协议都不陌生,在Swift中苹果将 protocol 这种语法发扬的更加深入和彻底.Swift语言中的 protocol 不仅能定义方法还能定义属性,配合 extension 扩展的使用还能提供一些方法的默认实现,而且不仅类可以遵循协议,现在的枚举和结构体也能遵循协议了.基于此本文从 1,协议中定义属性和方法 , 2,协议的继承.聚合.关联类型 , 3,协议的扩展 , 4,Swift标准库中常见的协议 , 5,为什么要使用协议 5个方面结合自身的学习经

iOS开发——UI精选OC篇&amp;UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道,单例在应用程序的整个生命周期中只有一个对象). App的启动过程 打开程序之后-> 1:Main函数 2:UIapplicationMain函数 3:初始化UIApplication(创建) 4:设置UIApplication代理和相应的代理属性 5:开启事件循环,监听系统事件 6监测info.p