正在加载图片...
数据挖掘论文 List<int> randomList new List<int>o for (int i =0:i< k: i++) //生成一个随机数 int random ccy Next(OrgionListStaff Count -1) /当随机数集合中已经存在这个随机数的时候从新筛选,以免重复选择中心点 while (randomList Contains (random)) andom ccy Next(OrgionListStaff Count- 1) randomList. Add (random) Staff aStaff OrgionListStaff[random //属于第几簇 OrgionListStaff[random]. Cluster =i /当前为中心点 OrgionListStaff[random]. Flag =1 Staff. Add(aStaff) Changedliststaff Orgionliststaff return Staff ///指派每个剩余的对象给离它最近的中心点所代表的簇 7//</summary> //< param name="k">分成k簇</ param> // < param name="ChangedListStaff">**</param> //< param name=" CentainPoint">中心点集合</ param> 7//<returns>/returns> public List<Staff>SetClusterList(int k, List<Staff> ChangedListStaff List<Staff> CentainPoint) /得到数据的个数 int count ChangedListstaff Count //指派每个剩余的对象给离它最近的中心点所代表的簇 for (int i List<double> tempPointDistance new List<double>o //如果不是中心点(F1ag代表是否为中心点,1为中心点) if ( ChangedListStaff[i]. Flag. Equals(1)) //计算剩余的点到每个中心点的距离,然后分到距离最小的那一簇里面 for (int j=0:j< k; j++) double tempAge Math Pow(ChangedList Staff[i]. Age Value数据挖掘论文 13 List<int> randomList = new List<int>(); for (int i = 0; i < k; i++) { //生成一个随机数 int random = ccy.Next(OrgionListStaff.Count - 1); //当随机数集合中已经存在这个随机数的时候从新筛选,以免重复选择中心点 while (randomList.Contains(random)) { random = ccy.Next(OrgionListStaff.Count - 1); } randomList.Add(random); Staff aStaff = OrgionListStaff[random]; //属于第几簇 OrgionListStaff[random].Cluster = i; //当前为中心点 OrgionListStaff[random].Flag = 1; _Staff.Add(aStaff); } ChangedListStaff = OrgionListStaff; return _Staff; } /// <summary> /// 指派每个剩余的对象给离它最近的中心点所代表的簇 /// </summary> /// <param name="k">分成k簇</param> /// <param name="ChangedListStaff">数据</param> /// <param name="CentainPoint">中心点集合</param> /// <returns></returns> public List<Staff> SetClusterList(int k, List<Staff> ChangedListStaff, List<Staff> CentainPoint) { //得到数据的个数 int count = ChangedListStaff.Count; //指派每个剩余的对象给离它最近的中心点所代表的簇 for (int i = 0; i < count; i++) { List<double> tempPointDistance = new List<double>(); //如果不是中心点(Flag代表是否为中心点,1为中心点) if (!ChangedListStaff[i].Flag.Equals(1)) { //计算剩余的点到每个中心点的距离,然后分到距离最小的那一簇里面 for (int j = 0; j < k; j++) { double tempAge = Math.Pow(ChangedListStaff[i].Age.Value -
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有