[C#]K均值聚类

这是一个使用C#编写的K均值聚类算法实现,包括初始化中心、聚类过程、判断收敛等步骤。通过计算向量的Cos距离进行相似性比较,并未进行优化。
摘要由CSDN通过智能技术生成

写完了怕丢了,放在这里。不过写的不是很好,没有进行过优化~~

 

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

 

namespace Similarity

{

    class myClusterFun

    {

        public static int[][] CluEntran(int[][] HashArr, int NumberOfCenter)//聚类的函数的入口

        {

            //程序的初始化及参数的设定

            int LoopTimesThres = 300;//设置最大的循环次数

            int LoopTimes = 0;//循环次数

            int JudgeConverg = 1;//记录是否收敛

            int NumberOfDoc = HashArr.Length;//待比较的对象的数量

            int AveCenterGap=0;

            int LastAveCenterGap = 0;

            int ConverCount = 0;

            ArrayList ClusterResult = new ArrayList();//存储每次聚类结果

            ArrayList NewCenter = new ArrayList();//存储每次聚类的新中心

            ArrayList CenterGap = new ArrayList();//存储每次聚类中心的偏差

            int[][] SingleClusterResult = new int[NumberOfCenter][];//暂存每次聚类的结果

            int[][] SingleNewCenter = new int[NumberOfCenter][];//暂存每次聚类后形成的新的中心

            int[][] SingleLastCenter = new int[NumberOfCenter][];//暂存每次聚类后形成的新的中心

            int[] SingleCenterGap = new int[NumberOfCenter];//暂存每次聚类后中心的偏差情况

            //初始化:确定初始中心

            for (int i = 0; i < NumberOfCenter; i++)

            {

                SingleLastCenter[i] = new int[HashArr[0].Length];

                SingleNewCenter[i] = new int[HashArr[0].Length];

            }

            int[] TempRec = new int[NumberOfCenter];

            TempRec=InitialFunc(NumberOfCenter, NumberOfDoc);

            for (int i = 0; i < NumberOfCenter; i++)

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值