根据变量属性选择聚类算法(K-means,Kmodes,K-prototype

1.聚类

将相似的样本划分为一类,分析各类间的差异。

样本的属性有定性和定量两种:

如果变量只有数值型数据:可选用K-means,DBSCAN,分层聚类等。

如果变量只有分类型数据:可选用K-modes,Kmodes是Kmeans的一种变种算法,将原本Kmeans使用的欧式距离替换为字符间的汉明距离。

如果变量有数值和分类型混合的数据:可用K-prototype,度量具有混合属性的方法是:数值属性采用K-means方法得到P1,分类属性采用Kmodes方法得到P2,D=P1+a*P2,a是权重,如果分类属性重要增大a,否则减小a。

2.算法原理

2.1 K-means

对于数据集,给定一个分类数K,划分法将数据集划分为K个组,每一个分组就代表一个分类。

大部分划分方法是基于距离的,以K-means算法为例,其大致原理是:

1.首先确定分类的数量K

2. 从数据集中随机的选择K个样本点作为初始类中心(质心)

3. 计算数据集中每一个样本点与初始类中心的距离,离那一个类中心近就划分给那个类中

4.重新计算K个类的类中心(质心),新的质心是该组所有样本的各属性的平均值,即means

5.如果新的类中与旧的类中心的距离小于设定的阈值,可以认为我们进行的聚类达到预期的结果,算法终止。

6.如果新的类中心和旧中心的距离很大,继续迭代3~5步骤。

2.2 Kmodes算法

Kmodes算法原理与Kmeans原理一样,计算的距离的方法不同。Kmodes计算的是字符间的距离。

距离的计算:假设有两个点:A,B,A=(a1,a2,a3,...an),B=(b1,b2,b3,...bn)

欧式距离:d(A,B)=\sqrt{\sum_{i=1}^n (a_{i} -b_{i})^2 }     (i=1,2,3,4..n)

汉明距离(也叫海明威距离):通过比较两个向量每一位是否相同,若不同则汉明距离加1,这样得到汉明距离,向量相似度越高,得到的汉明距离越小。

余弦距离:\cos \theta =\frac{\sum\nolimits_{1}^n (a_{i} \times b_{i} )}{\sqrt{\sum\nolimits_{1}^n}a_{i}^2 \times \sqrt{\sum\nolimits_{1}^nb_{i}^2  }   }  两个向量间的余弦相似度。夹角越小,余弦值越接近1.

2.3  K-prototype算法

K-prototype算法提出了混合属性簇的原型,其原型就是数值属性原型用属性中所有属性取值的均值,分类属性原型是分类属性中取值频率最高的属性。合起来就是原型。

K-prototype的目标函数(损失函数):

K-prototype聚类的准则就是使用一个合适的损失函数去度量数值型和分类型变量对原型的距离。假设X={X1,X2,....X3}为n个样本集合,Xi={X1,X2,...Xm}为样本i的m个属性。k为聚类个数。而这个损失函数可以定义为:E=\sum\nolimits_{l=1}^k\sum\nolimits_{i=1}^ny_{il} d(X_{i},Q_{l} )

其中Q_{l} =[q_{l1},q_{l2},...q_{lm}](一个样本有每个属性),它表示类别 l 的一个原型,也就是类别 l 的中心(质心),y_{il} 为切分矩阵Y的元素,其实就是在类别l中有么有这个样本,有则为1,没有为0。d是相似性度量,经常定义为平方欧式距离。E_{l} =\sum\nolimits_{i=1}^n y_{il} d(X_{i} ,Q_{l} )为把X分为类别l的总损失。

q_{lj} =\frac{1}{nl} \sum\nolimits_{i=1}^ny_{il}x_{ij} ,j=1,2,...m 时,E_{l} 达到最小化,

其中n_{l} =\sum\nolimits_{i=1}^n y_{il} 为类别l中的样本个数。上面是对于数值型变量,当X中含有分类变量时,可以把相似度改为:

d(X_{i} ,Q_{l})=\sum\nolimits_{i=1}^r(x_{ij}^r-q_{lj}^r)^2 +\gamma l\sum\nolimits_{j=1}^c\delta (x_{ij}^c ,q_{lj}^c) r,c分别为数值属性和分类属性的个数,\gamma l是类别l中分类属性的权重。

将d(Xi,Ql)带入El中:E_{l} =\sum\nolimits_{i=1}^ny_{il}  \sum\nolimits_{i=1}^r(x_{ij}^r-q_{lj}^r)^2 +\gamma l\sum\nolimits_{i=1}^ny_{il}  \sum\nolimits_{j=1}^c\delta (x_{ij}^c ,q_{lj}^c) =E_{l}^r+E_{l}^c 这样E_{l}^r就代表类别l的样本中所有数值属性的总损失,E_{l}^c代表所有分类属性的总损失。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容