• 大小: 72KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C#
  • 标签: c#  聚类算法  K-Means  

资源简介

本资源为利用C#语言编写的K-Means代码.(可以点击生成坐标点,也可以随机生成坐标点)代码简洁,注释齐全,运行顺畅

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MY_KM
{
    //算法类
    class Arithmetic
    {
        //定义样本点链表
        public List _SampleList = new List();

        //定义质心点链表
        public List _ClusterList = new List();
   
        //计算样本点与质心点之间的距离
        public double Calculate(Sample _sample Cluster _cluster)
        {

            return  Math.Sqrt((_sample._X - _cluster._X) * (_sample._X - _cluster._X) +(_sample._Y - _cluster._Y) * (_sample._Y - _cluster._Y));

        }

        //将样本点进行分类
        public void Cluster()
        {
            for (int i = 0; i < _SampleList.Count; i++)
            {
                double MinDistance = 1000000;

                for (int j = 0; j < _ClusterList.Count; j++)
                {
                    //计算样本点与质心点之间的距离
                    double Distance = Calculate(_SampleList[i] _ClusterList[j]);
                    
                    //若存在更接近的质心则选择距离最近的质心
                    if (Distance < MinDistance)
                    {
                        MinDistance = Distance;

                        _SampleList[i]._ClusterID = j;
                    }
                }

            }
        }

        //产生新的质心
        public void Center()
        {
            for (int i = 0; i < _ClusterList.Count; i++)
            {
                double xsum=0ysum=0;

                int num = 0;

                for (int j = 0; j < _SampleList.Count; j++)
                {
                    if (_SampleList[j]._ClusterID == i)
                    {
                        xsum += _SampleList[i]._X;
                        ysum += _SampleList[i]._Y;
                        num++;
                    }
                    if (num != 0)
                    {
                        _ClusterList[i]._X = xsum / num;
                        _ClusterList[i]._Y = ysum / num;
                    }
                }
            }
        }
        
        //进行迭代
        public void Iterate()
        {
            //将各样本点进行分类
            Cluster();
            //产生新的质心
            Center();
        }

    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-29 22:29  KM\
     目录           0  2018-05-29 22:29  KM\MY KM\
     目录           0  2018-06-02 11:46  KM\MY KM\MY KM\
     文件        2442  2018-06-02 11:46  KM\MY KM\MY KM\Arithmetic.cs
     文件         403  2018-06-01 18:59  KM\MY KM\MY KM\Cluster.cs
     文件        3317  2018-06-01 18:59  KM\MY KM\MY KM\CoordinateSystem.cs
     文件        9736  2018-06-02 10:31  KM\MY KM\MY KM\FormK.Designer.cs
     文件       10139  2018-06-02 10:30  KM\MY KM\MY KM\FormK.cs
     文件        5814  2018-06-02 10:30  KM\MY KM\MY KM\FormK.resx
     文件        4289  2018-06-02 00:17  KM\MY KM\MY KM\MY KM.csproj
     文件       10080  2018-06-02 11:10  KM\MY KM\MY KM\Paint.cs
     文件         497  2018-05-26 23:27  KM\MY KM\MY KM\Program.cs
     目录           0  2018-05-29 22:29  KM\MY KM\MY KM\Properties\
     文件        1422  2018-05-26 23:24  KM\MY KM\MY KM\Properties\AssemblyInfo.cs
     文件        2839  2018-05-26 23:24  KM\MY KM\MY KM\Properties\Resources.Designer.cs
     文件        5612  2018-05-26 23:24  KM\MY KM\MY KM\Properties\Resources.resx
     文件        1090  2018-05-26 23:24  KM\MY KM\MY KM\Properties\Settings.Designer.cs
     文件         249  2018-05-26 23:24  KM\MY KM\MY KM\Properties\Settings.settings
     文件        4940  2018-06-02 10:30  KM\MY KM\MY KM\Randompoint.Designer.cs
     文件         633  2018-06-02 10:30  KM\MY KM\MY KM\Randompoint.cs
     文件        5814  2018-06-02 10:30  KM\MY KM\MY KM\Randompoint.resx
     文件         692  2018-06-01 18:59  KM\MY KM\MY KM\Sample.cs
     目录           0  2018-06-01 23:19  KM\MY KM\MY KM\bin\
     目录           0  2018-05-29 23:23  KM\MY KM\MY KM\bin\Debug\
     文件       22016  2018-06-02 11:10  KM\MY KM\MY KM\bin\Debug\MY KM.exe
     文件       54784  2018-06-02 11:10  KM\MY KM\MY KM\bin\Debug\MY KM.pdb
     文件       14328  2018-05-30 00:05  KM\MY KM\MY KM\bin\Debug\MY KM.vshost.exe
     文件         490  2018-05-21 00:47  KM\MY KM\MY KM\bin\Debug\MY KM.vshost.exe.manifest
     目录           0  2018-05-29 22:29  KM\MY KM\MY KM\obj\
     目录           0  2018-06-02 11:10  KM\MY KM\MY KM\obj\Debug\
     文件         599  2018-06-02 10:30  KM\MY KM\MY KM\obj\Debug\MY KM.csproj.FileListAbsolute.txt
............此处省略10个文件信息

评论

共有 条评论