• 大小: 60.57 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-11-19
  • 语言: C#
  • 标签: 鸢尾花  聚类  

资源简介

自己刚完成的对鸢尾花数据进行聚类,和大家分享一下,具体的讲解都在README里面,大家可以看一下

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Max_Min_Iris
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int counter = 0;
        int center = 0;//聚类中心的个数
        List Iris = new List();//存储所有鸢尾花数据
        List centerType = new List();//存储聚类中心




        ///使用最大最小距离方法进行聚类
        private int ClusteringMaxMin()
        {
            ///生成一个随机数///
            Random rr = new Random();
            int rando1 = rr.Next(counter);//随机生成第一个聚类中心
            iris Iris1 = new iris();
            Iris1 = (iris)Iris[rando1].Clone();
            centerType.Add(Iris1);//添加第一个聚类中心
            center = 1;


            iris CenterIris = new iris();//用来存中心的对象
            ///找出距离第一个中心最远的点///
            int nMaxDistanceIndex = -1;
            uint nDistance = 0;
            uint nMaxDistance = 0;
            int i = -1;
            foreach (iris Data in Iris)
            {
                i++;
                nDistance = GetManhattanDistance(Data Iris1);
                if (nDistance > nMaxDistance)
                {
                    nMaxDistance = nDistance;
                    nMaxDistanceIndex = i;
                }
            }

            if (nMaxDistanceIndex >= 0)
            {
                CenterIris = (iris)Iris[nMaxDistanceIndex].Clone();
                centerType.Add(CenterIris);///添加第二个聚类中心
            }
            center = 2;



            ///寻找剩余的聚类中心

            ///寻找每个对象到聚类中心的距离的最小值
            while (1 != 0)
            {
                List Min_Iris = new List();//存储每个对象到聚类中心的最小值
                foreach (iris Data in Iris)
                {
                    uint nMinDistance = uint.MaxValue;
                    foreach (iris CenterData in centerType)
                    {
                        nDistance = GetManhattanDistance(Data CenterData);
                        if (nMinDistance > nDistance)
                        {
                            nMinDistance = nDistance;
                        }
                    }
                    Min_Iris.Add(nMinDistance);
                }

                ////MAX_MIN
                uint Max_Dis = 0;
                int j = 0;
                int Max_Dis_Index = -1;
                foreach (uint isdata in Min_Iris)
                {
                    if (isdata > Max_Dis)
                    {
                        Max_Dis = isdata;
                        Max_Dis_Index = j;
                    }
                    j++;
                }

                if (Max_Dis > nMaxDistance / 3)
                {
                    CenterIris = (iris)Iris[Max_Dis_Index].Clone();
                   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4700  2010-04-09 17:03  Max_Min_Iris最终\iris.txt

     文件      12800  2010-07-01 21:08  Max_Min_Iris最终\Max_Min_Iris\bin\Debug\Max_Min_Iris.exe

     文件      32256  2010-07-01 21:08  Max_Min_Iris最终\Max_Min_Iris\bin\Debug\Max_Min_Iris.pdb

     文件      14328  2010-07-01 21:24  Max_Min_Iris最终\Max_Min_Iris\bin\Debug\Max_Min_Iris.vshost.exe

     文件        490  2007-07-21 01:33  Max_Min_Iris最终\Max_Min_Iris\bin\Debug\Max_Min_Iris.vshost.exe.manifest

     文件       4690  2010-07-01 21:07  Max_Min_Iris最终\Max_Min_Iris\bin\Debug\聚类结果.txt

     文件       7176  2010-07-01 21:08  Max_Min_Iris最终\Max_Min_Iris\Form1.cs

     文件       6462  2010-07-01 21:07  Max_Min_Iris最终\Max_Min_Iris\Form1.Designer.cs

     文件       6216  2010-07-01 21:07  Max_Min_Iris最终\Max_Min_Iris\Form1.resx

     文件       1010  2010-07-01 21:03  Max_Min_Iris最终\Max_Min_Iris\iris.cs

     文件       3770  2010-07-01 21:03  Max_Min_Iris最终\Max_Min_Iris\Max_Min_Iris.csproj

     文件       1587  2010-07-01 21:24  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Max_Min_Iris.csproj.FileListAbsolute.txt

     文件        847  2010-07-01 21:07  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Max_Min_Iris.csproj.GenerateResource.Cache

     文件      12800  2010-07-01 21:08  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Max_Min_Iris.exe

     文件        180  2010-07-01 21:07  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Max_Min_Iris.Form1.resources

     文件      32256  2010-07-01 21:08  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Max_Min_Iris.pdb

     文件        180  2010-07-01 21:03  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Max_Min_Iris.Properties.Resources.resources

     文件        493  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\Program.cs

     文件       1380  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\Properties\AssemblyInfo.cs

     文件       2874  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\Properties\Resources.Designer.cs

     文件       5612  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\Properties\Resources.resx

     文件       1097  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\Properties\Settings.Designer.cs

     文件        249  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\Properties\Settings.settings

     文件        926  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris.sln

    ..A..H.     17408  2010-07-01 21:25  Max_Min_Iris最终\Max_Min_Iris.suo

     文件      28160  2010-07-01 21:34  Max_Min_Iris最终\READ ME.doc

     目录          0  2010-07-01 20:59  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\Refactor

     目录          0  2010-07-01 20:54  Max_Min_Iris最终\Max_Min_Iris\obj\Debug\TempPE

     目录          0  2010-07-01 21:04  Max_Min_Iris最终\Max_Min_Iris\bin\Debug

     目录          0  2010-07-01 21:08  Max_Min_Iris最终\Max_Min_Iris\obj\Debug

............此处省略8个文件信息

评论

共有 条评论