《机器学习(周志华)》 习题9.4参考答案

本文介绍了在实现K均值算法过程中发现书本示例的错误,并通过编程不仅纠正了错误,还利用matplotlib.animation模块创建了聚类过程的动态图。展示了如何对50个随机点进行4类聚类的动态效果。
摘要由CSDN通过智能技术生成

实现K均值算法。。。

书上的例子是错的!那个数据集,用书上选的那几个初始点,则一开始就是收敛的。

实现时,顺便学了matplotlib.animation,可以把聚类过程用动态图显示出来。

代码如下:

# coding: utf-8
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt
import matplotlib.animation as animation 
import random
import itertools


def rand_RGB():
	return np.random.random(3)


def cal_dis(x, y):
	return np.linalg.norm(x-y)
	# return sum(np.abs(x-y))


def Kmeans(nb_cluster, points):
	nb_sample = len(points)
	init_points_id = random.choice(list(itertools.combinations(range(nb_sample), nb_cluster)))
	centers = points[init_points_id, :]
	colors = [rand_RGB() for i in range(nb_cluster)]
	# colors = ['r', 'g', 'b']
	imgs = []
	max_iter = 100
	for _ i
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值