java鎬庝箞瀹炵幇kmeans鑱氱被
Java涓彲浠ラ€氳繃浣跨敤鏈哄櫒瀛︿範搴撴潵瀹炵幇k-means鑱氱被绠楁硶銆備笅闈㈡槸涓€涓娇鐢╓eka搴撳疄鐜発-means鑱氱被绠楁硶鐨勭ず渚嬩唬鐮侊細
import weka.clusterers.SimpleKMeans;
import weka.core.Instances;
import weka.core.converters.ConverterUtils;
public class KMeansExample {
public static void main(String[] args) {
try {
// 璇诲彇鏁版嵁闆?/span>
ConverterUtils.DataSource source = new ConverterUtils.DataSource("path/to/your/dataset.arff");
Instances data = source.getDataSet();
// 璁剧疆绫诲埆灞炴€х储寮曪紙濡傛灉鏁版嵁闆嗕腑鏈夌被鍒睘鎬э級
data.setClassIndex(data.numAttributes() - 1);
// 鍒濆鍖朘-means鑱氱被绠楁硶瀵硅薄
SimpleKMeans kMeans = new SimpleKMeans();
kMeans.setNumClusters(3); // 璁剧疆鑱氱被鏁扮洰
// 鏋勫缓鑱氱被妯″瀷
kMeans.buildClusterer(data);
// 鎵撳嵃鑱氱被涓績
Instances centroids = kMeans.getClusterCentroids();
for (int i = 0; i < centroids.numInstances(); i++) {
System.out.println("Cluster " + (i + 1) + " center: " + centroids.instance(i));
}
// 瀵规柊鏁版嵁杩涜棰勬祴
Instance newInstance = data.get(0); // 鍋囪棰勬祴绗竴鏉℃暟鎹?/span>
int clusterIndex = kMeans.clusterInstance(newInstance);
System.out.println("Predicted cluster for instance 0: " + clusterIndex);
} catch (Exception e) {
e.printStackTrace();
}
}
}
鍦ㄤ笂闈㈢殑浠g爜涓紝闇€瑕佹浛鎹?code>path/to/your/dataset.arff涓轰綘鐨勬暟鎹泦璺緞銆?/p>