一種基於C語言的聚類演算法實現

2021-10-13 05:38:25 字數 916 閱讀 5230

#include

#include

#define totalpoint 12

#define attsetsize 2

#define    minpts 4

bool neighbor[totalpoint][totalpoint];    //儲存點與點是否相鄰的二維陣列

int clusterno[totalpoint];        //記錄每個點屬於哪個簇

int currentclusterno=0;            //記錄當前的簇編號

struct clusterlist   //用來存放直接密度可達的點

;double distance(double database1,double database2)

return false;

}//聚類劃分過程

void docluster(int objectnum)

}//對核心物件的鄰居遞迴

while(clusterlist.head<=clusterlist.tail)

//    currentclusterno++;    //上個簇的元素已經全部找到  !!!!注意1:新簇加到這裡會影響遞迴的核心物件的取值,所以新簇的產生不能出現在遞迴中}}

}main()

,,,,,,,,,,,};    //所有資料元素

int i,j;

double e=1;        //克西....

//給clusterno初始化,代表物件的簇標號還未分配

for(i=0;i//計算鄰近

for(i=0;ifor(i=0;i//聚類劃分過程的函式

docluster(i);

}//結果的輸出

for(i=1;i<=currentclusterno;i++)}}

}

一種基於密度峰值的聚類演算法

2014年science刊發了一篇標題為clustering by fast search and find of density peaks的文章,文章中介紹了一種基於密度峰值的聚類演算法。傳統的聚類演算法k means,通常不適用於非球形的簇。這裡所謂的球形簇是根據k means演算法基本原理得...

一種新的矩形聚類演算法

一種新的矩形聚類演算法 聚類,是資料探勘一種重要的手段,通常所見到的聚類,大都是多維向量點 基於距離的聚類演算法,比如 k means 密度聚類等。本文所討論的是擴充套件物件的聚類,與多維向量點聚類有著明顯的差別,擴充套件物件是非點的物件,延用多維向量點之間的距離是無法準確表達擴充套件物件之間的聚合...

K Means聚類演算法的實現(C語言)

最近做了聚類實驗,就寫了下k means演算法,c語言實現.實驗給出的資料集比較小,總共有11個 2,10 2,5 8,4 5,8 7,5 6,4 1,2 4,9 7,3 1,3 3,9 執行的聚類結果 cluster 1 2,10 5,8 4,9 3,9 cluster 2 8,4 7,5 6,4...