強算KMeans聚類演算法演示器

2021-09-07 05:38:46 字數 1785 閱讀 8803

這些天做c#實驗以及這個kmeans演算法演示器,學了一下opengl,感覺有待加強。

/*point 結構體定義及實現

結構體重載了2個運算子:

1.== //推斷兩個point的座標值是否相等

2.<< //用於顯示(以友元函式的方式過載)

*/#ifndef point_h_

#define point_h_

#include #include #include using namespace std;

const int mwidth=3; //顯示時每乙個字元寬度

//存放點座標的結構

struct point

point(double xx,double yy,string n)

:x(xx),y(yy),name(n)

//複製建構函式

point(const point &p)

:x(p.x),y(p.y),name(p.name)

//賦值複製函式

point operator=(const point &p)

//推斷兩個point座標值是否相等

bool operator==(const point &point)const

//過載<<

friend ostream& operator<

//清空流內容

void eatline();

//選擇起始中心點輸入

//center 儲存中心點的陣列

//vp 全部點

bool inputcenter(vector¢er,vector&vp)

//選擇起始中心點

int j=0;

while(j>locate;

if(locate>0&&locate<=vpsize)

//將每乙個點指派到陣列裡面去

for(int i=0;igroup[locate].push_back(vp[i]);

//輸出點指派資訊

//cout

//繪製乙個陣列的點

void paintvectorpoint(vector&vp)

}#endif

#ifndef tfunc_h_

#define tfunc_h_

#include #include "functions.h"

#include #include "openglfunc.h"

#include "kmeans.h"

#include "functions.h"

#include using namespace std;

void yourchoice();

#endif

#include "openglfunc.h"

#include "functions.h"

#include "tfunc.h"

#include "displayfunc.h"

int main(int argc,char **argv)

dos介面+opengl繪圖

演演示樣例如以下:

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...

聚類演算法 K means

演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...

k means聚類演算法

說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...