From 9d02fa5e08926491e9545fa0958575049f5a8a5f Mon Sep 17 00:00:00 2001 From: szcf-weiya <2215235182@qq.com> Date: Wed, 2 Oct 2019 14:54:12 +0800 Subject: [PATCH] 14cancer data #208 --- data/14-Cancer/14cancer.ytest.txt | 2 ++ data/14-Cancer/14cancer.ytrain.txt | 1 + data/14-Cancer/README.md | 33 +++++++++++++++++ data/14-Cancer/cvfolds.txt | 21 +++++++++++ .../14.3-Cluster-Analysis.md | 36 +++++++++---------- 5 files changed, 75 insertions(+), 18 deletions(-) create mode 100644 data/14-Cancer/14cancer.ytest.txt create mode 100644 data/14-Cancer/14cancer.ytrain.txt create mode 100644 data/14-Cancer/README.md create mode 100644 data/14-Cancer/cvfolds.txt diff --git a/data/14-Cancer/14cancer.ytest.txt b/data/14-Cancer/14cancer.ytest.txt new file mode 100644 index 0000000000..03c74f5bb3 --- /dev/null +++ b/data/14-Cancer/14cancer.ytest.txt @@ -0,0 +1,2 @@ + + 1 1 1 2 2 3 3 3 4 4 4 5 5 5 5 5 5 6 6 6 7 7 8 8 9 9 9 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 14 12 4 3 2 2 2 2 1 diff --git a/data/14-Cancer/14cancer.ytrain.txt b/data/14-Cancer/14cancer.ytrain.txt new file mode 100644 index 0000000000..17a2c180f7 --- /dev/null +++ b/data/14-Cancer/14cancer.ytrain.txt @@ -0,0 +1 @@ + 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 diff --git a/data/14-Cancer/README.md b/data/14-Cancer/README.md new file mode 100644 index 0000000000..a32fb91bc4 --- /dev/null +++ b/data/14-Cancer/README.md @@ -0,0 +1,33 @@ +14-cancer gene expression data. 16,063 genes, 144 training samples, +54 test samples. + +One gene per row, one sample per column + +Cancer classes are labelled as follows: + +1. breast +2. prostate +3. lung +4. collerectal +5. lymphoma +6. bladder +7. melanoma +8. uterus +9. leukemia +10. renal +11. pancreas +12. ovary +13. meso +14. cns + +Reference: + +S. Ramaswamy and P. Tamayo and R. Rifkin and S. Mukherjee and C.H. Yeang and +M. Angelo and C. Ladd and M. Reich and E. Latulippe and J.P. Mesirov and +T. Poggio and W. Gerald and M. Loda and E.S. Lander and T.R. Golub (2001) + +Multiclass Cancer Diagnosis Using Tumor Gene Expression Signatures + +Proc. Natl. Acad. Sci., 98, p15149-15154. + + diff --git a/data/14-Cancer/cvfolds.txt b/data/14-Cancer/cvfolds.txt new file mode 100644 index 0000000000..15283711b8 --- /dev/null +++ b/data/14-Cancer/cvfolds.txt @@ -0,0 +1,21 @@ + X1 X2 X3 X4 X5 X6 X7 X8 +1 5 2 1 3 6 4 7 8 +2 14 15 12 9 11 16 10 13 +3 23 19 20 17 21 24 18 22 +4 31 32 29 28 26 30 25 27 +5 35 48 38 46 42 34 47 33 +6 44 45 41 40 37 43 39 36 +7 55 56 49 51 53 50 52 54 +8 63 59 64 61 60 62 57 58 +9 69 71 67 66 72 68 70 65 +10 87 91 76 86 81 88 83 96 +11 92 74 89 93 95 84 79 73 +12 85 90 75 77 82 94 80 78 +13 99 103 98 100 97 104 102 101 +14 105 111 106 109 107 112 108 110 +15 117 118 120 113 116 115 119 114 +16 128 121 122 124 125 127 123 126 +17 133 139 137 138 132 142 144 135 +18 136 129 130 134 141 131 143 140 + + diff --git a/docs/14-Unsupervised-Learning/14.3-Cluster-Analysis.md b/docs/14-Unsupervised-Learning/14.3-Cluster-Analysis.md index fe0519de3e..d03a5d93d9 100644 --- a/docs/14-Unsupervised-Learning/14.3-Cluster-Analysis.md +++ b/docs/14-Unsupervised-Learning/14.3-Cluster-Analysis.md @@ -204,50 +204,50 @@ $$ \end{align*} $$ -因此,通过以某种方式将$N$个观测分配到$K$个类中来最小化该准则,该方式为最小化每个类中观测点与类别中心(用该类中的点定义)的不相似性的平均值. +因此,通过以某种方式将 $N$ 个观测分配到 $K$ 个类中来最小化该准则,该方式为最小化每个类中观测点与类别中心(用该类中的点定义)的不相似性的平均值. 求解下列问题的迭代下降算法 $$ -C^*=\underset{C}{min}\sum\limits_{k=1}^KN_k\sum\limits_{C(i)=k}\Vert x_i-\bar x_k\Vert^2 +C^*=\underset{C}{\min}\sum_{k=1}^KN_k\sum_{C(i)=k}\Vert x_i-\bar x_k\Vert^2 $$ -可以通过注意到任意观测集$S$有下式而得到. +可以通过注意到任意观测集 $S$ 有下式而得到. $$ \bar x_S=\underset{m}{\text{argmin}}\;\sum\limits_{i\in S}\Vert x_i-m\Vert^2\tag{14.32} $$ -因此我们可以通过求解扩大的优化问题而得到$C^*$ +因此我们可以通过求解扩大的优化问题而得到 $C^*$ $$ -\underset{C,\{m_k\}_1^K}{min}\;\sum\limits_{k=1}^KN_k\sum\limits_{C(i)=k}\Vert x_i-m_k\Vert^2\tag{14.33} +\underset{C,\{m_k\}_1^K}{\min}\;\sum\limits_{k=1}^KN_k\sum\limits_{C(i)=k}\Vert x_i-m_k\Vert^2\tag{14.33}\label{14.33} $$ -这个可以通过算法14.1给出的交替优化过程得以最小化. +这个可以通过算法 14.1 给出的交替优化过程得以最小化. ![](../img/14/alg14.1.png) -每个步骤1和步骤2都降低准则(14.33)的值,所以收敛性是保证的.然而,结果可能会表现处次优局部最小值.Hartigan and Wong (1979)[^3]的算法进一步研究,并且保证了单个的一个观测从一个类转换到另一个类不会降低目标值.另外,应该用许多初始值的许多随机选择来开始算法,然后选择有最小目标函数的解. +每个步骤 1 和步骤 2 都降低准则 \eqref{14.33} 的值,所以收敛性是保证的.然而,结果可能会表现出次优局部最小值.Hartigan and Wong (1979)[^3]的算法进一步研究,并且保证了单个的一个观测从一个类转换到另一个类不会降低目标值.另外,应该用许多初始值的许多随机选择来开始算法,然后选择有最小目标函数的解. -图14.6显示了图14.4的模拟数据的一些K-means迭代过程.重心用O来描述.直线显示了点的划分,每个部分都是离重心最近的点的集合.这个划分也称为Voronoi曲面细分.20次迭代之后收敛. +图 14.6 显示了图 14.4 的模拟数据的一些 K-means 迭代过,其中圆圈 O 表示重心.直线显示了点的划分,每个部分都是离重心最近的点的集合.这个划分也称为 Voronoi 曲面细分.20 次迭代之后收敛. ![](../img/14/fig14.6.png) -> 图14.6. 对于图14.4的模拟数据的K-means聚类算法的逐次迭代 +> 图 14.6. 对于图 14.4 的模拟数据的 K-means 聚类算法的逐次迭代 -## 高斯混合作为Soft K-means聚类 +## 高斯混合作为 Soft K-means 聚类 -K-means 聚类算法与估计特定的高斯混合模型的EM算法有关.(6.8节和8.5.1节)EM算法的步骤E对每个数据点基于在每个混合部分中的相对密度来赋予“responsibilities”,而步骤M基于当前的responsibilities重新计算各组分的密度参数.假设明确了我们有$K$个混合组分,每个是有着标量协方差矩阵$\sigma^2\mathbf I$的高斯密度.则在每个混合组分的相对密度是关于数据点到混合中心欧氏距离的单调函数.因此在这一步中EM是K-means聚类的soft,使得点以概率(而不是确定性的)分配到聚类中心.因为方差$\sigma\rightarrow 0$,这些概率变成0和1,两种方法也就一致.细节在练习14.2中给出. +K-means 聚类算法与估计特定的高斯混合模型的 EM 算法有关([6.8 节](../06-Kernel-Smoothing-Methods/6.8-Mixture-Models-for-Density-Estimation-and-Classification/index.html)和 [8.5.1 节](../08-Model-Inference-and-Averaging/8.5-The-EM-Algorithm/index.html)).EM 算法的步骤 E 对每个数据点基于在每个混合部分中的相对密度来赋予“responsibilities”,而步骤 M 基于当前的 responsibilities 重新计算各组分的密度参数.假设明确了我们有 $K$ 个混合组分,每个是有着标量协方差矩阵 $\sigma^2\mathbf I$ 的高斯密度.则在每个混合组分的相对密度是关于数据点到混合中心欧氏距离的单调函数.因此在这一步中 EM 是 soft 版本的 K-means 聚类,使得点以概率(而不是确定性地)分配到聚类中心.因为方差 $\sigma\rightarrow 0$,这些概率变成 0 和 1,两种方法也就一致.细节在 [练习 14.2](https://github.com/szcf-weiya/ESL-CN/issues/43) 中给出. -!!! note "weiya注: Ex. 14.2" - Ex. 14.2讨论了$k$个高斯组分的混合模型,而算法8.1针对的是两组分的高斯混合模型,但主要思想是一致的.具体解题过程参见[Issues 43: Ex. 14.2](https://github.com/szcf-weiya/ESL-CN/issues/43) +!!! note "weiya 注: Ex. 14.2" + Ex. 14.2 讨论了 $k$ 个高斯组分的混合模型,而算法 8.1 针对的是两组分的高斯混合模型,但主要思想是一致的.具体解题过程参见[Issues 43: Ex. 14.2](https://github.com/szcf-weiya/ESL-CN/issues/43) -图14.7说明了实线上两个聚类的结果. +图 14.7 说明了实线上两个聚类的结果. ![](../img/14/fig14.7.png) -> 图14.7. (左:)实线为两个高斯密度$g_0(x)$和$g_1(x)$(蓝色和橘黄色),以及$x=0.5$处的单个数据点(绿色圆点).带颜色的方块画在$x=-1.0$和$x=1.0$处,每个密度的均值.(右:)对于数据点来说,相对密度$g_0(x)/(g_0(x)+g_1(x))$和$g_1(x)/(g_0(x)+g_1(x))$称作每个聚类的“responsibilities”.上面一排的两张图,高斯标准误差为$\sigma=1.0$在下面的两张图中$\sigma=0.2$.EM算法用这些responsibilities来对每个数据点做“soft”分配到两个簇中.当$\sigma$相对大,responsibilities可以接近0.5,(右上图中为0.36和0.64).当$\sigma\rightarrow 0$时,responsibilities接近1,表示聚类中心离目标点很近,0代表是其它的聚类.“hard”版本的分配如右下图所示. +> 图 14.7. (左:)实线为两个高斯密度 $g_0(x)$ 和 $g_1(x)$(蓝色和橘黄色),以及 $x=0.5$ 处的单个数据点(绿色圆点).带颜色的方块画在$x=-1.0$ 和 $x=1.0$处,它们是各自密度的均值.(右:)对于每个数据点,相对密度 $g_0(x)/(g_0(x)+g_1(x))$ 和 $g_1(x)/(g_0(x)+g_1(x))$ 称作每个聚类的“responsibilities”.上面一排的两张图,高斯标准误差为 $\sigma=1.0$ 在下面的两张图中 $\sigma=0.2$.EM 算法用这些 responsibilities 来对每个数据点“soft”地分配到两个簇中.当 $\sigma$ 相对大,responsibilities 可以接近 0.5,(右上图中为 0.36 和 0.64).当 $\sigma\rightarrow 0$ 时,responsibilities 接近 1,表示聚类中心离目标点很近,而剩下类别的 responsibility 接近 0.“hard”版本的分配如右下图所示. ## 例子:人类肿瘤微阵列数据 -我们对第1章描述的人类肿瘤微阵列数据应用K-means聚类.这是一个高维聚类的例子.数据为$6830\times 64$的实值矩阵,每个元素表示基因(行)和样本(列)的表达测量值.这里我们对样本进行聚类,每个都是长度为6830的向量,对应6830个基因的表达值.每个样本有像breast(乳腺癌),melanoma等标签;聚类时,我们不会用这些标签,但是会验证哪个标签落入到哪个簇中. +我们对第 1 章描述的人类肿瘤微阵列数据应用 K-means 聚类.这是一个高维聚类的例子.数据为 $6830\times 64$ 的实值矩阵,每个元素表示基因(行)和样本(列)的表达测量值.这里我们对样本进行聚类,每个都是长度为 6830 的向量,对应 6830 个基因的表达值.每个样本有像 breast(乳腺癌), melanoma (黑素瘤) 等标签;聚类时,我们不会用这些标签,但是会验证哪个标签落入到哪个簇中. -我们对从1到10的$K$应用K-means聚类,而且对每次聚类计算总类间平方和,如图14.8所示.一般地我们在平方和曲线中寻找一个结点来定位最优簇的个数(见14.3.11).这里没有显然的指示:为了说明我们选择$K=3$给出如表14.2所示的三个类. +我们对从 1 到 10 的 $K$ 应用 K-means 聚类,而且对每次聚类计算总类间平方和,如图 14.8 所示.一般地我们在平方和曲线中寻找一个结点来定位最优簇的个数(见14.3.11).这里没有显然的指示:为了说明我们选择$ K=3$ 给出如表 14.2 所示的三个类. ![](../img/14/fig14.8.png) @@ -257,7 +257,7 @@ K-means 聚类算法与估计特定的高斯混合模型的EM算法有关.(6 > 表14.2. 人类肿瘤数据:每种类型的癌症在由K-means聚类得到的三个类中的个数 -我们看到这个过程在聚集同样类型的癌症是很成功的.事实上,在第2类中的两个乳腺癌后来发现是误诊的,而是转移的黑素瘤.然而,K-means聚类在这个应用中有缺点.其中一个是,它没有给出癌症中物体的线性顺序:我们仅仅以字母顺序列出来.第二,当聚类的数目$K$改变,簇中的成员以任意方式变化.也就是,如4个类,这些类不需要嵌套在上面的三个类中.基于这个原因,系统聚类可能在这个应用中更好. +我们看到这个过程在聚集同样类型的癌症是很成功的.事实上,在第 2 类中的两个乳腺癌后来发现是误诊的,而是转移的**黑素瘤 (melanomas)**.然而,K-means 聚类在这个应用中有缺点.其中一个是,它没有给出簇中物体的线性顺序:我们仅仅以字母顺序列出来.第二,当聚类的数目 $K$ 改变,簇中的成员以任意方式变化.也就是,如 4 个类,这些类不要求嵌套在上面的三个类中.基于这个原因,系统聚类可能在这个应用中更好. ## 向量量化