聚類分析:數(shù)據(jù)模擬和SPSS實踐

原理篇

定義

聚類分析也稱群分析或點群分析奋救,它是研究多要素事物分類問題的數(shù)量方法紧憾,是一種新興的多元統(tǒng)計方法,是當代分類學與多元分析的結(jié)合签夭。

聚類分析的基本原理是,根據(jù)樣本的屬性,使用某種算法計算相似性或者差異性指標伐憾,以確定每個個案之間的親疏關系般眉,最終將所有個案分為多個相似組(即聚類),同一聚類的個案彼此相同慎宾,不同聚類中的個案彼此不同丐吓。常見的聚類方法有K均值聚類法、系統(tǒng)聚類法(也叫層次聚類法)等璧诵。

簡而言之汰蜘,聚類分析根據(jù)樣本的多個屬性,將相似的對象聚為一類之宿,使同類之間盡量同質(zhì)族操、不同類之間盡量異質(zhì)。

聚類分析常用于對市場進行分群,在用戶體驗研究中色难,常用來根據(jù)用戶的多種屬性進行用戶分群泼舱。

特征
  1. 聚類分析簡單、直觀枷莉。
  2. 聚類分析主要應用于探索性的研究娇昙,其分析的結(jié)果可以提供多個可能的解,選擇最終的解需要研究者的主觀判斷和后續(xù)的分析笤妙。
  3. 不管實際數(shù)據(jù)中是否真正存在不同的類別冒掌,利用聚類分析都能得到分成若干類別的解。
  4. 聚類分析的解完全依賴于研究者所選擇的聚類變量蹲盘,增加或刪除一些變量對最終的解都可能產(chǎn)生實質(zhì)性的影響股毫。
  5. 異常值和特殊的變量對聚類有較大影響,當分類變量的測量尺度不一致時召衔,需要事先做標準化處理铃诬。
K-means算法

K均值算法比較簡單,在SPSS中也被成為快速聚類苍凛,K均值算法中的每個類都是使用對象的平均值來表示趣席。

步驟:

  1. 將所有對象隨機分配到k個非空的類中。
  2. 計算每個類中所有對象的平均值醇蝴,表示類的中心點宣肚。
  3. 根據(jù)每個對象與各個類中心的距離,分配給最近的類哑蔫。
  4. 若滿足【終止條件】钉寝,則結(jié)束聚類;否則闸迷,轉(zhuǎn)到步驟2嵌纲。

終止條件可以是:

  • 沒有(或者小于某個數(shù)值的)對象被重新分配給不同的類;
  • 沒有(或者小于某個數(shù)值的)類中心發(fā)生變化腥沽;
  • 誤差平方和(SSE)達到局部最写摺;
  • 達到指定的迭代次數(shù)今阳。

K均值算法必須在平均值有意義的情況下才能使用师溅,因此不適用于分類變量。需要給定聚類數(shù)目盾舌,并且對異常數(shù)據(jù)和數(shù)據(jù)噪聲比較敏感墓臭。

系統(tǒng)聚類算法

系統(tǒng)聚類有兩種類型:聚合的(自下而上的)或者分解的(自上而下的)。

聚合的系統(tǒng)聚類法將每個對象都看做獨立的一類妖谴,每一次通過合并最相似的聚類來形成上一層次中的聚類窿锉,整個當全部數(shù)據(jù)點都合并到一個聚類的時候停止或者達到某個終止條件而結(jié)束——這是大部分系統(tǒng)聚類所采取的方式酌摇。

分解的系統(tǒng)聚類法首先將所有對象看成一類,然后把根節(jié)點分裂為一些子聚類嗡载,每個子聚類再遞歸地繼續(xù)往下分裂窑多,直到出現(xiàn)只包含一個數(shù)據(jù)點的單節(jié)點聚類出現(xiàn),即每個聚類中僅包含一個數(shù)據(jù)點洼滚。

系統(tǒng)聚類算法的好處是分析者可以對比不同聚類數(shù)量的結(jié)果埂息,從中選擇更感興趣(更有解釋力)的結(jié)果,這種對比可以通過生成的聚類樹進行遥巴。

實踐篇——使用模擬數(shù)據(jù)進行K均值聚類

用R生成模擬數(shù)據(jù)

為什么不使用現(xiàn)成的數(shù)據(jù)千康,而要用R來生成數(shù)據(jù)呢?

主要是因為在自己生成的數(shù)據(jù)中挪哄,我們可以預先定義存在哪些類型的用戶群吧秕、每個用戶群的屬性是怎樣的。

通過這種方式我們得以知道“客觀現(xiàn)實”是怎樣的迹炼,后面用SPSS做聚類分析時,可以將分析得出的結(jié)果與我們預設的“現(xiàn)實”做對比颠毙,看一下效果如何——聚類分析得出的類對我們預設的類的還原度有多高斯入。

假設我們要做的是一款企業(yè)管理軟件A的用戶畫像,所得數(shù)據(jù)中一共有1200個有效樣本蛀蜜,其中存在三類用戶:

  • 第一類用戶是“典型管理者”刻两,年齡大約在30-40歲之間,對使用A軟件態(tài)度相對較積極滴某,認為公司的管理是很自由的磅摹。其樣本共有200人。
  • 第二類用戶是“個性型員工”霎奢,年齡大約在20-25歲户誓,對使用A軟件態(tài)度波動較大,認為公司的管理很不自由幕侠。其樣本共有400人帝美。
  • 第三類用戶是“安穩(wěn)型員工”,年齡大約在25-30歲晤硕,對使用A軟件態(tài)度比較消極悼潭,覺得公司的管理是相對自由的。其樣本共有600人舞箍。

