package discuz;
import java.io.File;
import weka.clusterers.SimpleKMeans;
import weka.core.DistanceFunction;
import weka.core.EuclideanDistance;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class kmeans {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Instances ins = null;
Instances tempIns = null;
SimpleKMeans KM = null;
DistanceFunction disFun = null;
try{
/*
* 1.讀入樣本
*/
File file= new File("D://weka//Weka-3-6//data//contact-lenses.arff");
ArffLoader loader = new ArffLoader();
loader.setFile(file);
ins = loader.getDataSet();
/*
* 2.初始化聚類器
* 在3.6版本可以通過setDistanceFunction(DistanceFunction df)
* 函數設置聚類算法內部的距離計算方式
* 而在3.5版本裡面默認的采用了歐幾裡得距離
*/
KM = new SimpleKMeans();
//設置聚類要得到的類別數量
KM.setNumClusters(2);
/*
* 3.使用聚類算法對樣本進行聚類
*/
KM.buildClusterer(ins);
/*
* 4.打印聚類結果
*/
tempIns = KM.getClusterCentroids();
System.out.println("CentroIds: " + tempIns);
}catch(Exception e){
e.printStackTrace();
}
}
}
為啥會出現這個呀?怎麼解決呀啊?
java.io.FileNotFoundException: \iris.2.arff (系統找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at weka.classifiers.bayes.net.ADNode.main(ADNode.java:270)
文件找不到。說的很清楚。有可能是你調用的類庫需要的某種文件,是不是你沒有把類庫拷全