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

  • 大小: 659KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-07-22
  • 語言: C/C++
  • 標簽: K-Means??聚類分析??

資源簡介

模式識別課程中,動態聚類算法中比較容易的K-Means聚類分析的C語言實現。

資源截圖

代碼片段和文件信息

#include
#include
#include

#define?K?2
#define?MAX?100000

typedef?struct{
double?featureVector[10];
int?classification;
}sampleNode;

int?m?n;
sampleNode?*sn;
sampleNode?z[K+1];
sampleNode?zz[K+1];
int?classAmount[K+1];?//classAmount[k]表示當前類K的樣本數量
int?center[K+1];

void?inputSample(){

int?i?j;

printf(“請輸入樣本的數量和樣本的特征向量的屬性個數(用空格隔開):\n“);
scanf(“%d%d“?&m?&n);
sn?=?(sampleNode*)malloc(sizeof(sampleNode)*(m+1));

for(i=0;?i sn[i].classification?=?0;
}

printf(“\n請依次輸入每個樣本的特征值,特征值用空格隔開,樣本用回車符隔開:\n“);
for(i=1;?i<=m;?i++){
printf(“第%2d個樣本:“?i);
for(j=1;?j<=n;?j++){
scanf(“%lf“?&sn[i].featureVector[j]);
}
}
}

double?getDistance(sampleNode?a?sampleNode?b){
int?i;

double?dis;
dis?=?0.0;
for(i=1;?i<=n;?i++){
dis?+=?pow(a.featureVector[i]-b.featureVector[i]2);
}
return?sqrt(dis);
}

void?classify(){

double?min;
double?temp[K+1];
double?distance;
int?i?j;
int?c;
c?=?1;

for(i=1;?i<=m;?i++){
for(j=1;?j<=K;?j++){
temp[j]?=?getDistance(sn[i]?z[j]);
}
min?=?MAX;
for(j=1;?j<=K;?j++){
if(temp[j]? min?=?temp[j];
c?=?j;
}
}
sn[i].classification?=?c;
}
}

void?getCurrentAmount(){
int?i;
for(i=0;?i<=K;?i++){
classAmount[i]?=?0;
}
for(i=1;?i<=m;?i++){
classAmount[sn[i].classification]++;
}
}

void?reCalCenter(){
int?i;
int?j;
double?value[K+1];
int?k;
getCurrentAmount();

for(i=1;?i<=n;?i++){
for(k=0;?k<=K;?k++){
value[k]?=?0.0;
}
for(j=1;?j<=m;?j++){
value[sn[j].classification]?+=?sn[j].featureVector[i];
}
for(k=1;?k<=K;?k++){
zz[k].featureVector[i]?=?value[k]/classAmount[k];
}
}
}

int?judgeCenterEquality(){

int?i?j;
int?flag;
flag?=?1;
for(i=1;?i<=n;?i++){
for(j=1;?j<=K;?j++){
if(z[j].featureVector[i]?!=?zz[j].featureVector[i]){
flag?=?0;
break;
}
}
if(!flag){
break;
}
}
return?flag;
}

void?centerExchange(){
int?i?j;
for(j=1;?j<=K;?j++){
for(i=1;?i<=n;?i++){
z[j].featureVector[i]?=?zz[j].featureVector[i];
z[j].featureVector[i]?=?zz[j].featureVector[i];
}
}
}

void?printResult(){

int?i?j;
for(i=1;?i<=K;?i++){
printf(“屬于類別%d的樣本如下:\n“?i);
for(j=1;?j<=m;?j++){
if(sn[j].classification?==?i){
printf(“X%d??“?j);
}
}
printf(“\n“);
}
printf(“\n\n“);
}

int?main(){

int?i;
int?center[K+1];

inputSample();
printf(“\n請輸入%d個初始聚類中心,用空格隔開:\n“?K);
for(i=1;?i<=K;?i++){
scanf(“%d“?¢er[i]);
}
for(i=1;?i<=K;?i++){
z[i]?=?sn[center[i]];
}

i?=?1;
classify();
reCalCenter();
while(!judgeCenterEquality()){
centerExchange();
classify();
reCalCenter();
i++;
}
printResult();
printf(“\n迭代次數為:%d\n“?i);
return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????31744??2013-04-08?21:20??K-Means\Debug\K-Means.exe

?????文件?????393536??2013-04-08?21:20??K-Means\Debug\K-Means.ilk

?????文件?????437248??2013-04-08?21:20??K-Means\Debug\K-Means.pdb

?????文件????1441792??2013-04-08?18:14??K-Means\ipch\k-means-38da6f35\k-means-c0adf4d8.ipch

?????文件????????786??2013-04-08?21:20??K-Means\K-Means\Debug\cl.command.1.tlog

?????文件???????1932??2013-04-08?21:20??K-Means\K-Means\Debug\CL.read.1.tlog

?????文件????????534??2013-04-08?21:20??K-Means\K-Means\Debug\CL.write.1.tlog

?????文件????????406??2013-04-08?19:16??K-Means\K-Means\Debug\K-Means.exe.embed.manifest

?????文件????????472??2013-04-08?19:16??K-Means\K-Means\Debug\K-Means.exe.embed.manifest.res

?????文件????????381??2013-04-08?21:20??K-Means\K-Means\Debug\K-Means.exe.intermediate.manifest

?????文件?????????91??2013-04-08?21:20??K-Means\K-Means\Debug\K-Means.lastbuildstate

?????文件???????1950??2013-04-08?21:20??K-Means\K-Means\Debug\K-Means.log

?????文件??????19863??2013-04-08?21:20??K-Means\K-Means\Debug\K-Means.obj

?????文件????????204??2013-04-08?19:16??K-Means\K-Means\Debug\K-Means_manifest.rc

?????文件??????????2??2013-04-08?21:20??K-Means\K-Means\Debug\link-cvtres.read.1.tlog

?????文件??????????2??2013-04-08?21:20??K-Means\K-Means\Debug\link-cvtres.write.1.tlog

?????文件???????1804??2013-04-08?21:20??K-Means\K-Means\Debug\link.command.1.tlog

?????文件???????3072??2013-04-08?21:20??K-Means\K-Means\Debug\link.read.1.tlog

?????文件???????1128??2013-04-08?21:20??K-Means\K-Means\Debug\link.write.1.tlog

?????文件????????450??2013-04-08?21:20??K-Means\K-Means\Debug\mt.command.1.tlog

?????文件????????442??2013-04-08?21:20??K-Means\K-Means\Debug\mt.read.1.tlog

?????文件????????442??2013-04-08?21:20??K-Means\K-Means\Debug\mt.write.1.tlog

?????文件????????652??2013-04-08?19:16??K-Means\K-Means\Debug\rc.command.1.tlog

?????文件????????414??2013-04-08?19:16??K-Means\K-Means\Debug\rc.read.1.tlog

?????文件????????422??2013-04-08?19:16??K-Means\K-Means\Debug\rc.write.1.tlog

?????文件??????44032??2013-04-08?21:20??K-Means\K-Means\Debug\vc100.idb

?????文件??????69632??2013-04-08?21:18??K-Means\K-Means\Debug\vc100.pdb

?????文件???????2964??2013-04-08?21:23??K-Means\K-Means\K-Means.cpp

?????文件???????3919??2013-04-08?19:16??K-Means\K-Means\K-Means.vcxproj

?????文件????????956??2013-04-08?19:16??K-Means\K-Means\K-Means.vcxproj.filters

............此處省略13個文件信息

評論

共有 條評論