当前位置: 首页 > news >正文

网站建设 杭州市萧山区免费网站排名优化软件

网站建设 杭州市萧山区,免费网站排名优化软件,php 网站缩略图,重新装wordpressK-Means算法是将一组N个样本的特征矩阵X划分为K个无交集的簇,直观上来看是簇是一组一组聚集在一起的数据,在一个簇中的数据就认为是同一类。簇就是聚类的结果表现。簇中所有数据的均值通常被称为这个簇的“质心”(Centroids)。在一个二维平面中&#xff…

K-Means算法是将一组N个样本的特征矩阵X划分为K个无交集的簇,直观上来看是簇是一组一组聚集在一起的数据,在一个簇中的数据就认为是同一类。簇就是聚类的结果表现。

簇中所有数据的均值通常被称为这个簇的“质心”(Centroids)。在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。同理可推广至高维空间。

算法实现:

一、随机取n个点,即想要分类数目

二、将当前数据每个点都与取到的n个点进行作差,将差值最小的分为一类

三、将分好类的结果取出计算均值,取出每个类中和均值距离最小的值,将其做为新的中心点

四、重复上述步骤,直到最终分成的簇内结果不再发生变化(在当前的算法里,我们连续验证三次,即在三次内,结果不再发生变化,迭代就会停止)

#k均值计算

import numpy as np

import pandas as pd

import random

import math

def data():

rand_value = [random.randint(1,10000) for i in range(10000)]

# print(rand_value)

# rand_value = [63, 23, 93, 52, 33, 84, 34, 91, 52, 68, 64, 4, 3, 58, 37, 76, 75, 52, 49, 34, 91, 29, 67, 42, 97, 69, 99, 9, 15,

# 44, 12, 46, 86, 92, 10, 67, 46, 93, 49, 29, 93, 95, 60, 33, 30, 63, 24, 45, 26, 47, 12, 62, 50, 54, 13, 62, 40, 39,

# 32, 2, 92, 34, 20, 72, 68, 37, 88, 32, 84, 28, 88, 85, 5, 88, 56, 30, 5, 3, 43, 9, 13, 62, 44, 11, 90, 97, 80, 34,

# 12, 90, 56, 54, 87, 59, 20, 51, 58, 54, 29, 32]

return rand_value

#进行计算,并返回质心及详细信息

def k_mean(data_list,k,rand_choice):

# rand_choice = [random.choice(data_list) for i in range(k)]

temp_dict = {}

for i in range(len(data_list)):

temp_list = []

for j in range(len(rand_choice)):

#解决符号差异带来的影响

temp_list.append(abs(abs(data_list[i]) - abs(rand_choice[j])))

insert_index = temp_list.index(min(temp_list))

if temp_dict.get(rand_choice[insert_index]):

temp_dict[rand_choice[insert_index]].append(data_list[i])

else:

temp_dict[rand_choice[insert_index]] = [data_list[i]]

return temp_dict

#输出距离均值最近的点,返回新的质心及中心点

def min_distince(data_dict):

k_list = []

k_keys = list(data_dict.keys())

for j in range(len(k_keys)):

data_list = data_dict[k_keys[j]]

mean_value = sum(data_list)/len(data_list)

for i in range(len(data_list)):

if i == 0:

distance_value = abs(data_list[i] - mean_value)

s = 0

# distance_list.append(distance_value)

else:

if distance_value > abs(data_list[i] - mean_value):

s = i

distance_value = min(distance_value,abs(data_list[i] - mean_value))

k_list.append(data_list[s])

# distance_list.append(distance_value)

return k_list

def iteration(source_data,k):

iter_num = 0

end_list = []

if len(source_data) < k:

print('需要计算的数据量少于要分类的数据量,请检查数据源\n')

else:

while True:

iter_num += 1

print('迭代次数%d'%iter_num)

if iter_num == 1:

data_dict = k_mean(source_data,k,[random.choice(source_data) for i in range(k)])

end_list.append(data_dict)

# print(data_dict)

result = min_distince(data_dict)

# result = min_distince(k_mean(source_data,k,[random.choice(source_data) for i in range(k)]))

else:

data_dict = k_mean(source_data,k,result)

end_list.append(data_dict)

# print(data_dict)

result = min_distince(data_dict)

if len(end_list) == 4:

del end_list[0]

if end_list[0] == end_list[1] and end_list[1] == end_list[2]:

print(data_dict)

break

if __name__ == '__main__':

source_data = data()

iteration(source_data,5)

http://www.shuangfujiaoyu.com/news/24085.html

相关文章:

  • 网站seo的主要优化内容做个小程序需要花多少钱
  • 武汉企业高端网站建设搜索引擎关键词优化有哪些技巧
  • 应用商店app下载安装最新版软件seo优化排名价格
  • 源码网站git百度开户联系方式
  • 本地电脑如何做网站服务器优秀的营销案例
  • 网站建设市场多大项目推广平台有哪些
  • 哪个网站可以做初一政治试卷sem搜索引擎营销
  • 商城开发网站河南网络推广公司
  • 广州营销型网站建设公司哪家靠谱北京网站制作
  • 站酷网站的比赛网页谁做的如何免费注册一个网站
  • 自己公司做网站商丘网站建设公司
  • wordpress国内访问不了百度产品优化排名软件
  • 东莞阳光网appseo推广公司招商
  • 网站建设及相关流程seo上首页排名
  • 东莞网站建设aj工作室关键词首页排名代做
  • 网站后台维护技能seo搜论坛
  • win2003服务器网站管理工具疫情防控最新通告
  • 人武部正规化建设优化网站链接的方法
  • 网站建设的感想app排名优化
  • 手机网站范例今日重大事件
  • 政府网站建设的亮点和特色对网络营销的理解
  • wordpress博客简洁主题南昌seo排名收费
  • 河南郑州建网站公司怎样推广自己的广告
  • 成全视频免费观看在线看电视剧郑州百度快照优化排名
  • 做外贸的经常浏览的三个网站抚顺优化seo
  • 现在做外贸前景如何win7优化大师免安装版
  • google网站地图seo技术交流论坛
  • 与建设部网站北京网站优化技术
  • 杭州住房建设部官方网站衡阳百度推广公司
  • 沈阳哪家网站制作公司比较好网站建设与网页设计制作