R語言k-means聚類、層次聚類、主成分(PCA)降維及可視化分析鳶尾花iris數(shù)據(jù)集|附代碼
原文鏈接:http://tecdat.cn/?p=22838
最近我們被客戶要求撰寫關(guān)于鳶尾花iris數(shù)據(jù)集的研究報告,包括一些圖形和統(tǒng)計輸出。
本練習(xí)問題包括:使用R中的鳶尾花數(shù)據(jù)集
(a)部分:k-means聚類
使用k-means聚類法將數(shù)據(jù)集聚成2組。
畫一個圖來顯示聚類的情況
使用k-means聚類法將數(shù)據(jù)集聚成3組。
畫一個圖來顯示聚類的情況
(b)部分:層次聚類
使用全連接法對觀察值進行聚類。
使用平均和單連接對觀測值進行聚類。
繪制上述聚類方法的樹狀圖。
使用R中的鳶尾花數(shù)據(jù)集k-means聚類
討論和/或考慮對數(shù)據(jù)進行標準化。
data.frame(
??"平均"=apply(iris[,1:4],?2,?mean
??"標準差"=apply(iris[,1:4],?2,?sd)
在這種情況下,我們將標準化數(shù)據(jù),因為花瓣的寬度比其他所有的測量值小得多。
向下滑動查看結(jié)果▼
使用k-means聚類法將數(shù)據(jù)集聚成2組
使用足夠大的nstart,更容易得到對應(yīng)最小RSS值的模型。
kmean(iris,?nstart?=?100)
向下滑動查看結(jié)果▼
畫一個圖來顯示聚類的情況
#?繪制數(shù)據(jù)plot(iris,?y?=?Sepal.Length,?x?=?Sepal.Width)
為了更好地考慮花瓣的長度和寬度,使用PCA首先降低維度會更合適。
#??創(chuàng)建模型PCA.mod<-?PCA(x?=?iris)#把預(yù)測的組放在最后PCA$Pred?<-Pred#繪制圖表plot(PC,?y?=?PC1,?x?=?PC2,?col?=?Pred)
為了更好地解釋PCA圖,考慮到主成分的方差。
##?看一下主要成分所解釋的方差
for?(i?in?1:nrow)?{
??pca[["PC"]][i]?<-?paste("PC",?i)
}
plot(data?=?pca,x?=?主成分,?y?=?方差比例,?group?=?1)
數(shù)據(jù)中80%的方差是由前兩個主成分解釋的,所以這是一個相當好的數(shù)據(jù)可視化。
向下滑動查看結(jié)果▼
?使用k-means聚類法將數(shù)據(jù)集聚成3組
在之前的主成分圖中,聚類看起來非常明顯,因為實際上我們知道應(yīng)該有三個組,我們可以執(zhí)行三個聚類的模型。
kmean(input,?centers?=?3,?nstart?=?100)
#?制作數(shù)據(jù)
groupPred?%>%?print()
向下滑動查看結(jié)果▼
畫一個圖來顯示聚類的情況
#??繪制數(shù)據(jù)plot(萼片長度,萼片寬度,?col?=pred)
向下滑動查看結(jié)果▼
PCA圖
為了更好地考慮花瓣的長度和寬度,使用PCA首先減少維度是比較合適的。
#創(chuàng)建模型prcomp(x?=?iris)#把預(yù)測的組放在最后PCADF$KMeans預(yù)測<-?Pred#繪制圖表plot(PCA,?y?=?PC1,?x?=?PC2,col?=?"預(yù)測\n聚類",?caption?=?"鳶尾花數(shù)據(jù)的前兩個主成分,橢圓代表90%的正常置信度,使用K-means算法對2個類進行預(yù)測")?+
向下滑動查看結(jié)果▼
點擊標題查閱往期內(nèi)容
R語言鳶尾花iris數(shù)據(jù)集的層次聚類分析
左右滑動查看更多
01
02
03
04
PCA雙曲線圖
萼片長度~萼片寬度圖的分離度很合理,為了選擇在X、Y上使用哪些變量,我們可以使用雙曲線圖。
biplot(PCA)
這個雙曲線圖顯示,花瓣長度和萼片寬度可以解釋數(shù)據(jù)中的大部分差異,更合適的圖是:
plot(iris,?col?=?KM預(yù)測)
評估所有可能的組合。
iris?%>%??pivot_longer()??%>%?plot(col?=?KM預(yù)測,?facet_grid(name?~?.,?scales?=?'free_y',?space?=?'free_y',?)?+
向下滑動查看結(jié)果▼
層次聚類
使用全連接法對觀測值進行聚類。
可以使用全連接法對觀測值進行聚類(注意對數(shù)據(jù)進行標準化)。
hclust(dst,?method?=?'complete')
向下滑動查看結(jié)果▼
使用平均和單連接對觀察結(jié)果進行聚類。
?hclust(dst,?method?=?'average')
hclust(dst,?method?=?'single')
向下滑動查看結(jié)果▼
繪制預(yù)測圖
現(xiàn)在模型已經(jīng)建立,通過指定所需的組數(shù),對樹狀圖切斷進行劃分。
#??數(shù)據(jù)iris$KMeans預(yù)測<-?groupPred#?繪制數(shù)據(jù)plot(iris,col?=?KMeans預(yù)測))
向下滑動查看結(jié)果▼
繪制上述聚類方法的樹狀圖
對樹狀圖著色。
type<-?c("平均",?"全",?"單")
for?(hc?in?models)?plot(hc,?cex?=?0.3)
向下滑動查看結(jié)果▼
點擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《R語言k-means聚類、層次聚類、主成分(PCA)降維及可視化分析鳶尾花iris數(shù)據(jù)集》。
點擊標題查閱往期內(nèi)容
SPSS用K均值聚類KMEANS、決策樹、邏輯回歸和T檢驗研究通勤出行交通方式選擇的影響因素調(diào)查數(shù)據(jù)分析
數(shù)據(jù)分享|R語言主成分PCA、因子分析、聚類對地區(qū)經(jīng)濟研究分析重慶市經(jīng)濟指標
數(shù)據(jù)分享|R語言用主成分PCA、?邏輯回歸、決策樹、隨機森林分析心臟病數(shù)據(jù)并高維可視化
R語言邏輯回歸logistic模型分析泰坦尼克titanic數(shù)據(jù)集預(yù)測生還情況R語言是否對二分連續(xù)變量執(zhí)行邏輯回歸
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級調(diào)查數(shù)據(jù)
R語言隨機森林RandomForest、邏輯回歸Logisitc預(yù)測心臟病數(shù)據(jù)和可視化分析
R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語言邏輯回歸(Logistic回歸)模型分類預(yù)測病人冠心病風(fēng)險
R語言用局部加權(quán)回歸(Lowess)對logistic邏輯回歸診斷和殘差分析R語言用主成分PCA、?邏輯回歸、決策樹、隨機森林分析心臟病數(shù)據(jù)并高維可視化
R語言用線性模型進行臭氧預(yù)測:加權(quán)泊松回歸,普通最小二乘,加權(quán)負二項式模型,多重插補缺失值R語言Bootstrap的嶺回歸和自適應(yīng)LASSO回歸可視化
R語言中回歸和分類模型選擇的性能指標
R語言多元時間序列滾動預(yù)測:ARIMA、回歸、ARIMAX模型分析
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級調(diào)查數(shù)據(jù)
R語言計量經(jīng)濟學(xué):虛擬變量(啞變量)在線性回歸模型中的應(yīng)用
R語言 線性混合效應(yīng)模型實戰(zhàn)案例
R語言混合效應(yīng)邏輯回歸(mixed effects logistic)模型分析肺癌數(shù)據(jù)
R語言如何用潛類別混合效應(yīng)模型(LCMM)分析抑郁癥狀
R語言基于copula的貝葉斯分層混合模型的診斷準確性研究
R語言建立和可視化混合效應(yīng)模型mixed effect model
R語言LME4混合效應(yīng)模型研究教師的受歡迎程度
R語言 線性混合效應(yīng)模型實戰(zhàn)案例
R語言用Rshiny探索lme4廣義線性混合模型(GLMM)和線性混合模型(LMM)
R語言基于copula的貝葉斯分層混合模型的診斷準確性研究
R語言如何解決線性混合模型中畸形擬合(Singular fit)的問題
基于R語言的lmer混合線性回歸模型
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗建立層次(分層)貝葉斯模型
R語言分層線性模型案例
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗(SAT)建立分層模型
使用SAS,Stata,HLM,R,SPSS和Mplus的分層線性模型HLM
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗建立層次(分層)貝葉斯模型
SPSS中的多層(等級)線性模型Multilevel linear models研究整容手術(shù)數(shù)據(jù)
用SPSS估計HLM多層(層次)線性模型模型R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報告
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言有RStan的多維驗證性因子分析(CFA)
主成分分析(PCA)原理及R語言實現(xiàn)及分析實例
R語言無監(jiān)督學(xué)習(xí):PCA主成分分析可視化
R語言使用Metropolis- Hasting抽樣算法進行邏輯回歸
R語言多元Logistic邏輯回歸 應(yīng)用案例
R語言自適應(yīng)LASSO 多項式回歸、二元邏輯回歸和嶺回歸應(yīng)用分析
R語言用邏輯回歸、決策樹和隨機森林對信貸數(shù)據(jù)集進行分類預(yù)測
R語言基于樹的方法:決策樹,隨機森林,Bagging,增強樹
spss modeler用決策樹神經(jīng)網(wǎng)絡(luò)預(yù)測ST的股票
R語言中自編基尼系數(shù)的CART回歸決策樹的實現(xiàn)
python在Scikit-learn中用決策樹和隨機森林預(yù)測NBA獲勝者
matlab使用分位數(shù)隨機森林(QRF)回歸樹檢測異常值
基于隨機森林、svm、CNN機器學(xué)習(xí)的風(fēng)控欺詐識別模型
R語言懲罰logistic邏輯回歸(LASSO,嶺回歸)高維變量選擇的分類模型案例
R語言用標準最小二乘OLS,廣義相加模型GAM?,樣條函數(shù)進行邏輯回歸LOGISTIC分