当前课程知识点:算法设计与分析 >  4 Greedy Algorithms >  4.9 Clustering >  Clustering

返回《算法设计与分析》慕课在线视频课程列表

Clustering在线视频

Clustering

下一节:Lecture note 4 Greedy Algorithms

返回《算法设计与分析》慕课在线视频列表

Clustering课程教案、知识点、字幕

下面我们来讨论聚类问题

聚类问题中

给定n个对象

标记为p_1到p_n

把它们分为相关的一些类

这里对象可以是照片 文件 微生物等

我们用距离函数来描述

不同对象之间的远近程度

聚类问题 是一个基础问题

它要求我们进行类的划分

使得不同类之间的点离得尽量远

在移动网络的路由

基因表达式的模式识别

文件分类

医学数据的相似性搜索

星体的辨别和区分等

聚类问题都有重要的应用

我们考虑k聚类问题

要求把对象分为k个非空的类

对于距离函数

我们有一些基本要求

第一个 不同的对象是可区分的

pi和pj的距离为零

当且仅当

它们是同一个对象

还要满足非负的性质

任何两个点p_i和p_j

它们之间的距离是非负的

第三个要求是对称性

p_i和p_j之间的距离

等于p_j和p_i之间的距离

我们定义

类的间隔(spacing)

为来自不同两类中的两点的最小距离

k聚类问题中

给定一个整数k

进行一个k类的划分

并且使得类的间隔最大

比如下面例子中 取k=4

在不同的类中

点对的最近距离为类的间隔

我们给出基于贪婪算法的k聚类算法

首先 我们把对象对应为图中的点

并把每个点作为一个类

得到了n个类

寻找来自不同类的最近的两个点

并且把它们连接起来

类的数目会减少1个

我们重复上述的操作

直到恰有n-k个类

我们发现 这个算法实际上就是Kruskal算法

只是我们在得到k个连通分支的时候

终止了算法

或者我们可以这样的理解所得到的解

它是最小支撑树中删掉k-1条费用最大的边

而得到的结果

下面我们来证明算法的正确性

令C^*表示上述算法中所返回的解

也就是在最小支撑树中

删除掉k-1条费用最大的边

而得到的结果

令得到的聚类为C_1^*到C_k^*

则C^*得到间隔最大的k聚类

令C表示另外的一个聚类

对应的类为C_1一直到C_k

注意到 我们算法所得到的目标值

最大的间隔d^*为

费用第k-1大的边上的费用

由于C^*和C不同

一定存在着点p_i和p_j

它们在C^*中

被分在了同一类C_r^*之中

但是 在C中它被分入了不同的类

我们称为C_s和C_t

如图 我们可以看出

p_i,p_j在聚类C^*中被分到了同一类C_r^*中

它们两个之间是连通的

那么一定有这条连通路上的某条边p-q

联通了C_s和C_t

对于C_r^*中联通p_i,p_j的路

其上的边被加入了进来

费用一定不大于第k-1大的边上的费用

也就是d^*

对于聚类C来说

它的目标 是不同类中的最小距离

一定不大于(p,q)的费用

因此也不大于d^*

这样 我们就得到了所需的结论

算法设计与分析课程列表:

1 Introduction of Algorithm

-1.1 Introduction

--Introduction

-1.2 A First Problem: Stable Matching

--A First Problem: Stable Matching

-1.3 Gale-Shapley Algorithm

--Gale-Shapley Algorithm

-1.4 Understanding Gale-Shapley Algorithm

--Understanding Gale-Shapley Algorithm

-Homework1

-Lecture note 1

--Lecture note 1 Introduction of Algorithm

2 Basics of Algorithm Analysis

-2.1 Computational Tractability

--Computational Tractability

-2.2 Asymptotic Order of Growth

--Asymptotic Order of Growth

-2.3 A Survey of Common Running Times

--A Survey of Common Running Times

-Homework2

-Lecture note 2

--Lecture note 2 Basics of Algorithm Analysis

3 Graph

-3.1 Basic Definitions and Applications

--Basic Definitions and Applications

-3.2 Graph Traversal

--Graph Traversal

-3.3 Testing Bipartiteness

--Testing Bipartiteness

-3.4 Connectivity in Directed Graphs

--Connectivity in Directed Graphs

-3.5 DAG and Topological Ordering

