拓端tecdat|R語言k-means聚類、層次聚類、主成分(PCA)降維及可視化分析鳶尾花iris數
原文鏈接:http://tecdat.cn/?p=22838?
原文出處:拓端數據部落公眾號
問題:使用R中的鳶尾花數據集
(a)部分:k-means聚類
使用k-means聚類法將數據集聚成2組。
?畫一個圖來顯示聚類的情況
使用k-means聚類法將數據集聚成3組。
畫一個圖來顯示聚類的情況
(b)部分:層次聚類
使用全連接法對觀察值進行聚類。
使用平均和單連接對觀測值進行聚類。
繪制上述聚類方法的樹狀圖。
?
問題01:使用R中建立的鳶尾花數據集。
(a):k-means聚類
討論和/或考慮對數據進行標準化。
data.frame(
"平均"=apply(iris[,1:4], 2, mean
"標準差"=apply(iris[,1:4], 2, sd)

在這種情況下,我們將標準化數據,因為花瓣的寬度比其他所有的測量值小得多。
使用k-means聚類法將數據集聚成2組
使用足夠大的nstart,更容易得到對應最小RSS值的模型。
kmean(iris, nstart = 100)
畫一個圖來顯示聚類的情況
# 繪制數據
plot(iris, y = Sepal.Length, x = Sepal.Width)

為了更好地考慮花瓣的長度和寬度,使用PCA首先降低維度會更合適。
# ?創(chuàng)建模型
PCA.mod<- PCA(x = iris)
#把預測的組放在最后
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)

數據中80%的方差是由前兩個主成分解釋的,所以這是一個相當好的數據可視化。
?使用k-means聚類法將數據集聚成3組
在之前的主成分圖中,聚類看起來非常明顯,因為實際上我們知道應該有三個組,我們可以執(zhí)行三個聚類的模型。
kmean(input, centers = 3, nstart = 100)
# 制作數據
groupPred %>% print()

畫一個圖來顯示聚類的情況
# ?繪制數據
plot(萼片長度,萼片寬度, col =pred)

PCA圖
為了更好地考慮花瓣的長度和寬度,使用PCA首先減少維度是比較合適的。
#創(chuàng)建模型
prcomp(x = iris)
#把預測的組放在最后
PCADF$KMeans預測<- Pred
#繪制圖表
plot(PCA, y = PC1, x = PC2,col = "預測\n聚類", caption = "鳶尾花數據的前兩個主成分,橢圓代表90%的正常置信度,使用K-means算法對2個類進行預測") +

PCA雙曲線圖
萼片長度~萼片寬度圖的分離度很合理,為了選擇在X、Y上使用哪些變量,我們可以使用雙曲線圖。
biplot(PCA)

這個雙曲線圖顯示,花瓣長度和萼片寬度可以解釋數據中的大部分差異,更合適的圖是:
plot(iris, col = KM預測)

評估所有可能的組合。
iris %>%
pivot_longer() ?%>%
plot(col = KM預測, facet_grid(name ~ ., scales = 'free_y', space = 'free_y', ) +

層次聚類
使用全連接法對觀測值進行聚類。
可以使用全連接法對觀測值進行聚類(注意對數據進行標準化)。
hclust(dst, method = 'complete')
使用平均和單連接對觀察結果進行聚類。
hclust(dst, method = 'average')
hclust(dst, method = 'single')
繪制預測圖
現(xiàn)在模型已經建立,通過指定所需的組數,對樹狀圖切斷進行劃分。
# ?數據
iris$KMeans預測<- groupPred
# 繪制數據
plot(iris,col = KMeans預測))

繪制上述聚類方法的樹狀圖
對樹狀圖著色。
type<- c("平均", "全", "單")
for (hc in models) plot(hc, cex = 0.3)

?

?


最受歡迎的見解
1.R語言k-Shape算法股票價格時間序列聚類
2.R語言中不同類型的聚類方法比較
3.R語言對用電負荷時間序列數據進行K-medoids聚類建模和GAM回歸
4.r語言鳶尾花iris數據集的層次聚類
5.Python Monte Carlo K-Means聚類實戰(zhàn)
6.用R進行網站評論文本挖掘聚類
7.用于NLP的Python:使用Keras的多標簽文本LSTM神經網絡
8.R語言對MNIST數據集分析 探索手寫數字分類數據
9.R語言基于Keras的小數據集深度學習圖像分類