K均值聚类我有在R.已经创建它的结构如下数据集:中的R错误
> head(btc_data)
Date btc_close eth_close vix_close gold_close DEXCHUS change
1647 2010-07-18 0.09 NA NA NA NA 0
1648 2010-07-19 0.08 NA 25.97 115.730 NA -1
1649 2010-07-20 0.07 NA 23.93 116.650 NA -1
1650 2010-07-21 0.08 NA 25.64 115.850 NA 1
1651 2010-07-22 0.05 NA 24.63 116.863 NA -1
1652 2010-07-23 0.06 NA 23.47 116.090 NA 1
我试图集群中使用k均值的意见。但是,我收到以下错误消息:
> km <- kmeans(trainingDS, 3)
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
In addition: Warning message:
In storage.mode(x) <- "double" : NAs introduced by coercion
这是什么意思?我是否错误地预处理了数据?我能做些什么来解决它?我不能删除NA,因为在4500次最初的观察中,如果我运行complete cases
我只剩下100个观察值。
本质上,我希望根据change
列的值为-1,0,1形成3个簇。然后,我希望分析每个群集的组成部分,找出变化的最强预测因素。还有哪些其他算法对此更有用?
我也试图消除所有的NA值使用下面的代码,但我仍然得到同样的错误信息:
> complete_cases <- btc_data[complete.cases(btc_data), ]
> km <- kmeans(complete_cases, 3, nstart = 20)
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
In addition: Warning message:
In storage.mode(x) <- "double" : NAs introduced by coercion
> sum(!sapply(btc_data, is.finite))
[1] 8008
> sum(sapply(btc_data, is.nan))
[1] 0
>
> sum(!sapply(complete_cases, is.finite))
[1] 0
> sum(sapply(complete_cases, is.nan))
[1] 0
下面是数据的格式:
> sapply(btc_data, class)
Date btc_close eth_close vix_close gold_close DEXCHUS change
"Date" "numeric" "numeric" "numeric" "numeric" "numeric" "factor"
'>总和(sapply(btc_data,is.finite)!) [1] 8008 > sum(!sapply(btc_data,is.nan)) [1] 18193' – zsad512
@coffeinjunky我编辑了这个问题....另外,我不知道为什么'sum'对于完整的情况是'721',特别是只有103个观察结果...当我手动检查df时,没有NA的 – zsad512
好的 - 我删除了'!'并编辑了任务离子...你要说的是'knn'应该在'complete_cases'上工作,但我仍然得到相同的错误信息 – zsad512