K-means和SVM的多数据

时间:2014-10-09 02:45:22

标签: matlab machine-learning cluster-computing svm k-means

我从mvnrnd生成多数据。我可以使用K-means将这些数据聚类为2组。并且还想知道K-means的准确性,但我不知道如何计算。我怎么知道k-means聚类的正确性与结果进行比较并获得准确性?!

我有一个多数据和类,我知道我可以做SVM。然而,SVM的准确度太低,约为72%至83%。我可能犯了一些错误。我想听听一些反馈。感谢

 n=1;mu1=[0,0,0];mu2=[1,1,1]; mu3=[2,2,2]; mu4=[3,3,3]; m=0.9;s=[1 m m ;m 1 m ; m m 1];
data1 = mvnrnd(mu1,s,1000); data2 = mvnrnd(mu2,s,1000);data3 = mvnrnd(mu3,s,1000);data4 = mvnrnd(mu4,s,1000);
all_data = [data1;data2;data3;data4];
[idx,ctrs,sumD,D] = kmeans(all_data,2,'distance','sqE','start','sample');
model = svmtrain(idx,all_data);
mu7=[0,0,0];mu8=[1,1,1];mu9=[2,2,2];mu10=[3,3,3];
data7=mvnrnd(mu7,s,1000);data8=mvnrnd(mu8,s,1000);data9=mvnrnd(mu9,s,1000);data10=mvnrnd(mu10,s,1000);
test_data = [data7;data8;data9;data10]; value = svmpredict(idx,test_data,model);                               

我想知道我的错误或错误代码在哪里。我不知道为什么我的准确度如此之低。我真的想改进我的代码。谢谢 !!

1 个答案:

答案 0 :(得分:0)

计算k-means算法的准确性你应该有一个先验知识,即参考类向量,就像你在SVM中一样。 尽管k-means是无监督学习算法,并且您不需要使用类向量来对数据进行分类,但您需要它来计算精度。 我对你计算SVM模型的方法有疑问。您使用从k-means算法计算的索引具有自己的准确性(现在还不知道)。您使用建模数据进行分类,那么为什么不用类创建向量?