資源簡介
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個比較有代表性的基于密度的聚類算法。與劃分和層次聚類方法不同,它將簇定義為密度相連的點的最大集合,能夠把具有足夠高密度的區域劃分為簇,并可在噪聲的空間數據庫中發現任意形狀的聚類。 C++實現代碼,自定義掃描半徑(eps)、最小包含點數(minPts)、維度。
代碼片段和文件信息
?/*
?作者:?DiamonJoy
?維護:?2014.3.8
?*/
#include?“ClusterAnalysis.h“
#include?
#include?
using?namespace?std;
int?main()
{
char?datafile[50]?resultfile[50];
double?radius;
int?minPTs;
cout<<“輸入半徑radius:“;?cin>>radius;
cout<<“輸入領域內最小數據點個數minPTs:“;?cin>>minPTs;
cout<<“請將數據樣本文件轉換成.txt文件\n輸入樣本文件地址:\n例如C:\\Users\\XuBin&&Jason\\Desktop\\data.txt“< cin>>datafile;
ClusterAnalysis?myClusterAnalysis;????????????????????????//聚類算法對象聲明
myClusterAnalysis.Init(datafileradiusminPTs); ??//指定半徑和領域內最小數據點個數
myClusterAnalysis.DoDBSCANRecursive();????????????????????//執行聚類算法
cout<<“\n輸入結果文件儲存地址\n例如C:\\Users\\XuBin&&Jason\\Desktop\\redata.txt)再自行將.txt文件轉化成樣本文件:“< cin>>resultfile;
myClusterAnalysis.WriteToFile(resultfile);//寫執行后的結果寫入文件
cout<<“寫入成功“<
system(“pause“);????//顯示結果
return?0;????????????//返回
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2659??2017-04-21?13:30??DataPoint.h
?????文件???????1003??2017-04-21?13:31??DBSCAN_main.cpp
?????文件???????7034??2014-03-09?16:32??redata.txt
?????文件???????7193??2017-04-21?13:30??ClusterAnalysis.h
?????文件???????6572??2014-03-09?16:01??data.txt
-----------?---------??----------?-----??----
????????????????24461????????????????????5
- 上一篇:rrt算法實踐程序c++
- 下一篇:c++課設(小型商品銷售管理系統)
評論
共有 條評論