机器学习-分类简介

一 分类概述

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

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

二 分类器

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

统计方法

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

机器学习方法

包括决策树法和规则归纳法。前者对应的表示为决策树或判别树,后者则有决策表和产生式规则等。

神经网络方法

主要是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),决策树表示方法是应用最广泛的逻辑方法之一,它从一组无序、无规则的事例中推理出决策树表示形式的分类规则。

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

决策树是一个类似于流程图的树结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输出,而每个树叶结点代表类或类分布。树的最顶层结点是根结点。一棵典型的决策树如下图所示。内部结点用矩形表示,而树叶节点用椭圆表示。为了对未知的样本分类,样本的属性值在决策树上测试。

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

多叉树的内部结点是属性,边是该属性的所有取值,有几个取值,就有几条边。数据的叶子结点都是类别标记。

决策树是应用非常广泛的分类方法,目前有多种决策树方法,如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算法的终止准则以接受不完全拟合训练数据的假设,是可以很容易的扩展到处理含有噪声的训练数据。

剪枝

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

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-10-03 06:11:28

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

机器学习分类实例——SVM(修改)/Decision Tree/Naive Bayes

机器学习分类实例--SVM(修改)/Decision Tree/Naive Bayes 20180427-28笔记.30总结 已经5月了,毕设告一段落了,该准备论文了.前天开会老师说,希望我以后做关于语义分析那一块内容,会议期间还讨论了学姐的知识图谱的知识推理内容,感觉也挺有趣的,但是感觉应该会比较复杂.有时间的话希望对这块了解一下.其实吧,具体怎么展示我还是不太清楚... 大概就是图表那个样子.我先做一个出来,让老师看看,两个礼拜写论文.24/25答辩,6月就可以去浪哈哈哈哈哈哈. 一.工作

机器学习算法简介

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:吴懿伦 导语: 本文是对机器学习算法的一个概览,以及个人的学习小结.通过阅读本文,可以快速地对机器学习算法有一个比较清晰的了解.本文承诺不会出现任何数学公式及推导,适合茶余饭后轻松阅读,希望能让读者比较舒适地获取到一点有用的东西. 引言 本文是对机器学习算法的一个概览,以及个人的学习小结.通过阅读本文,可以快速地对机器学习算法有一个比较清晰的了解.本文承诺不会出现任何数学公式及推导,适合茶余饭后轻松阅读,希望能让读者比较舒适地获取到

机器学习——分类和回归

1.机器学习的主要任务:一是将实例数据划分到合适的分类中,即分类问题. 而是是回归, 它主要用于预测数值型数据,典型的回归例子:数据拟合曲线. 2.监督学习和无监督学习: 分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须直到预测什么,即目标变量的分类信息. 对于无监督学习,此时数据没有类别信息,也不会给定目标值.在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程被成为聚类:将寻找描述数据统计值的过程称之为密度估计.此外,无监督学习还可以减少数据特征的维度,以便我们可以使

机器学习分类

目前,机器学习的方法主要有三种:监督学习.半监督学习和无监督学习.监督学习是利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程.白话一点,就是根据已知的,推断未知的.代表方法有:Nave Bayes.SVM.决策树.KNN.神经网络以及Logistic分析等: 半监督方法主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题,也就是根据少量已知的和大量未知的内容进行分类.代表方法有:最大期望.生成模型和图算法等. 无监督学习是利用一组已知类别的样本调整分类器的参数,使

机器学习-分类简单介绍

一 分类概述 分类在数据挖掘中是一项很重要的任务.分类的目的是学会一个分类函数或分类模型(也经常称作为分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类别. 分类属于一种有指导的学习,模型的学习是在被告知每一个训练样本属于哪个类的"指导"下进行的.并随机的从样本群选取.每一个训练样本另一个特定的类标签与之相应,它不用于无指导的学习(聚类). 二 分类器 分类器的构造方法有统计方法.机器方法.神经网络方法等. 统计方法 包含贝叶斯和非參数法.常见的临近学习或基于事例的学习属于

第四十七篇 入门机器学习——分类的准确性(Accuracy)

No.1. 通常情况下,直接将训练得到的模型应用于真实环境中,可能会存在很多问题 No.2. 比较好的解决方法是,将原始数据中的大部分用于训练数据,而留出少部分数据用于测试,即,将数据集切分成训练数据集和测试数据集两部分,先通过训练数据集得到一个模型,然后通过测试数据集来检验模型的性能是否满足我们的要求,根据测试结果的好坏判断模型是否需要进行改进和优化 No.3. 我们通过鸢尾花数据集来测试kNN算法的分类准确性,首先是数据准备工作 No.4. 我们可以将上述过程封装到函数中 No.5. 调用我

机器学习分类算法之逻辑回归

一.概念 逻辑回归(Logistic Regression,LR)是一种广义的线性回归分析模型,属于监督学习算法,需要打标数据,可以用在回归.二分类和多分类等问题上,最常用的是二分类. 线性回归就是通过一条曲线区分不同的数据集,在二分类问题上会有一条直线对其进行区分,如下: 逻辑回归需要每组数据都是都是数值型的,因为需要对其进行运算,得到直线系数,打标数据一般是0和1. 二.计算 逻辑回归的输出是一组特征系数,使用了 y=wx+b这种函数来进行线性拟合,这个问题的y值不是0,就是1.使用上述函数

决策树机器学习分类基础代码(最基础方法)

直接给代码 1 # -*- coding: UTF-8 -*- 2 from math import log 3 import operator 4 5 """ 6 函数说明:计算给定数据集的经验熵(香农熵) 7 8 Parameters: 9 dataSet - 数据集 10 Returns: 11 shannonEnt - 经验熵(香农熵) 12 Author: 13 Jack Cui 14 Blog: 15 http://blog.csdn.net/c406495762

机器学习-分类算法-逻辑回归

# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import matplotlib.pyplot as plt import numpy as np from sklearn.model_selection import train_test_split from sklearn import datasets, linear_model