📄 kmeans.h
字号:
// ***** 定义结构体和类 *****
struct aCluster {
double *Center;
int *Member; //属于该聚类的样本列表
int NumMembers;
};
struct aVector {
double *Center;
int Size;
};
class CKmeans {
public:
double *Pattern; //当作一个二位数组使用,行代表样本,列代表该样本的特征向量
aCluster *Cluster; // 存储各聚类信息
int NumPatterns; // 样本数量
int SizeVector; // 特征向量维度
int NumClusters; // 聚类数目
void DistributeSamples(); // K-means 步骤二,分布训练样本
int CalcNewClustCenters();// K-means 步骤三,计算新的聚类中心
double EucNorm(int, int); // 计算出当前向量和聚类中心的欧式距离
int FindClosestCluster(int); //计算出欧氏距离,并寻找出离当前向量距离最近的聚类中心
public:
CKmeans();
int LoadPatterns(char *fname); // 读取样本数据
void InitClusters(); // K-means步骤一,初始化聚类中心
void RunKMeans(); // K-means算法总体流程控制
void ShowCenters();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -