• 大小: 280KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签: CureC++  

资源简介

用C++编写的基于层次的聚类算法中的CURE算法

资源截图

代码片段和文件信息

/****************************************************************************
*                                                                           *
*  CURE                                                                     *
*                                                                           *
*****************************************************************************/

#include 
#include 
#include 
#include 
#include 
#include 

#define         SUCCESS         1
#define         FAILURE         0
#define         TRUE            1
#define         FALSE           0
#define         NUMPATTERNS     10   // 数据点的个数
#define         SIZEVECTOR      2     // 数据集的维数
#define         NUMCLUSTERS     2     // 类的个数
#define         NUMPRE          3    // 代表点个数
#define         SHRINK          0.5   // 收缩率

// ***** 定义结构和类 *****
struct ClustNode {
int          Member[NUMPATTERNS];  //类中的数据项
int          NumMembers;
double       Means[SIZEVECTOR];  //均值点
double       Pre[NUMPRE][SIZEVECTOR];//代表点
int          PreMember[NUMPRE];//作为代表点的数据项
int          closet;  //最近的簇
double       MinDist;//与最近的簇之间的距离
};

class System {
private:
double      Pattern[NUMPATTERNS][SIZEVECTOR];
ClustNode *p[NUMPATTERNS];
    void        BuildClustList(); //建立初始簇链表
ClustNode * Merge(ClustNode *ClustNode *); //合并两个簇
int         MinClust();    //找到最近的两个簇
double      dist(ClustNode*ClustNode *);//两个簇之间的最短距离
double      EucNorm(double *double *);//代表点之间的距离
void        ShrinkPre(ClustNode *);  //收缩代表点

public:
System();
~System();
int LoadPatterns(char *fname);      // 处理数据集
void RunCure();                     // 聚类的过程
void ShowClusters();                // 显示聚类结果
};
System::System()
{
}
System::~System()
{
int i;
for(i=0;i if(p[i]==NULL)
continue;
else
delete p[i];
}
}
int System::LoadPatterns(char *fname){
int    ijlen;
char buff[300];
char *ptr*ptr1;
ifstream infile(fnameios::in);    //将fname打开作为输入
if(!infile){
cout<<“不能打开输入文件:\n“;
return FAILURE;
}
for(i=0; i infile.getline(buff300);     //将300个字符传入buff中,buff是指针
len=0;
ptr=buff;
for (j=0; j ptr1=strchr(ptr‘‘);   //找出sptr指向的字符串中第一次出现““的位置
*ptr1=‘\0‘;
Pattern[i][j]=atof(ptr);    //将ptr指向的字符串转化为浮点数
len=strlen(ptr);
ptr=ptr+len+1;
} /* endfor */
} /* endfor */
infile.close();
return SUCCESS;
}
void  System::BuildClustList(){
int ij;
double MinDistd;
for(i=0;i p[i]=new ClustNode;
p[i]->NumMembers=1;
p[i]->Member[0]=i;
p[i]->PreMember[0]=i;
for(j=0;j p[i]->Means[j]=Pattern[i][j];//均值
}
for(j=0;j p[i]->Pre[0][j]=Pattern[i][j]+(SHRINK)*(p[i]->Means[j]-Pattern[i][j]);//计算代表点
}
}
for(i=0;i p[i]->MinDist=9.9e+99;
for(j=0;j

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6915  2013-05-24 20:57  CURE算法\cure\cure.cpp

     文件       3377  2013-05-24 20:55  CURE算法\cure\CURE.dsp

     文件        516  2013-05-24 20:57  CURE算法\cure\CURE.dsw

     文件      58368  2013-05-24 20:57  CURE算法\cure\CURE.ncb

     文件     198069  2013-05-24 21:06  CURE算法\cure\cure.obj

     文件      48640  2013-05-24 20:57  CURE算法\cure\CURE.opt

     文件       1196  2013-05-24 20:57  CURE算法\cure\CURE.plg

     文件     241708  2013-05-24 20:57  CURE算法\cure\Debug\CURE.exe

     文件      23008  2013-05-24 20:57  CURE算法\cure\Debug\cure.obj

     文件     607232  2013-05-24 20:57  CURE算法\cure\Debug\CURE.pdb

     文件      69632  2013-05-24 20:57  CURE算法\cure\Debug\vc60.pdb

     文件         75  2013-05-11 09:39  CURE算法\cure\iris.data

     文件         98  2013-05-24 18:48  CURE算法\cure\Project1.bpf

     文件       3109  2013-05-24 18:48  CURE算法\cure\Project1.bpr

     文件      30720  2013-05-24 21:06  CURE算法\cure\Project1.exe

     文件        876  2013-05-24 18:06  CURE算法\cure\Project1.res

     文件     393216  2013-05-24 21:06  CURE算法\cure\Project1.tds

     目录          0  2013-06-05 11:34  CURE算法\cure\Debug

     目录          0  2013-06-05 11:34  CURE算法\cure

     目录          0  2013-06-04 09:59  CURE算法

----------- ---------  ---------- -----  ----

              1686755                    20


评论

共有 条评论

相关资源