本章因为课后题大部分都是证明和解答题,所以不再详细叙述,只是针对 9.4 题给出相关算法的实现。
关于证明和简答题可以参考这篇博客: https://blog.csdn.net/icefire_tyh/article/details/52224676
9.4 k均值聚类实现,并在不同k值和初始向量情况下进行比较。
算法完全按照图 9.2 给出的过程进行,数据集采用西瓜数据集4.0.
相关代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
class Cluster:
def loadData(self): # 读入数据
dataset = pd.read_excel('./WaterMelon_4.0.xlsx',encoding = 'gbk') # 读取数据
Attributes = dataset.columns # 所有属性的名称
m,n = np.shape(dataset) # 得到数据集大小
dataset = np.matrix(dataset)
for i in range(m): # 将标签替换成 好瓜 1 和 坏瓜 -1
if dataset[i,n-1]=='是': dataset[i,n-1] = 1
else : dataset[i,n-1] = -1