--DAG and Topological Ordering

-Homework3

-Lecture note 3

--Lecture note 3 Graph

4 Greedy Algorithms

-4.1 Coin Changing

--Coin Changing

-4.2 Interval Scheduling

--Interval Scheduling

-4.3 Interval Partitioning

--Interval Partitioning

-4.4 Scheduling to Minimize Lateness

--Scheduling to Minimize Lateness

-4.5 Optimal Caching

--Optimal Caching

-4.6 Shortest Paths in a Graph

--Shortest Paths in a Graph

-4.7 Minimum Spanning Tree

--Minimum Spanning Tree

-4.8 Correctness of Algorithms

--Correctness of Algorithms

-4.9 Clustering

--Clustering

-Homework4

-Lecture note 4

--Lecture note 4 Greedy Algorithms

5 Divide and Conquer

-5.1 Mergesort

--Mergesort

-5.2 Counting Inversions

--Counting Inversions

-5.3 Closest Pair of Points

--Closest Pair of Points

-5.4 Integer Multiplication

--Integer Multiplication

-5.5 Matrix Multiplication

--Video

-5.6 Convolution and FFT

--Convolution and FFT

-5.7 FFT

--FFT

-5.8 Inverse DFT

--Inverse DFT

-Homework5

-Lecture note 5

--Lecture note 5 Divide and Conquer

6 Dynamic Programming

-6.1 Weighted Interval Scheduling

--Weighted Interval Scheduling

-6.2 Segmented Least Squares

--Segmented Least Squares

-6.3 Knapsack Problem

--Knapsack Problem

-6.4 RNA Secondary Structure

--RNA Secondary Structure

-6.5 Sequence Alignment

--Sequence Alignment

-6.6 Shortest Paths

--Shortest Paths

-Homework6

-Lecture note 6

--Lecture note 6 Dynamic Programming

7 Network Flow

-7.1 Flows and Cuts

--Flows and Cuts

-7.2 Minimum Cut and Maximum Flow

--Minimum Cut and Maximum Flow

-7.3 Ford-Fulkerson Algorithm

--Ford-Fulkerson Algorithm

-7.4 Choosing Good Augmenting Paths

--Choosing Good Augmenting Paths

-7.5 Bipartite Matching

--Bipartite Matching

-Homework7

-Lecture note 7

--Lecture note 7 Network Flow

8 NP and Computational Intractability

-8.1 Polynomial-Time Reductions

--Polynomial-Time Reductions

-8.2 Basic Reduction Strategies I

--Basic Reduction Strategies I

-8.3 Basic Reduction Strategies II

--Basic Reduction Strategies II

-8.4 Definition of NP

--Definition of NP

-8.5 Problems in NP

--Problems in NP

-8.6 NP-Completeness

--NP-Completeness

-8.7 Sequencing Problems

--Sequencing Problems

-8.8 Numerical Problems

--Numerical Problems

-8.9 co-NP and the Asymmetry of NP

--co-NP and the Asymmetry of NP

-Homework8

-Lecture note 8

--Lecture note 8 NP and Computational Intractability

9 Approximation Algorithms

-9.1 Load Balancing

--Load Balancing

-9.2 Center Selection

--Center Selection

-9.3 The Pricing Method: Vertex Cover

--The Pricing Method: Vertex Cover

-9.4 LP Rounding: Vertex Cover

--LP Rounding: Vertex Cover

-9.5 Knapsack Problem

--Knapsack Problem

-Homework9

-Lecture note 9

--Lecture note 9 Approximation Algorithms

10 Local Search

-10.1 Landscape of an Optimization Problem

--Landscape of an Optimization Problem

-10.2 Maximum Cut

--Maximum Cut

-10.3 Nash Equilibria

--Nash Equilibria

-10.4 Price of Stability

--Price of Stability

-Homework10

-Lecture note 10

--Lecture note 10 Local Search

11 Randomized Algorithms

-11.1 Contention Resolution

--Contention Resolution

-11.2 Linearity of Expectation

--Linearity of Expectation

-11.3 MAX 3-SAT

--MAX 3-SAT

-11.4 Chernoff Bounds

--Chernoff Bounds

-Homework11

-Lecture note 11

--Lecture note 11 Randomized Algorithms

Exam

-Exam

Clustering笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。