根据老师课件、课本、网络资料总结,供开卷考试复习使用
面临的问题:1.自动数据收集工具;2.成熟的数据库系统的应用;3.大量数据
解决方法:数据仓库(数据仓库与连接分析)、数据挖掘(挖掘感兴趣的模式)
为什么要进行数据预处理:P23
因为脏数据:数据中存在误差(测量误差、收集误差;难以处理)、数据不一致(手工处理、耗时)、噪声(包含错误或孤立点或离群点;对噪音的处理具有两面性)、不完整(缺少数据值、缺乏某些重要属性、仅包含汇总数据)、重复数据、P26数据质量的其他问题(时效性、相关性、采样合理性)
数据预处理的重要性:
高质量的决策必须依赖高质量的数据
数据仓库需要对高质量的数据进行一致地集成
低质量的数据算法效果不好
数据预处理的主要任务:
数据清理(填写空缺的值、平滑噪声数据、识别、删除孤立点、解决不一致性)
数据集成(继承多个数据库…)
数据变换(规范化、聚集)
数据归约
数据离散化(是数据归约的一部分,通过概念分层和数据的离散化来归约数据,对数字型数据非常重要)
汇总统计是量化的,用单个数或数的小集合捕获可能很大的值集的特征。
度量数据的中心趋势
均值、中位数、众数、中列数
度量数据的离散数据
四分位数、四分位数极差、方差
度量的分类
分布式度量:将函数用于n个聚集值得到的结果和将函数用于所有数据得到的结果一样
代数度量:可以通过在一个或多个分布式度量上应用一个代数函数得到
整体度量:必须对整个数据集计算的度量
度量数据的离散度
最常用:极差、五数概括、中间四分位数极差和标准差
五数概括(min Q1 Median Q3 max)
数据清理任务
填写空缺的值
识别离群点和平滑噪声数据
纠正不一致的数据
解决数据集成造成的冗余
数据脱敏
引起空缺值的原因
设备异常
与其他已有数据不一致而被删除
因为误解而没有被输入 的数据
在输入时,有些数据因为得不到重视而没有被输入
对数据的改变没有进行日志记载
如何处理空缺值
忽略元组
填充
填充
用一个全局变量填充空缺值
使用属性的平均值填充空缺值
使用与给定元组属同一类的所有样本的平均值
使用最可能的值填充空缺值:使用像贝叶斯公式、knn或判定树这样基于推断的方法
噪声数据
噪声是一个测量变量中的随机错误或偏差
如何处理噪声数据
1.分箱
首先排序数据,并将他们分到等深 的箱中
按箱的平均值平滑、按箱中值平滑、按箱的边界平滑
2.回归
通过让数据使用回归函数来平滑数据
3.聚类
检测并去除孤立点
4.计算机与人工检查结合
数据集成
数据集成 | 模式集成 |
---|---|
将多个数据源中的数据集合到一个一致的存储中 | 整合不同数据源中的元数据 |
数据清理的过程
1.偏差检测
使用元数据
检查字段过载
检查唯一性规则、连续性规则、空值规则
使用偏差检查工具(数据清理工具、数据审计工具)
2.数据变换(纠正偏差)
数据迁移工具
ETL(提取/变换/装入)工具
3.偏差检测和数据变换(纠偏)的迭代执行
数据变换-规范化
1.最小-最大规范化
2.z-score规范化
standard_dev是数据均值、标准差
3.小数定标规范化
采样
减少数据量、提高算法效率
抽样的标准:有放回、无放回、分层抽样
维归约P31
维归约可以删除不相关的特征并降低噪声,避免维灾难
(维增加不仅仅是数据体量上的增加,往往伴随着稀疏性的增加)
1.属性抽取:将高维特征空间映射到低维空间,高维空间中的特征是原特征空间中没有的新的特征
2.属性子集选择(特征选择)
特征加权
找出最小属性集,使得数据类的概率分布尽可能接近使用的所有属性的原分布
减少出现在发现模式上的属性的数目,使得模式更易于理解
维归约-属性抽取-PCA
PCA-Principal Components Analysis
一种用于连续属性的线性代数技术,找出新的属性,这些属性是原属性的线性组合,是相互正交的,且捕获数据 的最大变差、最小协方差
属性子集选择
主要删除:冗余特征、不相关特征
方法:embedded、filter、wrapper
停止条件
1.达到设定需要选择的维数
2.特征子集已经收敛
3.根据某种评估标准已经获得最优的子集
按照最优特征集合的产生过程
1.穷举法
2.启发式方法
3.随机式方法
按照基于分类问题的特征降维技术分类
1.wrapper包装器(计算量大)
2.过滤器(忽略了特征空间子集在解决分类问题中的作用)
3.嵌入式特征选择:训练时执行特征选择,并采用具体的学习算法进行评估(不能充分挖掘词汇在知识发现和决策支持中的作用)
相关性计算P46
皮尔森系数
分类:将对象映射为预定类别中的一个的过程
预测:识别对象在特定时刻的状态(带有时间参数的求解)过程:首先对数据拟合模型,然后对新数据进行预测
监督学习(分类):训练数据集合的类别属性是已知的,新的数据集合由基于训练集合得到的分类模型进行分类
非监督学习(聚类)训练集合的类别属性是未知的,给出一个由观察或测量等方法得到的数据集合
分类方法的评估:
1.预测精度
2.时间性能(建立模型的时间、使用模型的时间)
3.健壮性
4.空间性能
5.可理解性
6.规则的评估(模型规模的大小、分类规则的简洁性)
决策树构造算法CLS
自上而下的、递归的、分而治之的方法
初始状态下,所有训练实体集都在根节点
数据属性是离散型数据(连续性数据需要离散化)
停止分裂的条件:给定节点所包含的所有实例属于同一类型;已经没有更多的属性来支持进一步的分裂,采用多数投票方法来确定叶子的类别;此时已经没有未分类实例
CLS缺点:抗干扰能力弱;易受无关属性的影响,导致规则繁琐;受属性选择次序的影响;只能发现部分规则
决策树构造算法ID3
选择具有最高信息增益的属性X
有关信息熵I、期望信息熵E、信息增益Gain的计算方法见PPT
决策树的优化策略
剪枝、优化节点、属性选择策略
优化的决策树具有:正确分类率高、误分类率低;抗噪性能好;结构合理;规则长度小
决策树模型的评估
模型的误差:具有低训练误差、低泛化误差
欠拟合:训练误差高,泛化误差高
过拟合:训练误差低,泛化误差高(大量侯选属性、少量训练记录)
避免过拟合的方法:预剪枝;后剪枝
RM的两个步骤
封包(Bagging/Bootstrap aggregation)
随机向量:
半随机森林 | 完全随机森林 |
---|---|
从所有属性中随机选择M个属性,再从这M个属性中确定最佳分割属性 | M个属性随机选择分割属性 |
随机森林优点:对过拟合鲁棒;对噪音鲁棒;能够处理缺失属性值;训练速度快
缺点:特征选择过程不明显;在较小的训练数据集上性能较差
构建随机森林的实例见PPT
朴素贝叶斯算法见PPT
朴素贝叶斯优缺点
优点:实现比较简单;在绝大多数情况下的结果很好
缺点:大量问题中存在依赖
贝叶斯网络
贝叶斯网络是子结构中的变量是相互独立的
关联规则挖掘
在事务数据库、相关数据库和其他信息知识库的项目集或对象集中,找出频繁模式、关联、相关或因果结构。
根据挖掘的模式的完全性分类(给定min_sup)
1.频繁项集的完全集
2.闭合频繁项集
3.最大频繁项集
4.被约束的频繁项集
5.近似的频繁项集
6.接近匹配的频繁项集
7.top-k频繁项集
根据规则集所涉及的抽象层
1.单层关联规则
2.多层关联规则
根据规则中设计的数据维
1.单维关联规则
2.多维关联规则
根据规则中所处理的值类型
1.布尔关联规则(规则考虑的关联为项是否出现)
2.量化关联规则(规则描述量化的项或属性间的关联)
根据所挖掘的规则类型分类
1.关联规则
2.相关规则
3.强梯度联系
根据所挖掘的模式类型分类
1.频繁项集挖掘(从事务或关系数据集中挖掘频繁项集)
2.序列模式挖掘(从序列数据集中搜索频繁子序列)
3.结构模式挖掘(在结构化数据集中搜索频繁子结构)
Apriori算法
Apriori算法性质:频繁项目集的任意非空子集一定是频繁的
Apriori剪枝法则:如果某一个项目集是非频繁的,则他的超集就不必产生
定理1:如果一个集合是频繁项集,则他的所有子集都是频繁项集
定理2:如果一个集合不是频繁项集,则它的所有超集都不是频繁项集
算法性能受数据规模(交易数量、项目数量)、每个交易的平均项目数、支持度阈值影响
算法的问题:
1.多重扫描事务数据库
2.大量候选集
改进Apriori的基本思想:
1.减少事务数据库扫描的次数{
某一项目集是频繁的,则他在数据库的划分中也是频繁的
第一次扫描:将数据划分为多个部分并找到局部频繁项集
第二次扫描:评估每个候选项集的实际支持度,以确定全局频繁项集
}
2.压缩候选集的数量
3.简化计算候选集的支持度{
构建候选K+1项集的HASH树
基于每个事务在该树上进行扫描并计数
书上和课件上的内容写得都比较晦涩,看了一位博主的文章,写得很详细使用HASH计算候选集的支持度
}
Apriori总结:
1.多重数据库扫描的代价很高
2.挖掘长模式需要扫描次数多,同时产生大量候选集
FP改进:划分
极大频繁项与闭频繁项集之间的关系
极大频繁项:这个项的直接超集都不是频繁的
闭频繁项集:这个项的直接超集的支持度都不与这个项相同
极大频繁项是一种闭频繁项集
多层关联规则
在项目中,比如说有一个商场的购物清单,买钻石的频繁程度肯定比不上买面包的频繁程度,所以在项目中就有层次,在面包这个层次,min_sup就可以设置成10%,而购买钻石的频繁程度可以设置为2%。
低层次的项目对应较低的支持度
事务数据库可以按照维度和层次编码
底层的数据项的支持度较低(递减支持度)
一个灵活的模型中层次越低,联合的尺度也越大,模式的长度越长,支持度通常也越低
多层关联中存在冗余过滤问题,由于项目之间的祖先关系,一些规则是多余的,可以删除
关联规则的兴趣度度量
1.客观度量:支持度;置信度
2.主观度量
对强关联规则的批评
置信度具有欺骗性,只是给出了条件概率的估计,而不是度量蕴含的实际强度,因此引入相关性扩充关联规则的支持度。
A => B
提升度:lift(A,B) = P(B|A) / P(B)
lift>1:正相关
lift = 1 : 无关
lift < 1:负相关
lift受零事务的影响较大
推荐算法
个性化推荐
协同过滤方法
分类:
1.基于内容的推荐
2.协同过滤推荐
3.基于关联规则推荐
4.基于效用的推荐
5.基于知识的推荐
6.组合推荐
推荐系统的评价指标:
1.准确性
2.覆盖率
3.多样性
4.新颖性
5.实时性
协同过滤:
核心思想:基于用户的推荐,也就是说借鉴和用户相关人群的观点来进行推荐
初始中心点的选取会导致结果不一样和迭代次数增加
因为KNN是无监督的,所以用户也不知道有几种标签,K的预先定义很难定义
循环终止的条件:1.质心稳定;2.簇不变(提前于质心稳定)3.SSE指标
初始化质心的解决方案:
1.抽样数十个样本,计算平均值作为初始质心
2.二分K均值
二分K均值
多次的二均值
迭代结束的条件:可以用K来控制,也可以用指标来控制
knn的局限性
不能处理不同尺寸、不同密度、非球形簇的数据
处理离群点和噪音会出现问题
克服knn的局限性
大部分靠K值处理
放大K值,缩小半径
凝聚层次聚类
表示用层次树来组织的一组嵌套簇图
MST:凝聚层次聚类算法