关于数据挖掘:R语言改进的KMeansK均值聚类算法分析股票盈利能力和可视化

37次阅读

共计 2248 个字符,预计需要花费 6 分钟才能阅读完成。

全文链接:http://tecdat.cn/?p=32418

原文出处:拓端数据部落公众号

大量数据中具备 ” 类似 ” 特色的数据点或样本划分为一个类别。聚类分析提供了样本集在非监督模式下的类别划分。

人们在投资时总冀望以最小的危险获取最大的利益,面对宏大的股票市场和繁冗的股票数据,要想对股票进行正当的剖析和抉择,聚类分析就显得尤为重要。

在本文中,咱们采纳了改良 K -means 聚类法帮忙客户对随机抉择的个股进行了聚类,并对各类股票进行了剖析,给出了相应的投资倡议。

读取数据

股票盈利能力剖析数据

data=read.xlsx("股票盈利能力剖析.xlsx")

初始聚类核心个数

初始聚类核心数目 k 的选取是一个较为艰难的问题。传统的 K -means 聚类算法须要用户当时给定聚类数目 k,然而用户个别状况下并不知道取什么样的 k 值对本人最无利、或者说什么样的 k 值对理论利用才是最正当的,这种状况下给出 k 值尽管对聚类自身会比拟疾速、高效,然而对于一些理论问题来说聚类成果却是不佳的。所以,上面我提出一种确定最佳聚类个数 k 的办法。

算法形容与步骤:

输出:蕴含 n 个对象的数据集;

输入:使得取值最小的对应的 k 值。

(1)依据初步确定簇类个数 k 的范畴;

(2)依然是用 K -means 算法对的每一个 k 值别离进行聚类;

(3)别离计算不同聚类个数 k 所对应的的值;

(4)找出最小的值,记下对应的 k 值,算法完结。

S[1]=sum(abs(data[,3:9]-result$centers)^2)/min(abs(data[,3:9]-result$ce
plot(2:6,S,type="b")

初始核心地位的选取

传统的 K -means 聚类算法中,咱们总是心愿能将孤立点对聚类成果的影响最小化,然而孤立点实际上在欺骗探测、安全性检测以及设施故障剖析等方面起着不凡的作用;然而,本文排除以上这些因素,单纯地思考聚类成果好坏。那么为了防止将孤立点误选为初始核心,咱们抉择高密度数据汇合区域 D 中的数据作为聚类初始核心。

根本思维:

传统 K -means 聚类采纳随机抉择初始核心的办法一旦选到孤立点,会对聚类后果产生很大的影响,所以咱们将初始核心的抉择范畴放在高密度区。首先在高密度区抉择相距最远的两个样本点作为聚类的初始中心点,再找出与这两个点的间隔之和最大的点作为第 3 个初始核心,有了第 3 个初始核心,同样找到与已有的三个初始聚类核心间隔和最远的点作为第 4 个初始核心,以此类推,直到在高密度区将 k 个聚类核心都找进去为止。

算法形容与步骤:

输出:蕴含 n 个对象的数据集,簇类数目 k;

输入:k 个初始聚类核心。

(1)计算 n 个数据样本中每个对象 x 的的密度,当满足外围对象的条件时,将该对象加到高密度区域 D 中去;

(2)在区域 D 中计算两两数据样本间的间隔,找到间距最大的两个样本点作为初始聚类核心,记为;

(3)再从区域 D 中找出满足条件:的点,将作为第三个初始聚类核心;

(4)依然从区域 D 中找出满足到后面三个聚类核心的间隔和最大的点;

(5)依照同样的办法进行上来,直到找到第 k 个初始聚类核心,完结。


 #首先在高密度区抉择相距最远的两个样本点作为聚类的初始中心点,再找出与这两个点的间隔之和最大的点作为第 3 个初始核心,dd=dist(data)
  dd=as.matrix(dd)
  #高密度区域
  D=which(dd<max(dd)/6 & dd!=0,arr.ind = T)
  D=unique(D[,1])
  dataD=data[D,]
  index=0
  for(i in 1:k){index[i]=as.numeric(row.names(which (

相似性度量的改良

在后面确定了 k 值以及 k 个初始聚类核心后,只有再确定相似性度量即可失去聚类后果。然而传统的 K -means 聚类采纳欧氏间隔作为相似性度量,这种办法没有很好地思考到其实每个数据样本对聚类后果的影响可能是不同的,一律采纳欧氏间隔进行相似性掂量对聚类后果会产生较大影响。那么,咱们如果依据数据样本的重要性对其赋予一个权值,就会减小孤立点等一些因素对聚类的影响,这种改良的度量办法咱们称之为加权欧氏间隔。

 ### 依据改良后的加权欧氏间隔公式
  ##   测验聚类操作是否须要完结,改良后的加权准则函数公式:的值最小或放弃不变了
  sqrt(sum((c1$Centers/(sum(c1$Centers)/len

绘制聚类核心和可视化

lot(data[,-c(1:4)], fit$cluste

输入聚类后果和聚类核心


########################### 聚类类别 ###############
fit$Clusters
########################### 聚类核心 #########################
fit$Centers


最受欢迎的见解

1. R 语言 k -Shape 算法股票价格工夫序列聚类

2. R 语言基于温度对城市档次聚类、kmean 聚类、主成分剖析和 Voronoi 图

3. R 语言对用电负荷工夫序列数据进行 K -medoids 聚类建模和 GAM 回归

4. r 语言鸢尾花 iris 数据集的档次聚类

5.Python Monte Carlo K-Means 聚类实战

6. 用 R 进行网站评论文本开掘聚类

7. R 语言 KMEANS 均值聚类和档次聚类:亚洲国家地区生存幸福品质异同可视化 **

8.PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯模型和 KMEANS 聚类用户画像

9. R 语言基于 Keras 的小数据集深度学习图像分类

正文完
 0