资源简介
该代码是模糊均值聚类算法源代码,用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#简单学生信息管理系统
评论
共有 条评论