我想创建预测函数来预测观察属于哪个集群
data(iris)
mydata=iris
m=mydata[1:4]
train=head(m,100)
xNew=head(m,10)
rownames(train)<-1:nrow(train)
norm_eucl=function(train)
train/apply(train,1,function(x)sum(x^2)^.5)
m_norm=norm_eucl(train)
result=kmeans(m_norm,3,30)
predict.kmean <- function(cluster, newdata)
{
simMat <- m_norm(rbind(cluster, newdata),
sel=(1:nrow(newdata)) + nrow(cluster))[1:nrow(cluster), ]
unname(apply(simMat, 2, which.max))
}
## assign new data samples to exemplars
predict.kmean(m_norm, x[result$cluster, ], xNew)
Run Code Online (Sandbox Code Playgroud)
当我收到错误后
Error in predict.kmean(m_norm, x[result$cluster, ], xNew) :
unused argument (xNew)
Run Code Online (Sandbox Code Playgroud)
我知道我正在做一些错误的功能,因为我只是在学习这样做,但我不明白到底在哪里。
确实我想采用 apcluster 的类似功能(我见过类似的主题,但是针对 apcluster)
predict.apcluster <- function(s, exemplars, newdata)
{
simMat <- s(rbind(exemplars, newdata),
sel=(1:nrow(newdata)) + nrow(exemplars))[1:nrow(exemplars), ]
unname(apply(simMat, 2, which.max))
}
## assign new data samples to exemplars …Run Code Online (Sandbox Code Playgroud)