用R語言實現簡單的Kmeans聚類

2021-07-23 08:23:50 字數 849 閱讀 1231

最近主要在做針對投資者的統計及聚類分析,希望能找出投資者的一些特徵,方便做投資者的精準營銷。

首先使用的是spss的modeler,畢竟操作視覺化,比較簡單,就是執行大量資料比較慢,挺費時間。

後來又想用r驗證一下聚類的準確性,直接登陸rstudio,找了kmeans的包,也計算了,發現了spss聚類除了沒有r計算的效率快,分類也沒有r精準,徹底斷了我繼續使用spss的想法,現將r聚類分析過程分享一下,大家一起學習共勉。

原始資料如下:

我需要使用r對這群投資者(約10w)進行聚類分析,**如下:

library(kernlab)

library(magrittr)

#讀取資料

zjdzjd[is.na(zjd)]

#設定聚類數並執行模型

res

#將結果與原資料拼接

zjd1

#匯出資料

write.csv(zjd1,file = 'd:/rdata/zjd/zjd1.csv')

這裡面還有乙個問題,聚類數5是如何確定的?

我是先用spss自動聚類之後,挑選輪廓(就是覆蓋程度)比較大的模型(就是kmeans),以及分類數(就是5)來作為這次的聚類方向做的。

關於kmeans的用法,我知道有乙個指標設定中心的計算方法;

另外針對結果有三個重要指標:

$cluster——聚類結果

$centers——各聚類中心座標

$size——各聚類數量

就是在結果後面加上指標就行,如我輸入res$size,得到100000.

聚類分析 Kmeans演算法理解及R語言實現

一 基本解釋 演算法思想 名詞解釋 演算法 1 在總體中隨機選擇k個值作為初始質心。2 計算每個樣本點到每個質心的距離 一般為歐式距離 將每個點指派到最近的質心點,形成k個聚類。3 重新這個簇的樣本點的平均值,作為簇的新質心。4 重複2 3直至質心不再發生變化,或者只發生很微小的變化。名詞解釋 關於...

c語言實現k means演算法

pree1.cpp 定義控制台應用程式的入口點。include stdafx.h include include include define dim 784 定義資料的最大維數 define num 10000 定義資料的最大數量 define class 10 定義最大聚類數 int initi...

C語言實現k means演算法

k means主要思想是在給定k值和若干樣本 點 的情況下,把每個樣本 點 分到離其最近的類簇中心點所代表的類簇中,所有點分配完畢之後,根據乙個類簇內的所有點重新計算該類簇的中心點 取平均值 然後再迭代的進行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很小,或者達到指定的迭代次數。自定義的資料...