资源简介
使用python实现kmeans 算法,注释详尽。与sklearn中的kmeans算法的结果进行比较。
代码片段和文件信息
import numpy as np
import random
from matplotlib import pyplot as plt
from matplotlib import image as mpimg
from sklearn.cluster import KMeans
%matplotlib inline
def handleData(imageN):
# 归一化
if filename[-4:]==‘.jpg‘:
image=image/256
elif filename[-4:]==‘.png‘:
image=image[::0:3]
data=image.reshape((N3))
return data
# 计算欧式距离
def calDis(ab):
return np.sum(np.power(a-b2))
# return np.sum(np.fabs(a-b))
# 初始化聚类中心向量
def initCenter(dataKseed=None):
if seed!=None:
random.seed(seed)
m = np.shape(data)[1]
center = np.mat(np.zeros((K m)))
for col in range(m):
min_col = min(data[: col])
max_col = max(data[: col])
center[: col] = min_col + float((max_col-min_col)) * np.random.rand(K 1)
return center
# return random.sample(list(data)K)
def myKMeans(dataKseed=None):
# parameters check
if K<=0:
raise ValueError(“Invalid number of initializations: K must be bigger than 0“)
if data.ndim!=2:
raise ValueError(“Invalid number of initializations: data‘s dimention must be 2“)
if data.shape[0]<=0 or data.shape[1]<=0:
raise ValueError(“Invalid number of initializations: data can not be empty“)
N=data.shape[0]
#labels存储每个像素点对应的聚类中心向量
labels=np.zeros(N)
#centers存储聚类中心向量值
centers=initCenter(dataKseed)
print(centers)
#损失函数值
J=np.Inf
dis_sum=0
is_continue=True
while is_continue:
dis_sum=0
is_continue=False
# 计算各个像素点距离哪个聚类中心最近
for i in range(N):
min_dis=np.Inf
min_center=-1
for j in range(K):
- 上一篇:Python淘宝评论爬取
- 下一篇:Python实现PCA
相关资源
- Python实现PCA
- Python淘宝评论爬取
- py新浪微博爬虫通过修改最后的uid值即
- python基础教程第三版源代码
- PCV---python工具包.zip
- 去停用词、测试数据
- 高效爬取微博数据python3实现
- 基于vggnet卷积神经网络的图像风格迁
- pyton 实现学生信息管理系统
- 数字图像处理Python制作简易软件系统
- Python爬取b站视频弹幕并可视化案例
- python实现类似于QQ或MSN的聊天系统
- sm4国密算法python实现
- python面试题100道
- python_docx-0.8.10-py2.py3-none-any.whl
- python3.4中文学习手册chm
- python 2.7中文手册chm版
- 产生式系统包含动物识别规则库,手
- 数据挖掘教学视频实战超详细加pyth
- python实现KNN手写字体识别Demo
- python q-learning
- python3网络爬虫与开发实战崔庆才PDF百
- python语言实现通过树莓派Pi camera的图
- 扫雷 python
- python习题
- ngramScore适应度计算文件(包含引入的
- 爱鲜蜂项目源码
- python300G视频书籍教程.zip
- Python点餐案例
- apriori python 3
评论
共有 条评论