⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dunncore.cs

📁 Cluster validation program
💻 CS
字号:
using System;
using System.Collections;

namespace ClusterLibrary
{
	/// <summary>
	/// 
	/// </summary>
	public class GDICore
	{
		public GDICore()
		{
			// 
			// TODO: Add constructor logic here
			//
		}

		public static double ValidityIndex ( Set x, int i, int j ){
			ArrayList	interList	=	new ArrayList();
			ArrayList	intraList	=	new ArrayList();
			double		interDis	=	0.0;
			double		intraDis	=	0.0;

			// Intercluster Distances
			foreach ( Cluster xi in x ){
				foreach ( Cluster xj in x ){
					if ( xi.Equals( xj ) )
						continue;
					switch ( i ){
						case 1:
							interDis	=	Utilities.inter1( xi, xj );
							break;
						case 2:
							interDis	=	Utilities.inter2( xi, xj );
							break;
						case 3:
							interDis	=	Utilities.inter3( xi, xj );
							break;
						case 4:
							interDis	=	Utilities.inter4( xi, xj );
							break;
						case 5:
							interDis	=	Utilities.inter5( xi, xj );
							break;
						case 6:
							interDis	=	Utilities.inter6( xi, xj );
							break;
					}
					interList.Add( interDis );
				}
			}

			// Intracluster Distances
			foreach ( Cluster xk in x ){
				switch ( j ) {
					case 1:
						intraDis	=	Utilities.intra1( xk );
						break;
					case 2:
						intraDis	=	Utilities.intra2( xk );
						break;
					case 3:
						intraDis	=	Utilities.intra3( xk );
						break;
				}
				intraList.Add( intraDis );
			}

			return Utilities.Min ( interList ) / Utilities.Max ( intraList ) ;
		}

		public static ArrayList ValidityIndex ( Set x ){
			ArrayList	result	=	new ArrayList();
			ArrayList	interList	=	new ArrayList();
			ArrayList	intraList	=	new ArrayList();
			double		interDis = 0.0;
			double		intraDis = 0.0;
			
			for (int i = 0; i <= 17; i ++ ){
				// Intercluster Distances
				foreach ( Cluster xi in x ){
					foreach ( Cluster xj in x ){
						if ( xi.Equals(xj) )
							continue;
						switch ( i % 6 ) {
							case 0:
								interDis	=	Utilities.inter1( xi, xj );
								break;
							case 1:
								interDis	=	Utilities.inter2( xi, xj );
								break;
							case 2:
								interDis	=	Utilities.inter3( xi, xj );
								break;
							case 3:
								interDis	=	Utilities.inter4( xi, xj );
								break;
							case 4:
								interDis	=	Utilities.inter5( xi, xj );
								break;
							case 5:
								interDis	=	Utilities.inter6( xi, xj );
								break;
						}
						interList.Add( interDis );
					}
				}
		
				// Intracluster Distances
				foreach ( Cluster xk in x ){
					switch ( i / 6 ) {
						case 0:
							intraDis	=	Utilities.intra1( xk );
							break;
						case 1:
							intraDis	=	Utilities.intra2( xk );
							break;
						case 2:
							intraDis	=	Utilities.intra3( xk );
							break;
					}
					intraList.Add( intraDis );
				}

				result.Add ( Utilities.Min ( interList ) / Utilities.Max ( intraList ) );
				interList.Clear();
				intraList.Clear();
			}
		
			return result;
		}


	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -