通過R語言對資料進行聚類分析

2021-09-12 00:14:03 字數 1498 閱讀 3201

聚類分析是將資料根據相似特徵分類到不同的類或簇,用以對資料進行區分。

1.聚類(k-means)

通過資料中每個數值間的距離進行聚類,是一種縱向聚類,將樣本資料據成型別,用以對資料的特徵進行區分。

(1)讀取資料

data = read.csv("  ")

cludata <- data[complete.cases(data), ] # 去除重複值資料

str(data)

(2)設定執行結果生成檢視資料分布

boxplot(data)
(3)設定隨機數採用k-means聚類:尋找類中心

set.seed(12345)

clur <- kmeans(x = data, centers =「類中心個數」, nstart = 4)

str(clur)

(4)檢視執行的csv檔案結果並輸出為csv檔案

head(clur)

clur$size

clur$centers

write.csv(clur$`cluster`, "cluster.csv")

2.橫向聚類

通過對數值對變數進行聚類,判斷哪些變數屬於相同的型別,理解為橫向聚類。譜系聚類包含:最長距離聚類、最短距離聚類、單一聚類、最大似然法聚類。最長距離聚類是指按照變數間的遠近程度,進行聚類 ,以某點為基準,距離最遠的判斷是1類。最短距離聚類,是以某個點為基準,誰離得聚類相同聚為1類。單一聚類,將每個資料點視為乙個單一的簇,然後選擇乙個測量兩個簇之間距離的度量標準,進行聚類。最大似然法聚類,運用的最大概似估計,以概率來估計乙個變數類屬。

(1)讀取資料

data = read.csv("路徑/檔名.csv")
(2)資料處理轉換

r = cor(data)

d <- as.dist(1-r)

(3)進行譜系聚類

hc1 <- hclust(d, "single"); hc2 <- hclust(d, "complete") 

hc3 <- hclust(d, "median"); hc4 <- hclust(d, "mcquitty")

opar <- par(mfrow = c(2, 2))

plot(hc1, hang = -1); plot(hc2, hang = -1)

plot(hc3, hang = -1); plot(hc4, hang = -1)

par(opar)

dev.off()

r語言聚類分析 R語言實現tSNE聚類分析

t sne t distributed stochastic neighborembedding 是用於降維的一種無監督機器學習演算法,由 laurens van der maaten 和 geoffrey hinton在08年提出。t sne 作為一種非線性降維演算法,非常適用於高維資料降維到2維...

用C語言對資料或檔案內容進行加密

資料加密解密的原理也很簡單,就是使用異或運算。請先看下面的 include include int main 執行結果 char ascii plaintext a 1100001 secretkey 100001 ciphertext 1000000 decodetext a 1100001pla...

用js語言對陣列演算法進行編寫

假設有陣列 8,2,32,4,1,9 編寫演算法進行公升序排列,演算法不做要求,可以使用冒泡 選擇 插入 var arr 8,2,32,4,1,9 第一種 var result arr.sort 第二種 var result arr.sort function a,b 第三種 var result ...