接下來使用R來生成以上描述的三類用戶的數(shù)據(jù)舰褪,代碼如下(對代碼沒興趣的同學可以直接跳過):

#定義每類的數(shù)據(jù)量
n1=200
n2=400
n3=600
#畫像1的數(shù)據(jù)
set.seed(1000)
age1=rnorm(n1,mean=35,sd=3)
set.seed(1100)
attitude1=rnorm(n1,mean=8,sd=1.5)
set.seed(1200)
dof1=rnorm(n1,mean=8,sd=1)
#畫像2的數(shù)據(jù)
set.seed(2000)
age2=rnorm(n2,mean=23,sd=2)
set.seed(2100)
attitude2=rnorm(n2,mean=5,sd=2)
set.seed(2200)
dof2=rnorm(n2,mean=4,sd=1.5)
#畫像3的數(shù)據(jù)
set.seed(3000)
age3=rnorm(n3,mean=28,sd=2)
set.seed(3100)
attitude3=rnorm(n3,mean=3,sd=1.5)
set.seed(3200)
dof3=rnorm(n3,mean=7,sd=1.5)
#合并所有數(shù)據(jù)
age=c(age1,age2,age3)
attitude=c(attitude1,attitude2,attitude3)
dof=c(dof1,dof2,dof3)
orig_type=c(rep(1,n1),rep(2,n2),rep(3,n3))
data=data.frame(age,attitude,dof,orig_type)
#輸出到表格
write.csv(data,"F:/R/R-cluster.csv")

簡而言之,三類用戶的特征是這樣的:

類別 年齡 對A的態(tài)度 公司管理自由度 樣本數(shù)
第一類 N(35,3) N(8,1.5) N(8,1) 200
第二類 N(23,2) N(5,2) N(4,1.5) 400
第三類 N(28,2) N(3,1.5) N(7,1.5) 600
用SPSS做K均值聚類

接下來使用R生成的數(shù)據(jù)進行K均值聚類疏橄,看看分析得出的結(jié)果與我們預設的類別的關系占拍。

1、先看看三個變量的相關性矩陣:



我們發(fā)現(xiàn)幾個變量之間相關性都不高,因此可以全部作為聚類的變量進入后續(xù)分析過程刷喜。

2残制、接下來對三個變量進行標準化:

SPSS操作:分析-描述統(tǒng)計-描述-勾選“將標準化得分另存為變量”

3、K均值聚類:

SPSS操作:分析-分類-K均值聚類
填寫聚類數(shù):3
“保存”:勾選聚類成員掖疮、與聚類中心的距離
“選項”:勾選ANOVA表

4初茶、查看方差分析結(jié)果:



聚類分析得出的類別在三個變量上都呈現(xiàn)出了顯著差異,可見三個變量在聚類分析中都起到了作用浊闪,當前聚類分析結(jié)果可以保留恼布。

預設類別與聚類結(jié)果對比

先看看聚類得出的結(jié)果:


跟我們最初定義的用戶特征對比(詳見上面的表格),發(fā)現(xiàn)聚類分析對用戶類別的還原度非常高搁宾!聚類得出的幾個類別和最初定義的類別在三個變量的均值和類別樣本數(shù)上差異都很姓酃(注意類別的順序不同)。

我們再用一個交叉表盖腿,看看樣本的分布情況:

SPSS操作:分析-描述統(tǒng)計-交叉表爽待,將原始數(shù)據(jù)定義的類別和K均值聚類得出的類別分別放在行和列變量中。
勾選“顯示復式條形圖”翩腐。

橫軸表示我們預設的類別鸟款,縱軸表示聚類分析得出的類別∶裕可以看出非常明顯的對應關系何什,我們定義的第一類用戶大部分被聚類為類別3,第二類用戶大部分被聚類為類別1等龙,第三類用戶大部分被聚類為類別2——聚類分析定義出來的用戶群體处渣,不僅僅在屬性上與預設的一致,連用戶構(gòu)成都很一致蛛砰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罐栈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暴备,更是在濱河造成了極大的恐慌悠瞬,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涯捻,死亡現(xiàn)場離奇詭異浅妆,居然都是意外死亡,警方通過查閱死者的電腦和手機障癌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門凌外,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涛浙,你說我怎么就攤上這事康辑∩阌” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵疮薇,是天一觀的道長胸墙。 經(jīng)常有香客問我,道長按咒,這世上最難降的妖魔是什么迟隅? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮励七,結(jié)果婚禮上智袭,老公的妹妹穿的比我還像新娘。我一直安慰自己掠抬,他們只是感情好吼野,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著两波,像睡著了一般瞳步。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腰奋,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天谚攒,我揣著相機與錄音,去河邊找鬼氛堕。 笑死,一個胖子當著我的面吹牛野蝇,可吹牛的內(nèi)容都是我干的讼稚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绕沈,長吁一口氣:“原來是場噩夢啊……” “哼锐想!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乍狐,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赠摇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浅蚪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藕帜,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年惜傲,在試婚紗的時候發(fā)現(xiàn)自己被綠了洽故。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡盗誊,死狀恐怖时甚,靈堂內(nèi)的尸體忽然破棺而出隘弊,到底是詐尸還是另有隱情,我是刑警寧澤荒适,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布梨熙,位于F島的核電站,受9級特大地震影響刀诬,放射性物質(zhì)發(fā)生泄漏咽扇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一舅列、第九天 我趴在偏房一處隱蔽的房頂上張望肌割。 院中可真熱鬧,春花似錦帐要、人聲如沸把敞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奋早。三九已至,卻和暖如春赠橙,著一層夾襖步出監(jiān)牢的瞬間耽装,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工期揪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掉奄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓凤薛,卻偏偏與公主長得像姓建,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缤苫,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容