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

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: C/C++
  • 標簽: k-means??源代碼??

資源簡介

這是用C++實現的普通K-means算法,附帶iris.dat數據集 k-means 源代碼 C++實現 C++ k均值

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
#include
using?namespace?std;

#define?NA?4
#define?K?3
#define?PS?150
#define?PC?0.5
#define?ED?0.0000001
#define?GeneNum?50
int?xxx;
typedef?struct
{
????double?p[NA];
????double?distance[K];
}Point;
Point?instance[PS];
typedef?struct
{
????Point?clustercenter[K];
}Pop;
Pop?pop;??????????//聚類中心
int?cluster[K][PS];
int?clusternum[K];
double?clustermean[K];
double?innerdistance;
double?oldinnerdistance;
double?btdistance;
double?fitness;
void?input()//讀入待聚類數據
{
????fstream?fin(“iris.data“);
????int?i;
????int?j;
????string?line;
????double?word;
????for(i=0;getline(finline)&&i????{
????????istringstream?stream(line);
????????for(j=0;stream>>word&&j????????{
????????????instance[i].p[j]=word;
????????}
????}
}
int?find(int?a[]int?nint?b)
{
????int?ii;
????for(ii=0;ii????if(a[ii]==b)?return?1;
????return?0;
}
void?sort(int?a[]int?n)//冒泡排序
{
????int?temp;
????int?ij;
????for(i=0;i????????for(j=0;j????????{
????????????if(a[j]>a[j+1])
????????????{
????????????????temp=a[j];
????????????????a[j]=a[j+1];
????????????????a[j+1]=temp;
????????????}
????????}
}
void?init()
{
????int?ij;
????int?num=0;
????int?random;
????int?rt[K];
????srand(time(NULL));
????for(;num????{
????????random=rand()%PS;
????????if(!find(rtnumrandom))
????????rt[num++]=random;
????}
????sort(rtK);
????for(i=0;i????for(j=0;j????{
????????pop.clustercenter[i].p[j]=instance[rt[i]].p[j];
????}
}
void?printfpop()
{
????int?ijk;
????cout<<“個體“<????for(j=0;j????{
????????cout<<“(“;
????????for(k=0;k????????{
????????????cout<????????}
????????cout<<“)?“;
????}
????printf(“?準則函數值為:%4.5f\n“fitness);
}
double?eucliddistance(int?xint?y)
{
int?i;
double?distance=0;
for(i=0;i {
distance+=pow((instance[x].p[i]-pop.clustercenter[y].p[i])2);
}
distance=sqrt(distance);
return?distance;
}
void?calcuatedistance()
{
int?ij;
for(i=0;i for(j=0;j {
instance[i].distance[j]=eucliddistance(ij);
}
}
void?Cluster()
{
????int?ijkl;
????double?min;
????double?count[NA];
????int?index;
????for(k=0;k????clusternum[k]=0;
????for(i=0;i????{
????????index=0;
????????min=instance[i].distance[0];
????????for(j=1;j????????{
????????????if(instance[i].distance[j]????????????{
????????????????min=instance[i].distance[j];
????????????????index=j;
????????????}
????????}
????????cluster[index][clusternum[index]++]=i;
????}
????oldinnerdistance=innerdistance;
????innerdistance=0.0;
????for(i=0;i????{
????????for(j=0;j????????innerdistance+=pow(instance[cluster[i][j]].distance[i]2);
????}
????fitness=1/(1+innerdistance);
}
vo

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

?????文件???????3859??2010-05-06?09:39??k-means.cpp

?????文件???????2702??2010-04-16?16:15??iris.data

-----------?---------??----------?-----??----

?????????????????6561????????????????????2


評論

共有 條評論