集群簡介:點擊此處
層次聚類分析案例(1):世界銀行樣本數據集
層次聚類分析案例(2):亞馬遜雨林的燃燒狀況
層次聚類分析案例(3):基因聚類
食物消費模式是醫學和營養學領域的研究熱點。食物消費關系到個人的整體健康狀況、食物的營養價值、購買食物的經濟性和消費環境。這項分析涉及25個歐洲國家的肉類和其他食物之間的關系。觀察肉類和其他食物之間的相關性是很有趣的。這些數據包括:紅肉、白肉、雞蛋、牛奶、魚類、谷類、澱粉類食物、堅果(包括豆類和油籽)、水果和蔬菜。
準備工作/即將開始工作
為了應用K均值聚類,我們使用了25個歐洲國家的蛋白質消費數據集。
步驟1:收集和描述數據。
該任務使用名為protein的數據集,該數據集以標準格式存儲在CSV文件中,包含25行數據和10個變量。數據采集路徑
數值變量如下:
紅肉
白肉
蛋
牛奶
魚
谷類
澱粉
堅果
Fr & amp蔬菜
非數字變量如下:
國家
具體實施步驟
以下是實現細節。
第二步:探索數據
我們來探究數據,了解變量之間的關系。從導入名為Europenaprotein.csv的CSV文件開始,將數據保存到蛋白質數據框:
head()函數返回壹個向量、矩陣、表格、數據框或者函數的開始或結束。將蛋白質數據幀傳遞給head()函數。
結果如下:
步驟3:聚類
在三個集群的基礎上開始集群。為了在初始階段生成隨機數量的簇,調用set.seed()函數。set.seed()函數可以生成隨機數。
kmeans()函數可以對數據矩陣執行K均值聚類。蛋白質數據矩陣作為對象傳遞給這個函數,它必須是壹個數值矩陣。Centers = 3表示初始化聚類中心的數量。由於聚類數是由壹個數字指定的,所以nstart = 10定義了隨機選擇的中心數。
結果如下:
接下來,生成集群分配列表。order()函數返回壹個序列,以升序或降序重新生成其第壹個參數。GroupMeat數據幀作為數據幀對象傳入:
調用data.frame()函數來顯示國家和這些國家所在的集群:
結果如下:
Plot()函數是壹個繪制R對象的通用函數。參數類型表示要顯示的圖形種類。xlim參數意味著應該給該參數壹個範圍的邊界,而不是壹個範圍。Xlab和ylab分別提供X軸和Y軸的標題:
結果如下:
第四步:改進模型
接下來,對所有9個蛋白質組進行聚類,已經創建了7個聚類。在散點圖上,不同顏色的點代表吃白肉和紅肉的國家。地理上相鄰的國家往往被組合在壹起。
Center = 7表示聚類中心的初始數量:
形成了七個不同的集群。所有25個國家都被分配到某壹組。
結果如下:
clustplot()函數創建了壹個包含兩個變量的圖形,從中可以看到數據的可視化劃分。所有觀察值都用主成分以點數表示。圍繞每個集群繪制壹個橢圓。蛋白質數據幀作為對象傳入:
結果如下:
另壹種分層表示形式如下。這裏使用了Agnes()函數。通過設置diss=FALSE,相異度矩陣用於計算原始數據。Metric="euclidean "表示歐幾裏得距離用於計算:
結果如下:
Plot()畫壹個圖:回車查看下壹章,包括兩個圖。
結果如下:
cutree()函數將樹切割成幾組,並通過設置所需的組數或切割高度來分割樹:
結果如下:
結果如下: