91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

使用純java實現KMeans模擬算法代碼,隨即撒點,計算K個聚類,使用了javaFX繪圖工具包,結果有散點圖的顯示

資源截圖

代碼片段和文件信息

package?kmeans;
import?javafx.application.Application;
import?javafx.collections.FXCollections;
import?javafx.collections.ObservableList;
import?javafx.scene.Scene;
import?javafx.scene.chart.CategoryAxis;
import?javafx.scene.chart.NumberAxis;
import?javafx.scene.chart.ScatterChart;
import?javafx.scene.chart.XYChart;
import?javafx.scene.chart.XYChart.Series;
import?javafx.scene.layout.StackPane;
import?javafx.stage.Stage;

import?java.util.ArrayList;
import?java.util.Vector;

import?javafx.collections.FXCollections;
import?javafx.collections.ObservableList;
import?javafx.scene.Scene;
import?javafx.scene.chart.CategoryAxis;
import?javafx.scene.chart.NumberAxis;
import?javafx.scene.chart.ScatterChart;
import?javafx.scene.chart.XYChart;
import?javafx.scene.chart.XYChart.Series;
import?javafx.scene.layout.StackPane;
import?javafx.stage.Stage;
//隨機選取若干個聚類,計算所有點到這些聚類的距離,取最小值屬于該類
//分類后將每個類所有點取均值,算該類的中心點,隨后對所有點再次計算歐氏距離,再次分類
//迭代到每個中心點不變為止
//生成指定個數和維數的隨機向量
public?class?KMeans?extends?Application{
static?ArrayList>?vectorList?;//向量組
static?Vector?center1?;//中心1
static?Vector?center2?;//中心2
static?ArrayList>??cluster1;//聚類1
static?ArrayList>??cluster2;//聚類2

static?double?threshold?=?0.01;
public?void?showVectorGroup(ArrayList>?vectorList?int?vectorNum?int?dim)?{
for(int?i=0;i for(int?j=0;j System.out.print(vectorList.get(i).get(j)+“?“);
}
System.out.println();
}
}

public?static?ArrayList>??generateVectorGroup(int?vectorNum?int?dim)?{
ArrayList>?vectorList?=?new?ArrayList>();
//隨機填充向量組
for(int?i=0;i Vector?vTemp?=?new?Vector<>();
for(int?j=0;j double?randomTemp?=?Math.random()*100-30;
vTemp.add((randomTemp)<0?(randomTemp+Math.random()*40):(randomTemp));
}vectorList.add(vTemp);//講向量加入向量組中
}
//增加偏置因子讓數據更好的顯示類別
for(int?i=0;i Vector?vTemp?=?new?Vector<>();
for(int?j=0;j double?randomTemp?=?Math.random()*100+30;
vTemp.add((randomTemp)>100?(randomTemp-Math.random()*40):(randomTemp));
}vectorList.add(vTemp);//講向量加入向量組中
}
return?vectorList;
}

//計算向量的歐式距離
public?static?double?calculationVectorDistance(Vector?v1Vector?v2?int?dim)?{
double?distance?=?0.0;
for(int?i=0;i distance?+=?Math.pow((v1.get(i)-v2.get(i))2);
}
return?Math.sqrt(distance);
}

//聚類方法
public?static?void?doCluster()?{

}

//計算聚類的中心
public?static?Vector?computeCenter(ArrayList>?cluster?int?dim){
Vector?center?=?new?Vector<>();
for(int?i=0;i double?calculate?=?0.0;
for(int?j=0;j calculate+=cluster.get(j).get(i);
}
c

評論

共有 條評論