| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> SDU数据仓库与数据挖掘 重要算法提纲 -> 正文阅读 |
|
[人工智能]SDU数据仓库与数据挖掘 重要算法提纲 |
课程难度很大,想要全掌握很难,但是掌握一部分基础算法还是可以的,考试多半也是这个范围。按章节给出。 一,数据分析,大数据技术概念性章节,没有什么具体算法,主要是讲大数据的发展和应用。(不太重要) 大数据:巨量资料,规模庞大,数据量从TB级别到PB,EB甚至ZB级别。 大数据技术的战略意义不在于掌握庞大的数据,而是要对如此规模的数据进行专业化管理,提高加工能力,实现数据增值。 大数据名称来源:1980年《第三次浪潮》。最早应用:麦肯锡公司。定义:大数据是指大小超出了常规数据库工具获取,存储,管理和分析能力的数据集。 4V特点(考过):Volume(大规模性),Velocity(高速性),Variety(多样性),Value(价值性)。 大数据的构成:海量数据和针对海量数据的处理解决方案。 大数据技术(说的很多,实际上应该都是概念):hadoop框架(实验平台),Mapreduce(分布式并行处理的框架,映射+化简),HDFS体系结构——两类节点,目录节点(负责文件名维护管理,也是客户端访问文件的入口。),数据节点(集群里的机器,负责数据存储和读取。) Spark:针对Mapreduce的不足,提出的更快的模型,能够处理更复杂的多重处理请求,提供低延迟的交互式查询需求。启用内存分布数据集,还可以优化迭代工作负载。比Hadoop快100倍。 No-sql:非关系型数据库。Redis(键值存储),MangoDB(分布式文件存储),图数据库(在非关系数据库中体现角色关系) 神经网络算法:图像挖掘用CNN,文本挖掘用RNN(概念) 物联网与大数据(看看就行) 二,数据的临近性相似性:两个对象相似程度的表示,通常取值【0,1】 相异性:不相似程度表示,数值越低越相似,越大越不相似。最小值通常为0,最大值上限不同。 相异性矩阵:体现两两点之间的相异性。是单模对称矩阵(存三角形) 相等区间:定义序数属性之间临近度的标准方法。 一系列距离:曼哈顿距离(横平竖直),欧氏距离(几何距离),切比雪夫距离(也叫棋盘距离,两个点的距离定义为各坐标数值差的最大值),标准化欧氏距离(加入均值作为标准化变量,公式X*=X-m/s,m是均值,s是标准差。),马氏距离(点与分布间的距离) Jaccard相似系数:主要用于计算符号度量和布尔值度量个体间的相似度(没法衡量具体差异值的大小,只能得到是否相同这个结果) 余弦相似度:向量夹角越小,向量越相似,余弦值的绝对值越大。若值为负则向量负相关。 ?相关关系:两个或两个以上变量取值之间在某种意义下存在的规律——正相关,负相关,零相关(毫无关系),高相关,低相关,中等程度相关。 相关性的各种系数:完全看不懂,希望不考。 三,数据预处理为什么预处理?现实中的数据大很多是脏的,例如包括错误点和孤立点,编码存在差异(不一致),重复,不完全,缺少属性等。 不完全数据:收集时未包含;硬件软件损坏等 噪音数据:收集,录入,变换 不一致数据:不同的数据源,违反函数依赖 数据质量因素:采集角度——准确性,完整性,一致性,应用角度——相关性,时效性,用户角度——可信性,可解释性。 数据清理填充缺失值;处理离群点;光滑噪音;纠正不一致;解决冗余 如何处理空缺值:忽略元组;手动填充;用全局常量填充;使用均值;使用目标同一类所有样本的均值;填写最有可能的值——基于贝叶斯公式或决策树。 最后可能的值:热卡填补法——找到和缺失对象最相似的对象,用来填充缺失的对象。 噪音数据:相对于真实值的偏差或者错误,如孤立点。 噪声判别方法:3seita判别法,基于正态分布,如果超出三倍平均数则认为是异常值;基于密度:密度显著低于大部分临近则分类为离群点,适合非均匀分布。 除去噪声:回归,构造函数符合变化趋势,从而用一个变量预测另一个变量。如线性回归拟合;聚类,通过聚类发现异常数据,忽略孤立点,或者人工审查这些点;分箱:把数据按照规则放进房子,考察每个箱子的数据——等宽划分,等频划分。平滑方法:按平均值平滑,按中值平滑,按边界平滑。 处理不一致数据:人工更正,数据字典——根据给定字典消除不一致。 数据集成将互相关联的分布式异构数据集成到一起,使用户以透明方式访问。也就是把不同数据源的东西合成用户需要的类型查询。 数据集成方法:联邦数据库FDDS(虚拟连接,通过接口查询互相通讯),数据复制(实际存储方式,将各个源的数据复制到一处,成为数据仓库!) 实体识别问题:多个数据源同一实体的识别,例如重名或者同义但是表示方法不同。(ID和No) ?数据冗余:属性重复(同一属性出现多次),属性相关冗余(如一个属性可以由另一个导出),元组重复(两个完全一样的元组),有些荣誉可以用相关分析检测到。 消除冗余:基本思路是排序和合并(很朴素,排个序那么相同的就在一起了) 冲突值检测:单位不同,比例,编码,表示不同。检测到之后可能去要修改某个数据库的属性值。 数据归约从数据集中获取一个精简的集合,保持原有完整性,而且挖掘结果基本相同。 维规约(降维):减少属性个数。算法:主成分分析,小波变换。 数值规约:用替代的,更小的数据表示替换原数据。参数或非参数。 数据立方体聚集(后期重点) 数据压缩; 离散化与概念分层生成。 维规约:删除不相关属性(如电话号码),找出最小属性集。 启发式方法:逐步向前选择:从空属性集开始,每次选一个最优的,直到无法选出或者达到阈值。 向后删除:从全集开始,每次删一个最差的属性,直到无法删除或者满足阈值。 判定树归纳:利用决策树进行归纳学习,选择树节点上的属性。 基于统计的规约:统计显著性检验等。 属性,特征产生:产生新的属性,而可以比原始属性更好表示重要信息。 主成分分析(PCA)利用降维思想,把多个指标转化为m个指标,实现降维。通过旋转坐标轴,使得数据在一个新的坐标系里,在一个轴上离散化程度更高,从而删去另一个维度。未必是三维降到二维。主轴总长度占到所有总长度85%以上。 主成分分析就是要确定原变量在主成分上的相关系数。每个主成分分别是一切线性组合中方差最大的,从大到小排序。 解关于相关系数矩阵的特征方程,求出特征值,从大到小排序,然后求出特征向量,要求特征向量模为1,此时特征值就可以用来表示主成分对整体的贡献率。 使得贡献率高于85%左右就可以了,选定上述特征值对应的主成分即可。 步骤:求相关系数矩阵;列特征方程,求方程的解。带将特征值从大到小排序,然后带入求特征向量,使得特征向量满足模为1;解线性方程组,得到特征向量;用特征向量作为系数,求得第一主成分;继续求其它主成分,只需要满足特征值在所有特征值之和中占得比例在80%-90%即可,求得每个特征值对应的主成分。 局限:无监督;被忽略掉的成分可能也有价值。 数量规约参数方法:如果数据适合某个模型,则可以估计模型参数,只保留参数,从而丢弃数据(孤立点除外)。线性回归(最小二乘法),多元回归(拟合多种非线性函数),令Y被建模为多个属性共同作用的线性函数;对数回归(近似离散的多位概率分布) 非参数方法:不假定模型;histograms;离散化和概念分层。例如直方图。聚类(用簇表示实际数据),抽样(抽取一个样本表示整个数据集,数据倾斜的时候效果差) 聚类抽样:先聚类,后从每个类中随机抽取,提取特征;分层抽样(针对每个属性分层,分别进行随机抽样) 离散化与概念分层属性三种类型:标称,序数,连续值。 离散化:把连续属性分成区间,适用于数值型和序数型数据。 概念分层:在各个抽象级别上处理数据,例如国家-省-市等,实现概念的泛化规约。 ?数值型规约:分箱,直方图,聚类。 自然划分区段:3-4-5原则,为了符合人类的认知,按照自然约定按照1000一个区间或者100一个区间这种形式划分数据。如果一个区间有效位有3,6,7或9个值,则划分为三个(7-2,3,2)如果2,4,8个值,划分为四个,如果1,5,10,划分为5个。为了避免极端分布,在顶层分段选用一个大部分的概率空间,例如(5%-95%) 举例:-351到4700. 步骤:先求5%-95%的区间(-159,1838),确定最高有效位1000,共有-1000,0,1000,2000,跨越了三个值(三个区间),则划分为三个区间。调整左边界为(-400,0),由边界超出2000,故额外加一个(2000,5000)区间,最终形成了四个区间. 进一步划分:对于第一个区间,可以划成四个子区间,第二个区间0-1000,跨越了10个100,可以划分为5个子区间(根据345原则)。按照规则,可以进一步划分到更细。 数据立方体聚集数据立方体概念:维——属性,事实——数据。聚集——降维,也就是从立体压缩到平面,数据量减少,但是没有缺失信息。聚集函数sum等。具体后续会有。 数据压缩简单一提。字符串压缩,音视频压缩等。会有损耗。 数据变换数据被变换或者统一成适合分析和挖掘的形式。 平滑:去噪音——分箱,回归,聚类。 聚集:汇总,构造立方体。 属性构造:形成新的属性,或者叫特征构造。 泛化:抽象到更高的层次。 规范化:按照比例缩放到区间。 离散化:形成概念分层。 规范化:标准化:使得不同度量之间拥有可比性,也就是去除量纲,例如身高和体重无法直接比较,但是可以通过比较与平均值的差异来建立联系。特点:保持各个特征对目标函数的影响权重,对目标函数的影响体现在几何分布上。 归一化:基于边界值进行放缩,例如(0,1),用于简化计算,会改变原始数据的分布。对目标函数的影响体现在数值上。 几种方法:最小-最大规范化:朴素的方法,用最小值最大值作为边界范围,用在区间内的位置进行放缩(一年前貌似用过,果然是朴素方法)。很简单。 z-score规范化: 衡量数值偏离总体均值以上或者以下几个标准差。处理后数据服从正态分布,实现了中心化。 ? ?小数定标规范化:用移动小数点位置来达到规范化目的,将属性的值映射到0,1之间。 四 数据仓库数据仓库是从传统数据库技术发展来的,目的是为决策提供支持,为OLAP,数据挖掘提供平台。面向分析决策而不是事物。 概念数据仓库是一个面向主题,集成的,相对稳定的,反应历史变化的,用于支持管理决策和信息的全局共享。他是一个环境而不是产品。 相对稳定:指会有大量查询操作,但是修改和删除很少,与普通数据库由显著差别。一般只需要定期加载刷新。 不同的综合级别称之为粒度。 数据分为四个级别(翻译不同),早期细节,当前细节,轻度综合,高度综合。 元数据:用于定义数据仓库对象的数据,如结构,属性等。 重要图:数据仓库体系结构经典模型 ? (考过) ODS:数据进入仓库前的一个过渡数据库,临时存储区域,数据位于当前细节级,且数据支持高性能修改。与DW的区别:数据具有当前性;可能有汇总数据,汇总度不高但是可以动态修改,DW是静态汇总数据;用途不同,ODS用于每一天的操作决策,DW是长期决策;用户不同,ODS面向前端用户,如客服,DW用于战略性用户,如高层管理。 ODS作用:隔离层。减少复杂性,提供一部分细节查询功能。完成DW不能完成的部分功能。 ?数据仓库构建:自顶向下或者自底向上或者两者结合。 星形模式与雪花模式: 两种表,事实表和维度表,从事实表延伸出大量维度表,形成类似星星的结构。事实表存储外键。有一定数据冗余。 雪花模型:星型模型只延申一层维度表,雪花模型可以从维度表延申更细节的维度表,从而缩小事实表提高查询效率。没有冗余数据,但是查询需要连接,很麻烦。 现实中雪花模型反而不多。 星系模型:多个事实表可能共享一个维度表,连接成事实星座。 ETL:从业务系统抽取数据并转化到数据仓库的过程,包括四个子过程:数据抽取,数据转换,数据清洗,数据装载。 元数据:数据仓库的描述,系统性能的数据等关于数据库本身的信息。是关于数据的信息。元数据是数据集成所必需的,也可以帮助用户理解数据,保证数据质量。 HIVE使用Hadoop的HDFS存储文件(分布式文件系统)。使用mapreduce计算。hive实时性较差(实验中有体现,查询需要数秒时间),但是是针对海量数据进行的,很容易扩展存储和计算能力。 主数据准确,集成的,跨业务部门的,在业务部门被反复使用的。 主数据管理系统:数据建模,数据整合,数据维护,数据服务。 五,OLAP和多维数据模型(重点)在线分析处理(OLAP)是广泛应用于数据仓库的技术,把数据转化为真正被用户理解的数据。 是数据仓库的表现层基础。从数据仓库抽取数据子集,经过聚集存储到OLAP存储器中供前端分析。 OLTP和OLAP:OLTP对响应时间要求高,用户数量庞大,基于索引进行。OLAP是跨越部门,面向主题的,响应时间合理,用户仅限于决策人员,不能完全按照索引。极少更新,数据规模巨大。 数据立方体(重点)经典操作:上卷(通过维规约进行聚集,就是把立方体压到某个面上),下钻(上卷的逆操作,相当于进一步拆分成更小的立方体),切片和切块(顾名思义,按照某个维度切分),旋转(转动视角),钻过(涉及多个事实表),钻透(钻透底层,到后端关系表) 星型网模型:如图 ?较好理解,就是把维度拆开,就像六边形图一样规定查询的粒度。 立方体物化:也就是计算所有子立方体。根据维度排列组合可以得到立方体总数,但是不可能都算出来。一般部分物化。 多维数据库(重点)多维数据库:用于OLAP存储数据的数据库,数据需要定期从DW导入。 ROLAP:用关系数据库存储数据。拥有良好可拓展性。(也叫虚拟OLAP,立方体是聚合出来的) MOLAP:用多维数组存放数据,对预处理的数据进行快速索引。采用了新的存储结构,从物理层开始实现,也称作物理OLAP(他们真的把立方体存下来了) HOLAP:上述两者结合。 优缺点:MOLAP响应迅速(因为是物理改变),预处理程度高,相应的难以改变,一旦增加维度会使得规模急剧增加。难以适应变化,处理大细节数据能力差,因为需要物理存储,安全性差。 维护代价小,更清晰,占用空间少。最大的问题是稀疏问题,大量位置空缺。 ROLAP:其实是把用户的操作通过服务器翻译成SQL,查完之后经过聚合还给用户。不做Cube运算。ROLAP组织:星型模型,雪花模型。 数据立方体存储方法(ROLAP):将不同数据立方体的数据单元存放在单个表中。可能存在很多冗余值,可以将每个立方体单独存储。 HOLAP:两者结合,对于常用的用MOLAP加快查询,不常用的用ROLAP星星模式。 六 数据立方体计算(必考)在物化过程中有时候需要预计算,单独计算是不可能的。可以以空间换时间,在聚集的时候用一部分内存保留中间结果,同时向多个立方体聚集。 冰山立方体:稀疏立方体,可以通过最小支持度阈值构建。 完全立方体多路聚集:如何计算所需内存? 注意一个原则,1.块按照顺序访问,2.访问的时候同时向多个方向聚集,3.在一个方体的一个单元没计算出来的时候,需要将聚集结果暂时保留在内存中。 因此尽管聚集结果相同,次序选择不同会导致占用空间差异巨大。例如上图,先聚集BC面(左侧),则无需占用额外空间,直接加进来即可,最多需要一个块,空间为1000*100(不用*a了,直接聚集到平面上了)。 如果聚集到AC面(上面),则光扫描完第一块还不能填充上方的块,必须继续扫描2,因此1就需要暂存,额外开辟空间给2聚集。最终需要四块空间存储临时结果,空间总数4*10*1000 AB面(正面),则需要保留完整一个正面的空间,总数为40*400. 因此扫描次序不同,空间占用也不同。求和即所需全部空间。 如何让耗费空间最小化?将最小的平面放在内存中,对最大的每次计算一块,例如上述案例中AC面只需要一个块就可以,因此让这个块尽量大。 冰山立方体计算度量度太低的数据决策者不关心,计算的时候应当剪枝操作。 BUC算法:先对所有元素聚集,得到ALL。然后分片,检查元组是否满足最小支持度,不满足裁掉,满足就继续迭代。基数越高,分区越多,越容易剪枝。 概念描述一种泛化的形式,也称为类描述。 两种方法:属性删除:没有泛化操作符,则可以删除低层次属性;有泛化操作符,可以进行泛化。 如果不同值过多,超过泛化阈值,考虑继续泛化。 概念描述vs数据立方体相似:数据泛化,在不同抽象级别上呈现 区别:OLAP中维度和量的数据类型有限。概念描述可以处理复杂数据。 OLAP是用户控制的过程,概念描述更加自动化。 七 关联挖掘(重点)支持度:在总体中的比例;置信度:两个同时出现与一个出现之比。用来讨论关联规则是否可以被相信。 要挖掘的是满足最小支持度的频繁项集,在频繁项集中寻找强关联规则。 由于可能的子集太多了,一一列出寻找频繁项集是不可能的,因此要进行剪枝。由此提出了重要算法。 Apriori算法迭代模式,从k-项集挖掘(k+1)-项集。根据最小支持度,减去已经在当前已经不满足最小支持度的项集,防止他们产生新的项集,显著减少规模。每次产生新项集需要进行连接运算(为什么不和1-项集连接来扩展,再去重呢?) 关联规则产生:对于频繁项集L,计算所有非空子集S,对于S的每个非空子集s,如果sup(l)/sup(s)>min_conf?则输出规则。 接下来计算置信度即可。 缺点:多次扫描数据库,需要很大负载。每次都需要扫数据库。可能产生庞大的候选集。 FP-Growth算法(重点)天才算法,减少了大量存储空间——实际上是在运算过程中又频繁项集共享部分内存,生成的时候花费一部分时间来形成,从而减少搜索空间。 步骤:创建根,将项按照支持度递减排列,并分别加入树中。树中加入连接相同后缀的指针(长得很像trie树的失配指针,实际上不就是后缀树嘛》) 构建完毕后进行挖掘。形成条件模式基,对所有模式基中的项进行累计计数。为条件模式基中的频繁项构建FP-树。如果一个FP树只剩下单个路径,那么列举路径P的所有子路径就能得到完整的频繁项集。 多层关联:先找高层,再找底层。 一致支持度:对所有层使用统一minsup。 递减支持度:在较低层使用更小的支持度。 序列模式挖掘:掌握两个算法:ApriorALL: 参考实验用的算法,其实就是这个。 GSP算法: ?其实前几步都一样,只有计算支持度的时候扫描方式不同,前者是两重扫描,判断是否在其中,从而对于每个c单独统计支持度,效率n^2,后者只扫描一次数据库,统计的时候用桶计数。属于花费空间换时间。 二者都是基于APrior的。 SPADE(希望不考,讲的不多) 八 分类分类和机器学习相关较多,建议只看决策树和贝叶斯。明说别的不考。这俩考的概率也不大。 有监督的学习:用于分类,模型学习在被告知某个样本属于哪个类的情况下学习。 无监督学习:不知道有几个类,每个样本所属的类也位置,用于聚类。 常用方法:基于距离,决策树,贝叶斯,神经网络,svm。 评价:准确率,速度,强壮性,可伸缩性,可解释性。 基于距离用距离衡量相似性。 KNN对于待分类点,找到最邻近的k个邻居,用邻居的类标号来识别未知元组的类。 通过k个邻居投票的方式决定,可以根据距离为投票设定不同权重,越近权重越高。 很朴素的分类法。对于每个待分类元组都需要扫一遍数据集。 k的选取:如果过小,会对噪声敏感,如果过大则可能超出类的范围。经验法则:k<=sqrt(q),q为元组总数。商业算法一般用10. 决策树经典算法,每个属性可以作为一个节点用来产生分支决策,直到某个节点中所有元组分类相同,则将其作为叶子节点;或者所有属性都用光。 决策树选择属性的顺序不同,结果会大相径庭,因此基于分割方法不同,可以分为两类:基于信息论的方法(ID3,信息增益),最小GINI指标的方法(CART) ID3: 基于信息论生成决策树,采用信息增益来选择,也就是选择某个属性之后能够降低的复杂程度,例如通过一个属性就可以完全区分所有类别,则其他属性也就不需要选择了,结果变成了稳定形态,不存在其它可能性,信息增益当然最大。 计算信息增益:信息增益定义是原始分割的熵和划分以后各分割的熵累加得到的总熵之间的差。是指划分前后进行正确预测所需的信息量之差。选取信息增益最高的属性。——选择一个属性,使得子女节点的类值大部分都相同(低无序性)。 先验不确定性(信息熵):H(U) 后验不确定性(条件熵):H(U/V) 互信息I(U,V)=H(U)-H(V) 互信息I的计算:自信息: 以2为底,注意符号,单位bit 信息熵:输出前的平均不确定性。 后验熵: 条件熵:? 公式太多。其实条件熵求的就是属性取值vj时,类别ui的条件概率。P(vj)是某个属性被选择的概率,是根据样本的似然。P(ui | vj)是vj情况下ui的条件概率,即在选择vj的情况下,每个结果发生的概率,总和为1.注意符号。最后求这个属性所有可能性的条件熵总和,作为整个属性的后验熵,也就是通过这个属性分类后的信息熵。 求H(U),也就是不考虑条件的情况下所有种类的概率,注意log和符号。H(U)和后验熵做差可得信息增益,选最高的属性作为本层节点。 公式很多,但是不难理解,不用管怎么证明至少。 决策树剪枝:如果训练集太小或者存在噪声,没有足够的代表性,可能出现过拟合现象。 先剪枝:通过提前停止树的构造而剪枝,从而把节点变成树叶。如果在一个节点划分样本将导致低于预定义阈值的分裂,就不再进一步划分。 测试组剪枝法:在产生新分叉的时候,立即用测试组样本测试这个规则能否再现,如果不能(对测试集拟合程度差)就修剪掉。 也可以使树达到一个高度就停止生长。 后剪枝:从完全生长的决策树剪枝,根据最小案例数阈值,将案例数小于阈值的剪掉——如有的决策产生了就一个点的分类,有可能这个点就是个噪声。 成本修剪法:成长完成后,计算所有叶子节点的总和错误率,然后计算去除某个叶节点的错误率,如果错误率降低或者不变,则剪掉(因为没有他可能更好),否则保留。 后剪枝能够保留更多分支,欠拟合风险很小,但是开支更大(需要完整构建决策树) C4.5 对ID3的改进,用信息增益比例选择属性而不是信息增益,后者偏向于取值多的属性。 构造完成后进行后剪枝。 可以处理连续值,先排列然后选择信息增益率最大的划分值用来划分成两部分,小于和大于。类似离散化。 决策树原理:贪心算法,分治算法。 优点:可以生成便于理解的规则,计算量不大,可以处理连续和离散字段,可以显示那些字段重要。 缺点:对连续字段预测性不好,对有时间顺序的需要预处理,可能不是全局最优。 贝叶斯决策论朴素贝叶斯,也叫最小错误率贝叶斯决策。 最小风险贝叶斯:加入损失函数,因为有时候判断错误会产生严重的代价,需要让不同的错误产生不同影响。(癌症,Terrorist) 朴素贝叶斯:求判断为P和N的后验概率的分子即可(分母可以约去),相互比较取较大的那个作为判断结果。最小错误率对应的就是最大后验概率。 条件概率公式——对于需要判断的x,判断结果为w:P(w|x) = P(x|w)P(w)/P(x),因为要比较,分母可以不看。注意朴素贝叶斯要求属性之间没有关联,因为属性独立所以可以很简单地把各自的P(xi|w)乘起来。如果不独立的话就不能用了。 最小风险贝叶斯:加入风险系数,不同判断结果造成的风险不同,比如把正常细胞判定为癌细胞风险远没有把癌细胞判断成正常细胞大,宁错杀不放过。可以将后者的风险设大。加入参数之后可以直接影响结果。注意计算R值的时候,要把判断错误和错误的风险系数加起来。 如例子: 贝叶斯优点:容易实现,结果好。 缺点:需要假设类条件独立,缺少准确性。现实中变量可能存在依赖。 半朴素贝叶斯:应对上述缺点,能够处理一定程度的依赖(简单了解) 分类器性能评价(重点)记忆方法:第一个字母表示判断的对不对,T就是判断对了,F就是错了,因此FP意味着正确是N,FN意味着正确是P。OC曲线水平轴表示FP,另一个轴是TP。 一些指标:准确率 TP+TN/TP+TN+TN+FN 误分类率:FP+FN/TP+TN+FP+FN 真正率/灵敏度:TP / TP+FN,FN正确结果应该是P,也就是FP+TP就是所有的P,真正率指的就是所有的P中有多少被判断准确了,即能否准确找出正值。 真负率:TN / TN+FP 与上述类似,负值有多少被正确判断了。 假正率:FP / FP+TN,在负值中多少被错误判断成了正值。 假负率:FN / FN+TP,正值中多少被错误判断成了负值。 评估指标:精度 TP / TP+FP,在判断为真值的中,有多少是真值,注意和上述真正率不同,表示判断的精确度。也就是能不能查准。 召回率:TP / TP+FN,体现对正样本的识别能力,也就是能否把正值准确找出来,也就是上文的真正率。也就是能不能查全。 只保证准确率远远不够。比如得新冠的本来就很少,我只要判断所有人都没得准确率就很高了,但是这意味着一个患者也查不出来。有时候要降低准确率提高查全率(确保能够查出来),查准率(确保查出来的是)。对于上述案例,更重要的是查全,查准率稍微低一点可能出现假阳性,但是至少不会漏过。 精准率和召回率成反比,查的越准,甚至查的都是对的,就难免少查到一些人——因为要保证都是对的,有些莫能两可的就宁愿不查到。反之,查的越全,一些莫能两可的也越可能被查出来,准确率降低。 F度量:把精准率和召回率合起来。 可以加入一个参数,满足不同偏好。? β>1的时候查全率影响更大,β<1查准率影响更大。 ROC曲线:横轴FP率,纵轴TP率。结合实际意义,很好说图上点表示什么。 ROC曲线越陡,预测效果越好,如果是对角线就是纯随机决策。 分类器性能评估:测试数据 保持法:1/3用于训练,2/3用于测试。 交叉验证:先分成n份,循环用其中一份测试。最终求n个错误率的平均值。 SVM,神经网络我知道你们很nb,但是这里略。 ?九 聚类(可能考)应该会考个聚类题,主要算法Kmeans(均值),K中心(用点做中心),密度聚类的DBSCAN算法。 主要方法:划分方法,层次聚类,基于密度聚类,孤立点分析(下一章) 聚类间距离:单连接——用元素最小距离;全连接——最大距离;类平均——平均距离;质心距——用中心得距离。 划分类方法K-means又叫K均值算法,每个簇用对象平均值表示。 是应用最广泛也是最简单得聚类方法之一。需要已知分为k类。 过程:首先随机选择k个质心,将不是质心的点分配到离他最近的质心点;用分成的聚类确定新的质心(未必是真实的数据点);重复上述操作,重新分类;直到质心不再(明显)变化。 很好理解。 平方误差准则 求和得整体平方误差。? ?如何计算质心:加起来除以n即可,在图上求质心。 改变质心之后重新分类,求新的总体平均误差,发现变小,则继续迭代。如果减小不显著,说明迭代可以停止。 缺点:需要知道k的数目。不适合发现很大的簇。对噪声敏感。 K-medoid也叫K中心算法,不再用均值,而是用距离中心最近的对象为中心点。 不再惧怕某些离群点把中心拉到很极端的位置,因为会用具体对象为中心。 PAM算法:随机选择代表对象,分配其它对象到最近的簇,然后反复用非代表对象替代代表对象,提高聚类质量。用平均相异度评价聚类质量。其实是计算点被重新归类之后产生的距离差。求和,选择最小的代价。(其实类似于使得不是中心的点到当前中心的距离能够小于上次聚类距离中心的距离) 优点:不容易被噪声影响。缺点:效率一般。 层次聚类AGNES算法从底层向上,凝聚形成更高层次。一开始每个对象都是簇,逐渐合并这些簇。 每次选择距离最近的两个簇合并。距离衡量方法如同上文。 满足簇数目停止。 算法简单,但是局限性也很大,可能导致低质量结果。需要计算距离,效率较低。 DIANA算法与AGNES相反,是分裂聚类算法。用平均距离衡量。每次找最大直径得簇,先找到一个和其它点距离最远的点,加入新簇,然后不断移动旧簇的点到新簇,直到无法移动。 密度聚类掌握DBSCAN算法 DBSCAN密度可达概念,密度相连概念。核心对象定义:在一个固定大小邻域内有不小于MinPts个数量对象。 DBSCAN思路:比较朴素。遍历每个点,如果当前点是核心点且未被分类,则创建新聚类,同时将密度可达的点加入聚类。如果这些点仍然有核心点,则继续用这个核心点扩展,将他邻域内的点全部加入该簇,直到邻域内没有点,簇生成完毕。继续遍历,直到所有点被扫描。 图片展示的就是扩展过程。 复杂度nlogn,最差n2,对参数敏感,参数差则聚类效果也会差。 OPTICS算法对DBSCAN的改进,帮助确定参数。先完成高密度的聚类。 聚类性能度量与分类类似,聚类器也可以度量性能。 有外部指标也就是有一个参考模型能够给出簇划分,通过与参考模型对比来评价性能。 有点类似分类的错分率。 ? 这几个指数我是绝对不会背的。 内部指标内部指标是没有外部参与的情况下评价聚类结果。可以通过簇间距离,簇内平均距离,簇内最远距离(直径)等评价。 第一个很好理解,分子尽量小,就是簇内距离尽量小。分母尽量大就是簇间距离尽量大。最小化分子最大化分母,最终越小聚类越好。第二个参数表示最近距离尽量远(划分清晰),最远距离尽量近(防止离群点,大概) 聚类结束。 十 离群点分析明说,没看。 十一 推荐算法重点掌握基于用户的推荐算法和基于物品的,至少知道如何推荐,还有一个基于内容的,成龙的例子,电影喜好度。 基于用户基于用户偏好,找到相邻邻居用户(K近邻?),然后根据邻居的喜好给用户推荐。 容易产生惊喜结果(人和人的悲喜是不相通的) 每个邻居的权重取决于相似度,相似度越高权重越高(仍然是K近邻) 相似度评价: 较好理解,一般来说是否相似还是比较直观的。最终按照得分排序,取靠前的物品即可。 缺点:用户距离变化很大,用户共同评分的很少,有意义的邻居很难找。 基于物品的协同过滤计算物品之间的相似度,然后根据当前用户偏好推荐相似度高的商品。相当于上面过程反过来。 计算相似度的公式仍然是余弦相似度。 物品相似度通常稳定,是由许多用户共同推算的,因此可以更快生成推荐。 缺点是热门商品相似度可能更高。 相似度计算许多算法可以计算相似度,例如用于计算文档数据相似度的余弦相似度? ?基于内容推荐根据物品或者内容的元数据,发现物品和内容的相关性——如电影主演A,B,C,电影类型:科幻。那么同样主演,同样题材的电影相似度就很高。 为用户创建一个内容喜好资料,例如某个用户喜欢某个导演。 为每个物品创建一个属性资料,如导演是谁。 求用户喜好和物品的相似度即可。 例如,用户对几部电影进行打分,可以求平均分,然后对于高于平均分的电影,在相应导演或者演员的位置统计系数。 同理,可以算出对其他演员的喜好程度。在喜好电影中,某个演员出现次数越多,评分越高,用户自然越喜欢。 用余弦相似度计算用户喜好和项目的距离。 ?这里可以总结一下余弦相似度如何计算两个向量相似情况:分母是两个向量中所有项的平方和的乘积。分子是同时出现在两个向量中的量的乘积的和。很好理解。 其它推荐思想基于统计:分类热门推荐等,没有针对用户的个性化描述,精度低,但是速度快。 隐含因子:因子隐藏,难以直观解释。 ? 十二 数据流挖掘注意数据流特点:无穷,不平稳。无法存储。 固定查询:平均值,最大值。无需保存全部数据,来一个更新一个即可。 滑动窗口。 抽样:固定比例抽样:先抽1/10,后面的来一个以一定比例让他存储即可。 固定数目抽样:新元素以概率p进入,旧元素以概率p退出。 滑动窗口计数(重点):DGIM,指数窗口。合并。注意计数规则。同样大小窗口最多2个。保留时间戳,超时间扔掉。最后一个块算一半。 布隆过滤器:把数据hash到桶里,检查是否都是1.是则允许。有可能出错。 ?解决方法:多重hash,hash越多越准确。 衰减窗口:过期数据时效性不高。方法:每进入一个元素,将之前的乘一个小于1的衰减系数,再加上新元素。非常好实现。 数据流上的挖掘:主要是概念。VFDT算法:分类器渐进。集成学习。聚类算法,保存一部分数据扫描后聚类。 更新完毕。祝考试顺利。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 2:11:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |