-
大小: 14.83MB文件類型: .zip金幣: 1下載: 0 次發(fā)布日期: 2023-06-14
- 語(yǔ)言: C/C++
- 標(biāo)簽: ISODATAVC++??
資源簡(jiǎn)介
ISODATA算法VC++實(shí)現(xiàn),我用的260個(gè)小數(shù)點(diǎn)坐標(biāo)做了測(cè)試!能夠?qū)崿F(xiàn)1.2特快專遞業(yè)務(wù)(含完整數(shù)據(jù))這個(gè)程序,為了方便大家下載!把它提供到了網(wǎng)上
代碼片段和文件信息
//?ISODATA.cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#include?“stdafx.h“
#include?“ISODATA.h“
#include?“Sort.h“
#include?
using?namespace?std;
//?class?ISODATA
extern?int?N;
extern?int?dim;
ISODATA::ISODATA()
{
????c?=?2;??//?預(yù)期的類數(shù);
????Nc?=?1;?//?初始聚類中心個(gè)數(shù)(可以不等于c);
????theta_n?=?2;????//?每一類中允許的最少模式數(shù)目(若少于此數(shù),就不能單獨(dú)成為一類);
????theta_s?=?1;????//?類內(nèi)各分量分布的標(biāo)準(zhǔn)差上限(大于此數(shù)就分裂);
????theta_D?=?4;????//?兩類中心間的最小距離下限(若小于此數(shù),這兩類應(yīng)合并);
????L?=?1;??//?在每次迭代中可以合并的類的最多對(duì)數(shù);
????I?=?4;??//?允許的最多迭代次數(shù);
????_d?=?100;???????????//?總體平均距離
????Ip?=?0;?????????????//?迭代次數(shù)
????
????double?D[MAXNUM][MAXNUM];???//?各類對(duì)中心間的距離
????for(int?i=0;i ????????for(int?j=0;j ????????????D[i][j]?=?MAXDOUBLE;
}
ISODATA::~ISODATA()
{
}
//?設(shè)置參數(shù)
int?ISODATA::SetupPattern(Pattern?*?pattern)
{
????for(int?i=0;i ????????x[i]?=?pattern[i];
????return?N;
}
//?算法實(shí)現(xiàn)步驟
int?ISODATA::Process()
{
????bool?changed?=?true;
????//?1.預(yù)置
????//?2)將待分類的模式特征矢量x1x2...xn讀入;
????//?SetupPattern();
????
????//?3)選定初始聚類中心,可從待分類的模式特征矢量集{xi}中任選Nc個(gè)模式特征矢量作為初始聚類中心zj(j=12...Nc).
????InitCenter();
step1:
????//?1)設(shè)定聚類分析控制參數(shù):
????SetupParameter();
step2:
????//?2.按最小距離原則將模式集(xi)中每個(gè)模式分到某一類中
????changed?=?false;
????Clustering();
????if(Ip?==?0)
????????cout?<????else
????????cout?<????PrintSort();
step3:
????//?3.依據(jù)theta_n判斷合并。如果類wj中樣本數(shù)nj ????if(CombinBytheta_n())
????????goto?step2;
step4:
????//?計(jì)算分類后的參數(shù):各類中心、類內(nèi)平均距離及總體平均距離。
????CalParameter();
step5:
????//?依據(jù)Ip?Nc?判斷停止\分裂或合并。
????if(Ip?==?I)
????{
????????theta_D?=?0;
????????goto?step9;
????}
????else?if(Nc?<=?c/2)
????????goto?step6;
????else?if(Nc?>=?2*c)
????????goto?step9;
????else?if(Ip%2?==?1)??//Nc>?c/2?&&?Nc?2*c
????????goto?step6;
????else
????????goto?step9;
step6:
????//?計(jì)算各類類內(nèi)距離的標(biāo)準(zhǔn)差矢量
????CalSigma();
step7:
????//?求出每一聚類類內(nèi)距離標(biāo)準(zhǔn)差矢量sigma中的最大分量sigma_max
????//?CalMaxSigma();???//?由于在Sort類中已進(jìn)行計(jì)算,這里不做任何處理
step8:
????//?判斷分裂
????if(Split())
????{
????????changed?=?true;
????????Ip++;
????????goto?step2;
????}
step9:
????//?計(jì)算各類對(duì)中心間的距離
????CalCenterDis();
step10:
????//?依據(jù)theta_D判斷合并
????if(CombinBytheta_D())
????????changed?=?true;
step11:
????//?判斷循環(huán)還是退出
????if(Ip?>=?I)
????{
????????cout?<????????goto?over;
????}
????else?if(changed?==?false)
????{
????????Ip++;
????????cout?<????????goto?over;
????}
????else
????{
????????Ip++;
????????char?ch;
????????cout?<“本次迭代完成,是否需要改變參數(shù)(Y/N)?:?“;
????????cin?>>?ch;
????????if(ch?==?‘y‘?||?ch?==?‘Y‘)
????????????goto?step1;
????????else?
????????????goto?step2;
????}
over:???
????PrintSort();
????return?Ip;
}
//?3)選定初始聚
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-05-07?16:00??ISODATA\
?????目錄???????????0??2013-05-07?16:00??ISODATA\Debug\
?????文件??????136192??2013-05-07?15:40??ISODATA\Debug\ISODATA.exe
?????文件??????850708??2013-05-07?15:40??ISODATA\Debug\ISODATA.ilk
?????文件??????977920??2013-05-07?15:40??ISODATA\Debug\ISODATA.pdb
?????文件?????3649024??2013-04-05?23:10??ISODATA\Debug\opencv_core245d.dll
?????文件?????3818496??2013-04-05?23:11??ISODATA\Debug\opencv_highgui245d.dll
?????文件?????3357696??2013-04-05?23:10??ISODATA\Debug\opencv_imgproc245d.dll
?????目錄???????????0??2013-05-07?16:00??ISODATA\ISODATA\
?????目錄???????????0??2013-05-07?16:00??ISODATA\ISODATA\Debug\
?????文件???????11206??2013-05-07?15:40??ISODATA\ISODATA\Debug\CL.read.1.tlog
?????文件????????3400??2013-05-07?15:40??ISODATA\ISODATA\Debug\CL.write.1.tlog
?????文件????????1423??2013-05-07?15:40??ISODATA\ISODATA\Debug\ISODATA.Build.CppClean.log
?????文件??????????95??2013-05-07?15:40??ISODATA\ISODATA\Debug\ISODATA.lastbuildstate
?????文件????????3512??2013-05-07?15:40??ISODATA\ISODATA\Debug\ISODATA.log
?????文件??????240626??2013-05-07?15:40??ISODATA\ISODATA\Debug\ISODATA.obj
?????文件????13631488??2013-05-07?15:40??ISODATA\ISODATA\Debug\ISODATA.pch
?????文件??????220702??2013-05-07?15:40??ISODATA\ISODATA\Debug\MAIN.obj
?????文件???????14284??2013-05-07?15:40??ISODATA\ISODATA\Debug\Pattern.obj
?????文件???????17588??2013-05-07?15:40??ISODATA\ISODATA\Debug\Sort.obj
?????文件????????4074??2013-05-07?15:40??ISODATA\ISODATA\Debug\cl.command.1.tlog
?????文件???????????2??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件???????????2??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件???????????2??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件???????????2??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件????????2994??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件????????5978??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件????????1358??2013-05-07?15:40??ISODATA\ISODATA\Debug\li
?????文件??????155905??2013-05-07?15:40??ISODATA\ISODATA\Debug\stdafx.obj
?????文件??????379904??2013-05-07?15:40??ISODATA\ISODATA\Debug\vc110.idb
?????文件??????536576??2013-05-07?15:40??ISODATA\ISODATA\Debug\vc110.pdb
............此處省略23個(gè)文件信息
評(píng)論
共有 條評(píng)論