資源簡介
該代碼是模糊均值聚類算法源代碼,用C#語言編寫,對于數據挖掘的學員有一定幫助。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?FCM
{
????class?FCM
????{
????????const?int?SIZE1?=?10;
????????double?dDelta;
????????int?nProcess;
????????//這個函數計算歐氏距離
????????public?double?distance(double?[]v1double?[]v2double?dimension)????????????
????????{
????????????int?i;
????????????double?result;
????????????result=0;
????????????for(i=0;i ????????????{
????????????????result+=(v1[i]-v2[i])*(v1[i]-v2[i]);
????????????}
????????????result=Math.Sqrt(result);
????????????return?result;
????????}
????????//此函數計算優化的目標函數
????????public?double?objectfun(double[]?u?double[]?v?double[]?x?int?c?int?pattern?int?dimension?float?m)
????????{
????????????int?ijk;
????????????double?[]v1?=?new?double?[SIZE1];
????????????double?[]v2?=?new?double?[SIZE1];
????????????double?objective;
????????????objective=0;
????????????for(i=0;i ????????????{
????????????????for(j=0;j ????????????????{
????????????????????for(k=0;k ????????????????????{
????????????????????????v1[k]=x[j*dimension+k];
????????????????????????v2[k]=v[i*dimension+k];
????????????????????}
????????????????????objective+=Math.Pow(u[i*pattern+j]m)*distance(v1v2dimension)*distance(v1v2dimension);
????????????????}
????????????}
????????????return?objective;
????????}
????????
//?本函數完成FCM聚類算法
//參數分為三組:基本聚類樣本的信息、算法的參數信息、算法控制信息、輸出信息。
//其中:
//adi_pattern[]為樣本點向量??指標為:樣本指標*維數+維數指標
//n_dimension是每個樣本的維數
//n_numpattern是樣本的個數
//***************關于上面三個參數的說明***********
//adi_pattern[]為一維數組,它的數目由n_dimension*n_numpattern確定
//************************************************
??
//n_catacount是要分類的數目
//f_weightm是fcm的重要控制參數m
//n_maxcycle是最大循環次數
//d_threshold為算法結束迭代的閾值
//ado_matrixu[]為輸出的劃分矩陣???指標為:聚類指標*樣本數+樣本指標
//ado_center[]為輸出的樣本的聚類中心向量??指標為:據類指標*維數+維數指標
//d_funj為目標函數的值????????
????????public?int?funfcm(double[]?adi_pattern?int?n_dimension?int?n_numpattern?int?n_catacount?float?f_weightm?int?n_maxcycle?double?d_threshold?double[]?ado_matrixu?double[]?ado_center?double?d_funj)
????????{
????????????int?jiktcount;
????????????int?n_cycle;
????????????int?n_selnum;
????????????int?flagtemp;
????????????double?f_templastvdeltat_temp;
????????????double?[]v1?=?new?double?[SIZE1];
????????????double?[]v2?=?new?double?[SIZE1];
????????????double?min_dis=0.001;//距離的最小值
????????????//驗證輸入參數的有效性:
????????????if(n_catacount>=n_numpattern||f_weightm<=1)
????????????{
????????????????return?1;
????????????}
????????????//srand(?(unsigned)time(?NULL?)?);
????????????Random?Rnd?=?new?Random();
????????????//隨機的選取初始迭代點作為初始的聚類中心。
????????????for(j=0;j ????????????{
????????????????t_temp?=?Rnd.Next(1);
????????????????//t_temp/=?MAX_RAND;
????????????????//ado_center[j]=t_temp;
????????????????//n_selnum=int.Parse(rand()*n_numpattern/(n_catacount*MAX_RAND)+j*int.Parse(n_numpattern/n_catacount));
???????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????20480??2008-12-29?15:08??FCM\FCM\bin\Debug\FCM.exe
?????文件??????24064??2008-12-29?15:08??FCM\FCM\bin\Debug\FCM.pdb
?????文件???????5632??2008-08-03?18:56??FCM\FCM\bin\Debug\FCM.vshost.exe
?????文件???????8743??2008-12-29?15:08??FCM\FCM\FCM.cs
?????文件???????3098??2008-08-03?18:56??FCM\FCM\FCM.csproj
?????文件????????330??2008-08-03?18:56??FCM\FCM\frmFCM.cs
?????文件???????1151??2008-08-03?18:56??FCM\FCM\frmFCM.Designer.cs
?????文件????????784??2008-12-29?15:06??FCM\FCM\obj\Debug\FCM.csproj.GenerateResource.Cache
?????文件??????20480??2008-12-29?15:08??FCM\FCM\obj\Debug\FCM.exe
?????文件??????24064??2008-12-29?15:08??FCM\FCM\obj\Debug\FCM.pdb
?????文件????????180??2008-12-29?15:06??FCM\FCM\obj\Debug\FCM.Properties.Resources.resources
?????文件????????209??2008-12-29?15:08??FCM\FCM\obj\FCM.csproj.FileList.txt
?????文件????????463??2008-08-03?18:56??FCM\FCM\Program.cs
?????文件???????1154??2008-08-03?18:56??FCM\FCM\Properties\AssemblyInfo.cs
?????文件???????2860??2008-08-03?18:56??FCM\FCM\Properties\Resources.Designer.cs
?????文件???????5350??2008-08-03?18:56??FCM\FCM\Properties\Resources.resx
?????文件???????1086??2008-08-03?18:56??FCM\FCM\Properties\Settings.Designer.cs
?????文件????????249??2008-08-03?18:56??FCM\FCM\Properties\Settings.settings
?????文件????????898??2008-08-03?18:56??FCM\FCM.sln
????..A..H.?????13824??2008-12-29?15:59??FCM\FCM.suo
?????目錄??????????0??2008-08-03?18:56??FCM\FCM\obj\Debug\TempPE
?????目錄??????????0??2008-08-03?18:56??FCM\FCM\bin\Debug
?????目錄??????????0??2008-12-29?15:08??FCM\FCM\obj\Debug
?????目錄??????????0??2008-08-03?18:56??FCM\FCM\bin
?????目錄??????????0??2008-08-03?18:56??FCM\FCM\obj
?????目錄??????????0??2008-08-03?18:56??FCM\FCM\Properties
?????目錄??????????0??2008-12-29?15:08??FCM\FCM
?????目錄??????????0??2008-08-03?18:56??FCM
-----------?---------??----------?-----??----
???????????????135099????????????????????28
............此處省略1個文件信息
- 上一篇:C# 通過串口傳遞圖片
- 下一篇:C#簡單學生信息管理系統
評論
共有 條評論