周志华《机器学习》Ch9. 聚类:k-means算法的python实现

理论

k-means方法是一种常用的聚类方法,其目标是最小化

\sum\limits_{i=1}^k\sum_{j=1}^{m_i}||x_{ij}-\mu_i||

其中\mu_i是第i个簇的中心。直接优化上式有难度,故k-means算法采用一种近似方法。

简单来说,k-means算法由两个步骤循环组成:

1. 计算每个sample到各个簇中心的距离,将该sample的类标赋为距离最近的簇的类标;

2. 按照sample的类标重新计算各个簇中心

k-means算法有两个输入参数需要用户指定,一个是簇的个数,另一个是循环次数

代码

# -*- coding: utf-8 -*-
"""
k-means algorithm
From 'Machine Learning, Zhihua Zhou' Ch9
Model: k-means clustering algorithm
Dataset: P202 watermelon_4.0 (watermelon_4.0.npy)

@author: weiyx15
"""

import numpy as np
import matplotlib.pyplot as plt

class kMeans:
    def load_data(sel
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
课程设计题目:基于K-Means算法的图像分割实现 一、课程设计背景 图像分割是计算机视觉领域的一个重要研究方向,其主要目的是将一幅图像分成若干个不同的部分,每一部分都具有一定的语义意义。其中K-Means算法是一种常用的图像分割算法,它通过对图像像素点聚类实现对图像的分割。 二、课程设计目标 本课程设计旨在帮助学生深入理解K-Means算法的原理和应用,并通过实践掌握如何基于K-Means算法实现图像分割。 三、课程设计内容 1. K-Means算法原理介绍 - K-Means算法基本原理 - K-Means算法流程图 - K-Means算法优缺点分析 2. 图像分割基础知识 - 图像分割概念解析 - 基于阈值的图像分割方法 3. 基于K-Means算法的图像分割实现 - 图像数据读取 - K-Means算法实现 - 图像分割结果展示 4. 实验设计与实验结果分析 - 实验设计与实现 - 实验结果分析与总结 四、课程设计要求 1. 学生应具备一定的Python编程基础; 2. 学生需要自备一台电脑,并安装好Python环境; 3. 学生需要自行查找相关文献和资料,进行学习和实践; 4. 学生需要按时提交课程设计报告和程序代码。 五、参考文献 1. 周志华. 机器学习[M]. 清华大学出版社, 2016. 2. 李航. 统计学习方法[M]. 清华大学出版社, 2012. 3. 董辉, 李旭峰. 基于K-Means算法的图像分割[J]. 计算机工程与应用, 2017, 53(14): 138-143. 4. 郭大为, 董昆. 基于K-Means算法的图像分割研究[J]. 北京信息科技大学学报, 2017, 32(5): 1-5.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值