R_DATACAMP10 Cluster Analysis in R分類分析

Calculating distance between observations計算兩點間距離

lims(x = c(-30,30), y = c(-20, 20)) 應(yīng)用于ggplot中,可以設(shè)置圖標(biāo)坐標(biāo)軸的范圍

dist(two_players) dist(data.frame)會計算出數(shù)據(jù)結(jié)構(gòu)中各個點相互之間的舉例

scale(data.frame)后 再dist,可以消除因為同組數(shù)之間相差太大引起的影響,比如一個是千米,一個是毫升這種毫不相關(guān)的量。即矩陣的中心化。

如果data.frame中的data是 YES/NO LOW/MIDDLE/HIGH這樣的組合 如何用dist進(jìn)行計算呢?
首先,library(dummies)
dummy_survey <- dummy.data.frame(job_survey)用dummy的數(shù)據(jù)結(jié)構(gòu)格式轉(zhuǎn)化
dist_survey <- dist(dummy_survey, method = 'binary')再dist,方式選擇二進(jìn)制
以下是method的取值
euclidean 歐幾里德距離,就是平方再開方。
maximum 切比雪夫距離
manhattan 絕對值距離
canberra Lance 距離
minkowski 明科夫斯基距離,使用時要指定p值
binary 定性變量距離.

矩陣中給出各個參數(shù)互相之間的關(guān)聯(lián)值,其中其他數(shù)據(jù)對一組數(shù)據(jù)的關(guān)聯(lián)值,分三個方面:

    • Complete: the resulting distance is based on the maximum,max()
    • Single: the resulting distance is based on the minimum,min()
    • Average: the resulting distance is based on the average,mean()

hc_players <- hclust(dist_players, method = "complete")
clusters_k2 <- cutree(hc_players, k = 2)
hclust()是聚類函數(shù)
cutree(k = )從中提取聚類后的???

library(dendextend)
color_branches()
dend_20 <- color_branches(dend_players, h = 20)

library(dendextend)
dist_players <- dist(lineup, method = 'euclidean')
hc_players <- hclust(dist_players, method = "complete")
dend_players <- as.dendrogram(hc_players)as.dendrogram這里是轉(zhuǎn)化成什么格式?
plot(dend_players)做出來是樹狀圖
dend_20 <- color_branches(dend_players, h = 20) color_branches是給樹狀圖上色,h是指上色的高度

dist_customers <- dist(customers_spend)計算兩點距離
hc_customers <- hclust(dist_customers, method = "complete")用hclust聚類之
plot(hc_customers)畫出聚類后的樹狀圖
clust_customers <- cutree(hc_customers, h = 15000)設(shè)置一個高度限制,cutree,這里的h具體是指代什么?
segment_customers <- mutate(customers_spend, cluster = clust_customers)將cutree下來的各組數(shù)的組別加入到原始datafram中成為新的一列cluster

ggplot中的ifelse

K-means clustering K值平均分類

kmeans(lineup, centers = 2)創(chuàng)建一個k均值模型,此處k=幾就是分為按顏色分為幾類。
clust_km2 <- model_km2$cluster模型中的cluster列選出來
lineup_km2 <- mutate(lineup, cluster = clust_km2)將模型中分配好組的cluster列加入原來的數(shù)據(jù)結(jié)構(gòu)中
ggplot(lineup_km2, aes(x = x, y = y, color = factor(cluster))) +
geom_point()繪制出來,利用散點圖看出分組情況。此處有關(guān)ggplot中的顏色要不要factor()之,是因為如果不轉(zhuǎn)化為因子,那么原來的格式是int,是連續(xù)的,按顏色分類時就會是一個連續(xù)的按顏色漸變分類,如果變成factor后就會變成離散型的分類,也就是說從1~2變成了1,2這樣的分類。

library(purrr)
tot_withinss <- map_dbl(1:10, function(k){
model <- kmeans(x = lineup, centers = k)
model$tot.withinss
})

elbow_df <- data.frame(
k = 1:10,
tot_withinss = tot_withinss
)
取很多個K值(從1到10)

library(cluster)
pam()與kmeans的功能類似,都是創(chuàng)建模型model。pam_k2 <- pam(lineup, k = 2)
kmeans是圍繞均值進(jìn)行劃分,對異常值敏感。而pam更穩(wěn)健,是對于中心值劃分。
silhouette()
plot(silhouette(pam_k2))繪制出相關(guān)的條形圖

sil_width <- map_dbl(2:10, function(k){
model <- pam(x = customers_spend, k = k)
modelsilinfoavg.width
})
sil_df <- data.frame(
k = 2:10,
sil_width = sil_width
)
ggplot(sil_df, aes(x = k, y = sil_width)) +
geom_line() +
scale_x_continuous(breaks = 2:10)
批量設(shè)置K值然后繪制出關(guān)于K值的折線圖來確定K值

segment_customers %>%
group_by(cluster) %>%
summarise_all(funs(mean(.)))
分類匯總查看之前的結(jié)果

Case Study: National Occupational mean wage

library(tibble)
rownames_to_column(as.data.frame(oes), var = 'occupation')此函數(shù)可以將數(shù)據(jù)結(jié)構(gòu)中的每一列的名字轉(zhuǎn)化為一列存儲起來,其新的這一列的名稱就是var = '...'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,555評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,516評論 2 379

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

  • From shirinsplayground,非常好的機(jī)器學(xué)習(xí)的文章,保存下來,慢慢學(xué)習(xí)。 https://shi...
    iColors閱讀 1,215評論 0 0
  • 序 2017年8月7號零點,現(xiàn)在此刻,從【簡書】開始…… 我,很喜歡寫一些東西,只是單純的喜...
    如水落落閱讀 207評論 0 1
  • 保護(hù)自己的注意力,讓自己注意放在別人需求上,從而在這個需求上獲得自己的價值,做到無人替代的情況下,你將把價值變現(xiàn),...
    劉冰杰閱讀 363評論 0 1