Menu
CoddyTech

fit 方法

Coddy 机器学习入门 课程的第 10 课,共 19 课。

 

来源:维基百科

challenge icon

挑战

困难

实现 fit 方法和 find_cluster_centroid。find_cluster_centroid 用于计算给定点列表(簇)的质心。如何计算质心的说明在上一课中。实现 fit 时,请按照以下说明操作:

  1. 初始化质心:首先,从数据集中选择 k 个点作为初始质心。要通过测试用例,请选择第 3、5、7、9……个点作为初始质心(具体取决于 k 的值)
  2. 分配簇:对于数据集中的每个点,找到距离最近的质心(使用欧几里得距离等距离度量),并将该点分配到对应的簇。
  3. 更新质心:将所有点分配到簇后,计算每个簇中所有点的平均值,以重新计算质心。
  4. 重复步骤 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 在线编译器