分类:预测类对象的分类标号,根据训练数据集和类标号属性,构建模型来分类现有数据,并用来分类新数据。
银行需要弄清楚那些贷款申请者是安全的,哪些是有风险的。
预测:建立连续函数值模型,比如预测空缺值,或者预测顾客在某项活动中的花费。
银行需要预测贷给某个顾客多少钱是安全的,预测一个连续值函数或有序值,常用方法是回归分析。
准备分类和预测的数据
数据预处理
数据清理通过填写空缺值,平滑噪声数据,识别删除孤立点,并解决不一致来清理数据。
| 空缺值 | 噪声数据(数据平滑技术) | ||
|---|---|---|---|
| 1. 分箱 | 2. 聚类 | 3. 回归 | |
| - 忽略元组 - 人工填写空缺值 - 使用固定值 - 使用属性平均值 - 使用最有可能值 |
- 箱的深度:表示不同的箱里有相同个数的数据 - 箱的宽度:每个箱值的取值区间是个常数 - 平滑的办法: ① 按箱平均值平滑 ② 按箱中值平滑 ③ 按箱边界值平滑 |
- 每个簇中的数据用其中心值代替 - 忽略孤立点 - 先通过聚类等办法找出孤立点。 - 人工再审查这些孤立点 |
- 通过构造函数来符合数据变化的趋势,这样可以用一个变量预测另一个变量。 ① 线性回归 ② 多线性回归 |
数据清洗
- 格式标准化
- 异常数据清除
- 错误纠正
- 重复数据清除
数据变换
| 平滑 | 聚集 | 数据概化 | 规范化 | 属性构造 |
|---|---|---|---|---|
| 数据立方体聚集 | 最小 最大规范化 | 有给定的属性构造和添加新的属性,以帮助提高精度和对高纬度数据结构的理解 |
数据归约
| 数据聚集 | 维归约 | 数据压缩 | 数值归约 |
|---|---|---|---|
| - 删除不相关属性 属性子集选择 |
- 小波变换 - 主要成分分析 |
- 回归和对数线性模型 线性回归 对数线性模型 - 直方图 等宽 等深 V-最优 maxDiff |
相关分析
- 在分类和回归之前进行,它试图识别与分类和回归过程显著相关的属性。
- 属性子集选择通过删除不相关或冗余的属性减少数据量。属性子集选择的目标是找出最小属性集,使得数据类的概率分布尽可能地接近使用所有属性得到的原分布。
| 向前选择 | 向后删除 | 决策树归纳 |
|---|---|---|
| 初始属性集: {A1,A2,A3,A4,A5,A6} 初始化归约集: { } => {A1} => {A1,A4} => 归约后的属性集:{A1,A4,A6} |
初始属性集: {A1,A2,A3,A4,A5,A6} => {A1,A3,A4,A5,A6} => {A1,A4,A5,A6} => 归约后的属性集:{A1,A4,A6} |
初始属性集: {A1,A2,A3,A4,A5,A6} 当决策树归纳用于属性子集选择时,由给定的数据构造决策树。不出现在树中的所有属性假定是不相关的。出现在树中的属性形成归约后的属性子集。 |
这些方法的结束条件可以不同。该过程可以使用一个度量阈值来决定何时停止属性选择过程。
分类办法
决策树
- 决策树构建,使用属性选择度量来选择将元组最好的划分为不同的类的属性,递归的通过选定的属性,来划分样本(必须是离散值)
- 树剪枝,决策树建立时,许多分枝反映的是训练数据中的噪声和离群点,树剪枝试图识别并减去这种分枝,以提高对未知数据分类的准确性
- 提取分类规则,从根到树叶的每条路径创建一个规则,并以“IF-THEN”形式的分类规则表示。示例:
IF age=”youth” AND student=”no” THEN buys_computer=”no”属性选择度量是一种选择分裂准则,将给定类标号的训练元组最好的进行划分的方法,常用的有:① 信息增益;② 增益率;③ Gini 指标。
贝叶斯分类
思想:根据某些个先验概率计算Y变量属于某个类别的后验概率
比较分类办法
使用下列标准比较分类和预测方法
- 分类器的准确率度量(Accuracy):模型正确预测新数据的类编号的能力
- 分类器的灵敏性(Sensitivity)度量和特效性(Specificity)度量
假设已经训练的分类器将医疗数据元组分类为“cancer”和“not_cancer”。90%的准确率使该分类器看上去相当准确,但是,如果只有 3%~4%的训练元组是“cancer”,显然90%的准确率是不可以接受的(比如该分类器只能对“not_cancer”类的元组正确分类,对 “cancer”类的元组全部分类错误)。我们希望有某种度量能够对分类器识别“cancer”元组(设为正元组)和“not_cancer”元组(设为负元组)进行分别评估,为此引入灵敏性(Sensitivity)度量和特效性(Specificity)度量。
- 速度:产生和使用模型的计算花销
- 健壮性:给定噪声数据或有空缺值的数据,模型正确预测的能力
- 可伸缩性:对大量数据,有效的构建分类器或预测器的能力
- 可解释性:学习模型提供的理解和洞察的层次
过度拟合(Overfit)问题
Overfit是这样一种现象:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据。此时我们就 叫这个假设出现了overfit的现象。
过度拟合产生的原因
- 噪声数据导致过度拟合
由于数据中的噪声和孤立点,许多分枝反应的是训练数据中的异常。 - 缺乏代表性样本导致过度拟合
在训练数据缺乏具有代表的样本的情况下,往往需要继续细化模型才能得到较好拟合训练集的模型,这样得到的模型同样可能具有较高的泛化误差。我们将训练好的模型检验训练集数据,得到的误差率称之为训练误差。将该模型用于检验测试样本,得到的误差率称之为泛化误差。
避免过度拟合的策略
与上述两个导致模型过度拟合的因素同时出现的是模型的复杂度。模型越复杂出现过度拟合的概率就越高。因此,对于给定具有相同泛化误差的模型,我们往往更倾向于较为简单的模型,这就是所谓的Occam剃刀(Occam’s Razor)原则。为了避免过度拟合,降低决策树的复杂度,通常的策略是剪枝,该策略采用统计方法删除最不可靠的分支,以提高对未来分类识别的速度和分类 识别新数据的能力。
先剪枝(pre-pruning)法
先剪枝法是通过提前停止分支的生长过程,即通过在当前结点上就判断是否需要继续划分该结点所包含训练样本集来实现的。这就需要更为限制性的约束条件,如当观察到衡量不纯性的度量低于某个阈值就停止分支的生长。该方法的优点在于避免产生过分拟合训练数据的过于复杂的子树。但是我们很难为提前终止选择正确的阈值,阈值太高将导致拟合不足,阈值太低则不能充分解决过度拟合问题。后剪枝(post-pruning)法
后剪枝法从一个“充分生长”的树中,按照自底向上的方式修剪多余的分支。对于树中的每个非树叶节点,计算该节点上的子树被剪枝可能出现的期望错误率。使用一个独立的测试集来评估每棵树的准确率,就能得到具有最小期望错误率的决策树。
① 用新的叶子节点替换子树,该叶子节点的类标签由子树记录中的多数类确定;
② 用子树中最常用的分支代替子树。
J48决策树算法
采用了子树提升(Subtree Raising)与子树替换(Subtree Replacement)的修剪策略。计算修剪前后的预期分类错误率,如果修剪导致预期分类错误率变大,则放弃剪枝,保留该结点的相应分支,否则就将相应节点分支修剪删除。在产生一系列经过修剪的决策树候选之后,利用一个独立的测试数据集对这些经过修剪的决策树的分类的准确性进行评价,保留下那些预期分类错误率最小的决策树。与先剪枝相比,后剪枝倾向于产生更好的结果
检验和解释结果
在实际问题中,数据往往有许多噪音,所以必须对统计结果进行显著性检验、准确性检验的基础上,对结果进行经验性的解释,已确定结果hi合乎逻辑、合乎情理、合乎直觉的,是能够解决实际问题的,而不是噪音、数据偏差(bias)或过拟合(overfit)的结果。