理论
k-means方法是一种常用的聚类方法,其目标是最小化
其中是第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