| 作者 |
| [美]陈封能(Pang-Ning Tan)迈克尔·斯坦巴赫(Michael Steinbach)阿努吉·卡帕坦(Anuj Karpatne)维平·库玛尔(Vipin Kumar)[美]戴维·A. 帕特森(David A. Patterson) 约翰·L. 亨尼斯(John L. Hennessy) |
| 丛书名 |
| 经典原版书库 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782002122125 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------数据挖掘导论(英文版·原书第2版)--------------------------- 本书从算法的角度介绍数据挖掘所使用的主要原理与技术。为了更好地理解数据挖掘技术如何用于各种类型的数据,研究这些原理与技术是至关重要的。 本书所涵盖的主题包括:数据预处理、预测建模、关联分析、聚类分析、异常检测和避免错误发现。通过介绍每个主题的基本概念和算法,为读者提供将数据挖掘应用于实际问题所需的必要背景以及使用方法。 ---------------------------计算机组成与设计:硬件/软件接口(英文版·原书第5版·RISC-V版)--------------------------- 本书是经典著作《计算机组成与设计》继MIPS版、ARM版之后的最新版本,这一版专注于RISC-V,是Patterson和Hennessy的又一力作。RISC-V指令集作为首个开源架构,是专为云计算、移动计算以及各类嵌入式系统等现代计算环境设计的架构。本书更加关注后PC时代发生的变革,通过实例、练习等详细介绍最新计算模式,更新的内容还包括平板电脑、云基础设施以及ARM(移动计算设备)和x86 (云计算)体系结构。 |
| 目录 |
---------------------------数据挖掘导论(英文版·原书第2版)--------------------------- 第1章 绪论 1 1.1 什么是数据挖掘 4 1.2 数据挖掘要解决的问题 5 1.3 数据挖掘的起源 7 1.4 数据挖掘任务 9 1.5 本书组织结构 13 1.6 文献注释 15 1.7 习题 21 第2章 数据 23 2.1 数据类型 26 2.1.1 属性与度量 27 2.1.2 数据集的类型 34 2.2 数据质量 42 2.2.1 测量和数据收集问题 42 2.2.2 关于应用的问题 49 2.3 数据预处理 50 2.3.1 聚集 51 2.3.2 抽样 52 2.3.3 维归约 56 2.3.4 特征子集选择 58 2.3.5 特征创建 61 2.3.6 离散化和二元化 63 2.3.7 变量变换 69 2.4 相似性和相异性的度量 71 2.4.1 基础 72 2.4.2 简单属性之间的相似度和相异度 74 2.4.3 数据对象之间的相异度 76 2.4.4 数据对象之间的相似度 78 2.4.5 邻近度度量的例子 79 2.4.6 互信息 88 * 2.4.7 核函数 90 * 2.4.8 Bregman散度 94 2.4.9 邻近度计算问题 96 2.4.10 选择正确的邻近度度量 98 2.5 文献注释 100 2.6 习题 105 第3章 分类:基本概念和技术 113 3.1 基本概念 114 3.2 一般的分类框架 117 3.3 决策树分类器 119 3.3.1 构建决策树的基本算法 121 3.3.2 表示属性测试条件的方法 124 3.3.3 选择属性测试条件的方法 127 3.3.4 决策树归纳算法 136 3.3.5 示例:Web机器人检测 138 3.3.6 决策树分类器的特征 140 3.4 模型的过拟 147 3.5 模型选择 156 3.5.1 验证集应用 156 3.5.2 模型复杂度合并 157 3.5.3 统计范围估计 162 3.5.4 决策树的模型选择 162 3.6 模型评估 164 3.6.1 保持方法 165 3.6.2 交叉验证 165 3.7 超参数的使用 168 3.7.1 超参数选择 168 3.7.2 嵌套交叉验证 170 3.8 模型选择和评估中的陷阱 172 3.8.1 训练集和测试集之间的重叠 172 3.8.2 使用验证错误率作为泛化错误率 *3.9 模型比较 173 3.9.1 估计准确率的置信区间 174 3.9.2 比较两个模型的性能 175 3.10 文献注释 176 3.11 习题 185 第4章 分类:其他技术 193 4.1 分类器的种类 193 4.2 基于规则的分类器 195 4.2.1 基于规则的分类器原理 197 4.2.2 规则集的属性 198 4.2.3 规则提取的直接方法 199 4.2.4 规则提取的间接方法 204 4.2.5 基于规则的分类器的特点 206 4.3 最近邻分类器 208 4.3.1 算法 209 4.3.2 最近邻分类器的特点 210 4.4 朴素贝叶斯分类器 212 4.4.1 概率论基础 213 4.4.2 朴素贝叶斯假设 218 4.5 贝叶斯网络 227 4.5.1 图表示 227 4.5.2 推理与学习 233 4.5.3 贝叶斯网络的特点 242 4.6 logistic回归 243 4.6.1 logistic回归用作广义线性模型 244 4.6.2 学习模型参数 245 4.6.3 logistic回归模型的特点 248 4.7 人工神经网络 249 4.7.1 感知机 250 4.7.2 多层神经网络 254 4.7.3 人工神经网络的特点 261 4.8 深度学习 262 4.8.1 使用协同损失函数 263 4.8.2 使用响应激活函数 266 4.8.3 正则化 268 4.8.4 模型参数的初始化 271 4.8.5 深度学习的特点 275 4.9 支持向量机 276 4.9.1 分离超平面的边缘 276 4.9.2 线性SVM 278 4.9.3 软边缘SVM 284 4.9.4 非线性SVM 290 4.9.5 SVM的特点 294 4.10 组合方法 296 4.10.1 组合方法的基本原理 297 4.10.2 构建组合分类器的方法 297 4.10.3 偏置–方差分解 300 4.10.4 装袋 302 4.10.5 提升 305 4.10.6 随机森林 310 4.10.7 组合方法的实验比较 312 4.11 类不平衡问题 313 4.11.1 类不平衡的分类器构建 314 4.11.2 带类不平衡的性能评估 318 4.11.3 寻找最优的评分阈值 322 4.11.4 综合评估性能 323 4.12 多类问题 330 4.13 文献注释 333 4.14 习题 345 第5章 关联分析:基本概念和算法 357 5.1 预备知识 358 5.2 频繁项集的产生 362 5.2.1 先验原理 363 5.2.2 Apriori算法的频繁项集产生 364 5.2.3 候选项集的产生与剪枝 368 5.2.4 支持度计数 373 5.2.5 计算复杂度 377 5.3 规则的产生 380 5.3.1 基于置信度的剪枝 380 5.3.2 Apriori算法中规则的产生 381 5.3.3 示例:美国国会投票记录 382 5.4 频繁项集的紧凑表示 384 5.4.1 极大频繁项集 384 5.4.2 闭项集 386 *5.5 其他产生频繁项集的方法 389 *5.6 FP增长算法 393 5.6.1 FP树表示法 394 5.6.2 FP增长算法的频繁项集产生 397 5.7 关联模式的评估 401 5.7.1 兴趣度的客观度量 402 5.7.2 多个二元变量的度量 414 5.7.3 辛普森悖论 416 5.8 倾斜支持度分布的影响 418 5.9 文献注释 424 5.10 习题 438 第6章 关联分析:高级概念 451 6.1 处理分类属性 451 6.2 处理连续属性 454 6.2.1 基于离散化的方法 454 6.2.2 基于统计学的方法 458 6.2.3 非离散化方法 460 6.3 处理概念分层 462 6.4 序列模式 464 6.4.1 预备知识 465 6.4.2 序列模式发现 468 * 6.4.3 时限约束 473 * 6.4.4 可选计数方案 477 6.5 子图模式 479 6.5.1 预备知识 480 6.5.2 频繁子图挖掘 483 6.5.3 候选生成 487 6.5.4 候选剪枝 493 6.5.5 支持度计数 493 *6.6 非频繁模式 493 6.6.1 负模式 494 6.6.2 负相关模式 495 6.6.3 非频繁模式、负模式和负相关模式比较 496 6.6.4 挖掘有趣的非频繁模式的技术 498 6.6.5 基于挖掘负模式的技术 499 6.6.6 基于支持度期望的技术 501 6.7 文献注释 505 6.8 习题 510 第7章 聚类分析:基本概念和算法 525 7.1 概述 528 7.1.1 什么是聚类分析 528 7.1.2 聚类的不同类型 529 7.1.3 簇的不同类型 531 7.2 K均值 534 7.2.1 K均值算法 535 7.2.2 K均值:附加的问题 544 7.2.3 二分K均值 547 7.2.4 K均值和不同的簇类型 548 7.2.5 优点与缺点 549 7.2.6 K均值作为优化问题 549 7.3 凝聚层次聚类 554 7.3.1 基本凝聚层次聚类算法 555 7.3.2 特殊技术 557 7.3.3 簇邻近度的Lance-Williams公式 562 7.3.4 层次聚类的主要问题 563 7.3.5 离群点 564 7.3.6 优点与缺点 565 7.4 DBSCAN 565 7.4.1 传统的密度:基于中心的方法 565 7.4.2 DBSCAN算法 567 7.4.3 优点与缺点 569 7.5 簇评估 571 7.5.1 概述 571 7.5.2 无监督簇评估:使用凝聚度和分离度 574 7.5.3 无监督簇评估:使用邻近度矩阵 582 7.5.4 层次聚类的无监督评估 585 7.5.5 确定正确的簇个数 587 7.5.6 聚类趋势 588 7.5.7 簇有效性的监督度量 589 7.5.8 评估簇有效性度量的显著性 594 7.5.9 簇有效性度量的选择 596 7.6 文献注释 597 7.7 习题 603 第8章 聚类分析:其他问题与算法 613 8.1 数据、簇和聚类算法的特性 614 8.1.1 示例:比较K均值和DBSCAN 614 8.1.2 数据特性 615 8.1.3 簇特性 617 8.1.4 聚类算法的一般特性 619 8.2 基于原型的聚类 621 8.2.1 模糊聚类 621 8.2.2 使用混合模型的聚类 627 8.2.3 自组织映射 637 8.3 基于密度的聚类 644 8.3.1 基于网格的聚类 644 8.3.2 子空间聚类 648 8.3.3 DENCLUE:基于密度聚类的一种基于核的方案 652 8.4 基于图的聚类 656 8.4.1 稀疏化 657 8.4.2 最小生成树聚类 658 8.4.3 OPOSSUM:使用METIS的稀疏相似度最优划分 659 8.4.4 Chameleon:使用动态建模的层次聚类 660 8.4.5 谱聚类 666 8.4.6 共享最近邻相似度 673 8.4.7 Jarvis-Patrick聚类算法 676 8.4.8 SNN密度 678 8.4.9 基于SNN密度的聚类 679 8.5 可伸缩的聚类算法 681 8.5.1 可伸缩:一般问题和方法 681 8.5.2 BIRCH 684 8.5.3 CURE 686 8.6 使用哪种聚类算法 690 8.7 文献注释 693 8.8 习题 699 第9章 异常检测 703 9.1 异常检测问题的特性 705 9.1.1 异常的定义 705 9.1.2 数据的性质 706 9.1.3 如何使用异常检测 707 9.2 异常检测方法的特性 708 9.3 统计方法 710 9.3.1 使用参数模型 710 9.3.2 使用非参数模型 714 9.3.3 对正常类和异常类建模 715 9.3.4 评估统计意义 717 9.3.5 优点与缺点 718 9.4 基于邻近度的方法 719 9.4.1 基于距离的异常分数 719 9.4.2 基于密度的异常分数 720 9.4.3 基于相对密度的异常分数 722 9.4.4 优点与缺点 723 9.5 基于聚类的方法 724 9.5.1 发现异常簇 724 9.5.2 发现异常实例 725 9.5.3 优点与缺点 728 9.6 基于重构的方法 728 9.7 单类分类 732 9.7.1 核函数的使用 733 9.7.2 原点技巧 734 9.7.3 优点与缺点 738 9.8 信息论方法 738 9.9 异常检测评估 740 9.10 文献注释 742 9.11 习题 749 第10章 避免错误发现 755 10.1 预备知识:统计检验 756 10.1.1 显著性检验 756 10.1.2 假设检验 761 10.1.3 多重假设检验 767 10.1.4 统计检验中的陷阱 776 10.2 对零分布和替代分布建模 778 10.2.1 生成合成数据集 781 10.2.2 随机化类标 782 10.2.3 实例重采样 782 10.2.4 对检验统计量的分布建模 783 10.3 分类问题的统计检验 783 10.3.1 评估分类性能 783 10.3.2 以多重假设检 验处理二分类问题 785 10.3.3 模型选择中的多重假设检验 786 10.4 关联分析的统计检验 787 10.4.1 使用统计模型 788 10.4.2 使用随机化方法 794 10.5 聚类分析的统计检验 795 10.5.1 为内部指标生成零分布 796 10.5.2 为外部指标生成零分布 798 10.5.3 富集 798 10.6 异常检测的统计检验 800 10.7 文献注释 803 10.8 习题 808 Contents 1 Introduction 1 1.1 What Is Data Mining 4 1.2 Motivating Challenges 5 1.3 The Origins of Data Mining 7 1.4 Data Mining Tasks 9 1.5 Scope and Organization of the Book 13 1.6 Bibliographic Notes 15 1.7 Exercises 21 2 Data 23 2.1 Types of Data 26 2.1.1 Attributes and Measurement 27 2.1.2 Types of Data Sets 34 2.2 Data Quality 42 2.2.1 Measurement and Data Collection Issues 42 2.2.2 Issues Related to Applications 49 2.3 Data Preprocessing 50 2.3.1 Aggregation 51 2.3.2 Sampling 52 2.3.3 Dimensionality Reduction 56 2.3.4 Feature Subset Selection 58 2.3.5 Feature Creation 61 2.3.6 Discretization and Binarization 63 2.3.7 Variable Transformation 69 2.4 Measures of Similarity and Dissimilarity 71 2.4.1 Basics 72 2.4.2 Similarity and Dissimilarity between Simple Attributes . 74 2.4.3 Dissimilarities between Data Objects 76 2.4.4 Similarities between Data Objects 78 2.4.5 Examples of Proximity Measures 79 2.4.6 Mutual Information 88 2.4.7 Kernel Functions* 90 2.4.8 Bregman Divergence* 94 2.4.9 Issues in Proximity Calculation 96 2.4.10 Selecting the Right Proximity Measure 98 2.5 Bibliographic Notes 100 2.6 Exercises 105 3 Classiftcation: Basic Concepts and Techniques 113 3.1 Basic Concepts 114 3.2 General Framework for Classication 117 3.3 Decision Tree Classier 119 3.3.1 A Basic Algorithm to Build a Decision Tree 121 3.3.2 Methods for Expressing Attribute Test Conditions 124 3.3.3 Measures for Selecting an Attribute Test Condition 127 3.3.4 Algorithm for Decision Tree Induction 136 3.3.5 Example Application: Web Robot Detection 138 3.3.6 Characteristics of Decision Tree Classiers 140 3.4 Model Overtting 147 3.5 Model Selection 156 3.5.1 Using a Validation Set 156 3.5.2 Incorporating Model Complexity 157 3.5.3 Estimating Statistical Bounds 162 3.5.4 Model Selection for Decision Trees 162 3.6 Model Evaluation 164 3.6.1 Holdout Method 165 3.6.2 Cross-Validation 165 3.7 Presence of Hyper-parameters 168 3.7.1 Hyper-parameter Selection 168 3.7.2 Nested Cross-Validation 170 3.8 Pitfalls of Model Selection and Evaluation 172 3.8.1 Overlap between Training and Test Sets 172 3.8.2 Use of Validation Error as Generalization Error 172 3.9 Model Comparison 173 3.9.1 Estimating the Condence Interval for Accuracy 174 3.9.2 Comparing the Performance of Two Models 175 3.10 Bibliographic Notes 176 3.11 Exercises 185 4 Classiftcation: Alternative Techniques 193 4.1 Types of Classiers 193 4.2 Rule-Based Classier 195 4.2.1 How a Rule-Based Classier Works 197 4.2.2 Properties of a Rule Set 198 4.2.3 Direct Methods for Rule Extraction 199 4.2.4 Indirect Methods for Rule Extraction 204 4.2.5 Characteristics of Rule-Based Classiers 206 4.3 Nearest Neighbor Classiers 208 4.3.1 Algorithm 209 4.3.2 Characteristics of Nearest Neighbor Classiers 210 4.4 Na¨ive Bayes Classier 212 4.4.1 Basics of Probability Theory 213 4.4.2 Na¨ive Bayes Assumption 218 4.5 Bayesian Networks 227 4.5.1 Graphical Representation 227 4.5.2 Inference and Learning 233 4.5.3 Characteristics of Bayesian Networks 242 4.6 Logistic Regression 243 4.6.1 Logistic Regression as a Generalized Linear Model 244 4.6.2 Learning Model Parameters 245 4.6.3 Characteristics of Logistic Regression 248 4.7 Articial Neural Network (ANN) 249 4.7.1 Perceptron 250 4.7.2 Multi-layer Neural Network 254 4.7.3 Characteristics of ANN 261 4.8 Deep Learning 262 4.8.1 Using Synergistic Loss Functions 263 4.8.2 Using Responsive Activation Functions 266 4.8.3 Regularization 268 4.8.4 Initialization of Model Parameters 271 4.8.5 Characteristics of Deep Learning 275 4.9 Support Vector Machine (SVM) 276 4.9.1 Margin of a Separating Hyperplane 276 4.9.2 Linear SVM 278 4.9.3 Soft-margin SVM 284 4.9.4 Nonlinear SVM 290 4.9.5 Characteristics of SVM 294 4.10 Ensemble Methods 296 4.10.1 Rationale for Ensemble Method 297 4.10.2 Methods for Constructing an Ensemble Classier 297 4.10.3 Bias-Variance Decomposition 300 4.10.4 Bagging 302 4.10.5 Boosting 305 4.10.6 Random Forests 310 4.10.7 Empirical Comparison among Ensemble Methods 312 4.11 Class Imbalance Problem 313 4.11.1 Building Classiers with Class Imbalance 314 4.11.2 Evaluating Performance with Class Imbalance 318 4.11.3 Finding an Optimal Score Threshold 322 4.11.4 Aggregate Evaluation of Performance 323 4.12 Multiclass Problem 330 4.13 Bibliographic Notes 333 4.14 Exercises 345 5 Association Analysis: Basic Concepts and Algorithms 357 5.1 Preliminaries 358 5.2 Frequent Itemset Generation 362 5.2.1 The Apriori Principle 363 5.2.2 Frequent Itemset Generation in the Apriori Algorithm . 364 5.2.3 Candidate Generation and Pruning 368 5.2.4 Support Counting 373 5.2.5 Computational Complexity 377 5.3 Rule Generation 380 5.3.1 Condence-Based Pruning 380 5.3.2 Rule Generation in Apriori Algorithm 381 5.3.3 An Example: Congressional Voting Records 382 5.4 Compact Representation of Frequent Itemsets 384 5.4.1 Maximal Frequent Itemsets 384 5.4.2 Closed Itemsets 386 5.5 Alternative Methods for Generating Frequent Itemsets* 389 5.6 FP-Growth Algorithm* 393 5.6.1 FP-Tree Representation 394 5.6.2 Frequent Itemset Generation in FP-Growth Algorithm . 397 5.7 Evaluation of Association Patterns 401 5.7.1 Objective Measures of Interestingness 402 5.7.2 Measures beyond Pairs of Binary Variables 414 5.7.3 Simpson’s Paradox 416 5.8 Eect of Skewed Support Distribution 418 5.9 Bibliographic Notes 424 5.10 Exercises 438 6 Association Analysis: Advanced Concepts 451 6.1 Handling Categorical Attributes 451 6.2 Handling Continuous Attributes 454 6.2.1 Discretization-Based Methods 454 6.2.2 Statistics-Based Methods 458 6.2.3 Non-discretization Methods 460 6.3 Handling a Concept Hierarchy 462 6.4 Sequential Patterns 464 6.4.1 Preliminaries 465 6.4.2 Sequential Pattern Discovery 468 6.4.3 Timing Constraints 473 6.4.4 Alternative Counting Schemes 477 6.5 Subgraph Patterns 479 6.5.1 Preliminaries 480 6.5.2 Frequent Subgraph Mining 483 6.5.3 Candidate Generation 487 6.5.4 Candidate Pruning 493 6.5.5 Support Counting 493 6.6 Infrequent Patterns 493 6.6.1 Negative Patterns 494 6.6.2 Negatively Correlated Patterns 495 6.6.3 Comparisons among Infrequent Patterns, Negative Patterns, and Negatively Correlated Patterns 496 6.6.4 Techniques for Mining Interesting Infrequent Patterns . 498 6.6.5 Techniques Based on Mining Negative Patterns 499 6.6.6 Techniques Based on Support Expectation 501 6.7 Bibliographic Notes 505 6.8 Exercises 510 7 Cluster Analysis: Basic Concepts and Algorithms 525 7.1 Overview 528 7.1.1 What Is Cluster Analysis 528 7.1.2 Dierent Types of Clusterings 529 7.1.3 Dierent Types of Clusters 531 7.2 K-means 534 7.2.1 The Basic K-means Algorithm 535 7.2.2 K-means: Additional Issues 544 7.2.3 Bisecting K-means 547 7.2.4 K-means and Dierent Types of Clusters 548 7.2.5 Strengths and Weaknesses 549 7.2.6 K-means as an Optimization Problem 549 7.3 Agglomerative Hierarchical Clustering 554 7.3.1 Basic Agglomerative Hierarchical Clustering Algorithm 555 7.3.2 Specic Techniques 557 7.3.3 The Lance-Williams Formula for Cluster Proximity 562 7.3.4 Key Issues in Hierarchical Clustering 563 7.3.5 Outliers 564 7.3.6 Strengths and Weaknesses 565 7.4 DBSCAN 565 7.4.1 Traditional Density: Center-Based Approach 565 7.4.2 The DBSCAN Algorithm 567 7.4.3 Strengths and Weaknesses 569 7.5 Cluster Evaluation 571 7.5.1 Overview 571 7.5.2 Unsupervised Cluster Evaluation Using Cohesion and Separation 574 7.5.3 Unsupervised Cluster Evaluation Using the Proximity Matrix 582 7.5.4 Unsupervised Evaluation of Hierarchical Clustering 585 7.5.5 Determining the Correct Number of Clusters 587 7.5.6 Clustering Tendency 588 7.5.7 Supervised Measures of Cluster Validity 589 7.5.8 Assessing the Signicance of Cluster Validity Measures . 594 7.5.9 Choosing a Cluster Validity Measure 596 7.6 Bibliographic Notes 597 7.7 Exercises 603 8 Cluster Analysis: Additional Issues and Algorithms 613 8.1 Characteristics of Data, Clusters, and Clustering Algorithms . 614 8.1.1 Example: Comparing K-means and DBSCAN 614 8.1.2 Data Characteristics 615 8.1.3 Cluster Characteristics 617 8.1.4 General Characteristics of Clustering Algorithms 619 8.2 Prototype-Based Clustering 621 8.2.1 Fuzzy Clustering 621 8.2.2 Clustering Using Mixture Models 627 8.2.3 Self-Organizing Maps (SOM) 637 8.3 Density-Based Clustering 644 8.3.1 Grid-Based Clustering 644 8.3.2 Subspace Clustering 648 8.3.3 DENCLUE: A Kernel-Based Scheme for Density-Based Clustering 652 8.4 Graph-Based Clustering 656 8.4.1 Sparsication 657 8.4.2 Minimum Spanning Tree (MST) Clustering 658 8.4.3 OPOSSUM: Optimal Partitioning of Sparse Similarities Using METIS 659 8.4.4 Chameleon: Hierarchical Clustering with Dynamic Modeling 660 8.4.5 Spectral Clustering 666 8.4.6 Shared Nearest Neighbor Similarity 673 8.4.7 The Jarvis-Patrick Clustering Algorithm 676 8.4.8 SNN Density 678 8.4.9 SNN Density-Based Clustering 679 8.5 Scalable Clustering Algorithms 681 8.5.1 Scalability: General Issues and Approaches 681 8.5.2 BIRCH 684 8.5.3 CURE 686 8.6 Which Clustering Algorithm 690 8.7 Bibliographic Notes 693 8.8 Exercises 699 9 Anomaly Detection 703 9.1 Characteristics of Anomaly Detection Problems 705 9.1.1 A Denition of an Anomaly 705 9.1.2 Nature of Data 706 9.1.3 How Anomaly Detection is Used 707 9.2 Characteristics of Anomaly Detection Methods 708 9.3 Statistical Approaches 710 9.3.1 Using Parametric Models 710 9.3.2 Using Non-parametric Models 714 9.3.3 Modeling Normal and Anomalous Classes 715 9.3.4 Assessing Statistical Signicance 717 9.3.5 Strengths and Weaknesses 718 9.4 Proximity-based Approaches 719 9.4.1 Distance-based Anomaly Score 719 9.4.2 Density-based Anomaly Score 720 9.4.3 Relative Density-based Anomaly Score 722 9.4.4 Strengths and Weaknesses 723 9.5 Clustering-based Approaches 724 9.5.1 Finding Anomalous Clusters 724 9.5.2 Finding Anomalous Instances 725 9.5.3 Strengths and Weaknesses 728 9.6 Reconstruction-based Approaches 728 9.7 One-class Classication 732 9.7.1 Use of Kernels 733 9.7.2 The Origin Trick 734 9.7.3 Strengths and Weaknesses 738 9.8 Information Theoretic Approaches 738 9.9 Evaluation of Anomaly Detection 740 9.10 Bibliographic Notes 742 9.11 Exercises 749 10 Avoiding False Discoveries 755 10.1 Preliminaries: Statistical Testing 756 10.1.1 Signicance Testing 756 10.1.2 Hypothesis Testing 761 10.1.3 Multiple Hypothesis Testing 767 10.1.4 Pitfalls in Statistical Testing 776 10.2 Modeling Null and Alternative Distributions 778 10.2.1 Generating Synthetic Data Sets 781 10.2.2 Randomizing Class Labels 782 10.2.3 Resampling Instances 782 10.2.4 Modeling the Distribution of the Test Statistic 783 10.3 Statistical Testing for Classication 783 10.3.1 Evaluating Classication Performance 783 10.3.2 Binary Classication as Multiple Hypothesis Testing 785 10.3.3 Multiple Hypothesis Testing in Model Selection 786 10.4 Statistical Testing for Association Analysis 787 10.4.1 Using Statistical Models 788 10.4.2 Using Randomization Methods 794 10.5 Statistical Testing for Cluster Analysis 795 10.5.1 Generating a Null Distribution for Internal Indices 796 10.5.2 Generating a Null Distribution for External Indices 798 10.5.3 Enrichment 798 10.6 Statistical Testing for Anomaly Detection 800 10.7 Bibliographic Notes 803 10.8 Exercises 808 ---------------------------计算机组成与设计:硬件/软件接口(英文版·原书第5版·RISC-V版)--------------------------- C H A P T E R S 1 Computer Abstractions and Technology 2 1.1 Introduction 3 1.2 Eight Great Ideas in Computer Architecture 11 1.3 Below Your Program 13 1.4 Under the Covers 16 1.5 Technologies for Building Processors and Memory 24 1.6 Performance 28 1.7 The Power Wall 40 1.8 The Sea Change: The Switch from Uniprocessors to Multiprocessors 43 1.9 Real Stuff: Benchmarking the Intel Core i7 46 1.10 Fallacies and Pitfalls 49 1.11 Concluding Remarks 52 1.12 Historical Perspective and Further Reading 54 1.13 Exercises 54 2 Instructions: Language of the Computer 60 2.1 Introduction 62 2.2 Operations of the Computer Hardware 63 2.3 Operands of the Computer Hardware 67 2.4 Signed and Unsigned Numbers 74 2.5 Representing Instructions in the Computer 81 2.6 Logical Operations 89 2.7 Instructions for Making Decisions 92 2.8 Supporting Procedures in Computer Hardware 98 2.9 Communicating with People 108 2.10 RISC-V Addressing for Wide Immediates and Addresses 113 2.11 Parallelism and Instructions: Synchronization 121 2.12 Translating and Starting a Program 124 2.13 A C Sort Example to Put it All Together 133 2.14 Arrays versus Pointers 141 2.15 Advanced Material: Compiling C and Interpreting Java 144 2.16 Real Stuff: MIPS Instructions 145 2.17 Real Stuff: x86 Instructions 146 2.18 Real Stuff: The Rest of the RISC-V Instruction Set 155 2.19 Fallacies and Pitfalls 157 2.20 Concluding Remarks 159 2.21 Historical Perspective and Further Reading 162 2.22 Exercises 162 3 Arithmetic for Computers 172 3.1 Introduction 174 3.2 Addition and Subtraction 174 3.3 Multiplication 177 3.4 Division 183 3.5 Floating Point 191 3.6 Parallelism and Computer Arithmetic: Subword Parallelism 216 3.7 Real Stuff: Streaming SIMD Extensions and Advanced Vector Extensions in x86 217 3.8 Going Faster: Subword Parallelism and Matrix Multiply 218 3.9 Fallacies and Pitfalls 222 3.10 Concluding Remarks 225 3.11 Historical Perspective and Further Reading 227 3.12 Exercises 227 4 The Processor 234 4.1 Introduction 236 4.2 Logic Design Conventions 240 4.3 Building a Datapath 243 4.4 A Simple Implementation Scheme 251 4.5 An Overview of Pipelining 262 4.6 Pipelined Datapath and Control 276 4.7 Data Hazards: Forwarding versus Stalling 294 4.8 Control Hazards 307 4.9 Exceptions 315 4.10 Parallelism via Instructions 321 4.11 Real Stuff: The ARM Cortex-A53 and Intel Core i7 Pipelines 334 4.12 Going Faster: Instruction-Level Parallelism and Matrix Multiply 342 4.13 Advanced Topic: An Introduction to Digital Design Using a Hardware Design Language to Describe and Model a Pipeline and More Pipelining Illustrations 345 4.14 Fallacies and Pitfalls 345 4.15 Concluding Remarks 346 4.16 Historical Perspective and Further Reading 347 4.17 Exercises 347 5 Large and Fast: Exploiting Memory Hierarchy 364 5.1 Introduction 366 5.2 Memory Technologies 370 5.3 The Basics of Caches 375 5.4 Measuring and Improving Cache Performance 390 5.5 Dependable Memory Hierarchy 410 5.6 Virtual Machines 416 5.7 Virtual Memory 419 5.8 A Common Framework for Memory Hierarchy 443 5.9 Using a Finite-State Machine to Control a Simple Cache 449 5.10 Parallelism and Memory Hierarchy: Cache Coherence 454 5.11 Parallelism and Memory Hierarchy: Redundant Arrays of Inexpensive Disks 458 5.12 Advanced Material: Implementing Cache Controllers 459 5.13 Real Stuff: The ARM Cortex-A53 and Intel Core i7 Memory Hierarchies 459 5.14 Real Stuff: The Rest of the RISC-V System and Special Instructions 464 5.15 Going Faster: Cache Blocking and Matrix Multiply 465 5.16 Fallacies and Pitfalls 468 5.17 Concluding Remarks 472 5.18 Historical Perspective and Further Reading 473 5.19 Exercises 473 6 Parallel Processors from Client to Cloud 490 6.1 Introduction 492 6.2 The Difficulty of Creating Parallel Processing Programs 494 6.3 SISD, MIMD, SIMD, SPMD, and Vector 499 6.4 Hardware Multithreading 506 6.5 Multicore and Other Shared Memory Multiprocessors 509 6.6 Introduction to Graphics Processing Units 514 6.7 Clusters, Warehouse Scale Computers, and Other Message-Passing Multiprocessors 521 6.8 Introduction to Multiprocessor Network Topologies 526 6.9 Communicating to the Outside World: Cluster Networking 529 6.10 Multiprocessor Benchmarks and Performance Models 530 6.11 Real Stuff: Benchmarking and Rooflines of the Intel Core i7 960 and the NVIDIA Tesla GPU 540 6.12 Going Faster: Multiple Processors and Matrix Multiply 545 6.13 Fallacies and Pitfalls 548 6.14 Concluding Remarks 550 6.15 Historical Perspective and Further Reading 553 6.16 Exercises 553 A P P E N D I X A The Basics of Logic Design A-2 A.1 Introduction A-3 A.2 Gates, Truth Tables, and Logic Equations A-4 A.3 Combinational Logic A-9 A.4 Using a Hardware Description Language A-20 A.5 Constructing a Basic Arithmetic Logic Unit A-26 A.6 Faster Addition: Carry Lookahead A-37 A.7 Clocks A-47 A.8 Memory Elements: Flip-Flops, Latches, and Registers A-49 A.9 Memory Elements: SRAMs and DRAMs A-57 A.10 Finite-State Machines A-66 A.11 Timing Methodologies A-71 A.12 Field Programmable Devices A-77 A.13 Concluding Remarks A-78 A.14 Exercises A-79 Index I-1 O N L I N E C O N T E N T Graphics and Computing GPUs B-2 B.1 Introduction B-3 B.2 GPU System Architectures B-7 B.3 Programming GPUs B-12 B.4 Multithreaded Multiprocessor Architecture B-25 B.5 Parallel Memory System B-36 B.6 Floating Point Arithmetic B-41 B.7 Real Stuff: The NVIDIA GeForce 8800 B-46 B.8 Real Stuff: Mapping Applications to GPUs B-55 B.9 Fallacies and Pitfalls B-72 B.10 Concluding Remarks B-76 B.11 Historical Perspective and Further Reading B-77 Mapping Control to Hardware C-2 C.1 Introduction C-3 C.2 Implementing Combinational Control Units C-4 C.3 Implementing Finite-State Machine Control C-8 C.4 Implementing the Next-State Function with a Sequencer C-22 C.5 Translating a Microprogram to Hardware C-28 C.6 Concluding Remarks C-32 C.7 Exercises C-33 A Survey of RISC Architectures for Desktop, Server, and Embedded Computers D-2 D.1 Introduction D-3 D.2 Addressing Modes and Instruction Formats D-5 D.3 Instructions: the MIPS Core Subset D-9 D.4 Instructions: Multimedia Extensions of the Desktop/Server RISCs D-16 D.5 Instructions: Digital Signal-Processing Extensions of the Embedded RISCs D-19 D.6 Instructions: Common Extensions to MIPS Core D-20 D.7 Instructions Unique to MIPS-64 D-25 D.8 Instructions Unique to Alpha D-27 D.9 Instructions Unique to SPARC v9 D-29 D.10 Instructions Unique to PowerPC D-32 D.11 Instructions Unique to PA-RISC 2.0 D-34 D.12 Instructions Unique to ARM D-36 D.13 Instructions Unique to Thumb D-38 D.14 Instructions Unique to SuperH D-39 D.15 Instructions Unique to M32R D-40 D.16 Instructions Unique to MIPS-16 D-40 D.17 Concluding Remarks D-43 Glossary G-1 Further Reading FR-1 |