fit 方法
Coddy 机器学习入门 课程的第 10 课,共 19 课。
挑战
困难实现 fit 方法和 find_cluster_centroid。find_cluster_centroid 用于计算给定点列表(簇)的质心。如何计算质心的说明在上一课中。实现 fit 时,请按照以下说明操作:
- 初始化质心:首先,从数据集中选择
k个点作为初始质心。要通过测试用例,请选择第 3、5、7、9……个点作为初始质心(具体取决于k的值) - 分配簇:对于数据集中的每个点,找到距离最近的质心(使用欧几里得距离等距离度量),并将该点分配到对应的簇。
- 更新质心:将所有点分配到簇后,计算每个簇中所有点的平均值,以重新计算质心。
- 重复步骤 2 和 3:重复上述步骤,直到质心不再发生明显变化。如果新质心与上一个质心之间的距离小于
0.01,则停止
通过测试用例的方法:
- 将质心保存在
self.centroids变量中。 - 找到新质心后,如果新质心与上一个质心之间的总距离小于
0.01,则保留上一个质心。 - 质心的顺序很重要。始终从头到尾遍历质心。
- 测试用例会输出
self.centroids,并验证其是否正确。
亲手试试
def euclidian_distance(point_a, point_b):
return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5
class KMeans:
def __init__(self, k):
self.k = k
def find_cluster_centroid(self, cluster_points):
# 在这里编写你的代码
def fit(self, X_train):
# 在这里编写你的代码
self.centroids = ...
def predict(self, X_test):
pass机器学习入门中的所有课
自己练习: Python 在线编译器
