聚類分析是將資料根據相似特徵分類到不同的類或簇,用以對資料進行區分。
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 ...