コード例 #1
0
def kkmeans():
    # 20孩子,每个孩子10天数据
    raw_data = '[[1, 8, 20, 19, 4, 8, 3, 0, 0, 1], [18, 18, 1, 19, 4, 13, 6, 19, 4, 1], [4, 7, 10, 3, 6, 4, 10, 20, 11, 10], [12, 5, 4, 14, 7, 10, 16, 2, 9, 17], [7, 19, 14, 17, 11, 15, 19, 6, 8, 6], [17, 7, 3, 5, 7, 20, 1, 16, 13, 3], [19, 11, 10, 0, 17, 2, 14, 15, 5, 6], [4, 14, 18, 9, 19, 19, 1, 18, 20, 7], [20, 15, 8, 3, 12, 1, 12, 6, 0, 10], [18, 16, 17, 6, 0, 9, 9, 11, 2, 8], [2, 2, 9, 3, 19, 18, 1, 16, 9, 20], [15, 15, 13, 19, 11, 7, 20, 8, 14, 6], [1, 20, 1, 17, 4, 3, 13, 4, 2, 18], [0, 16, 18, 20, 16, 14, 8, 20, 5, 14], [11, 1, 7, 17, 17, 11, 10, 14, 6, 16], [8, 12, 15, 8, 5, 18, 19, 1, 13, 4], [17, 20, 13, 9, 11, 0, 16, 8, 16, 15], [3, 2, 12, 8, 8, 5, 7, 8, 20, 3], [20, 2, 2, 13, 4, 20, 0, 4, 14, 11], [20, 3, 12, 9, 14, 18, 17, 7, 5, 7]]'
    data = eval(raw_data)

    kmeans = Kmeans(data, 3)
    kmeans.get_k_rand()
    kmeans.compare_to_k()
    kmeans.get_k_avarage()
    cl = kmeans.compare_to_k2()

    while True:
        if len(cl[0]["data"]["rows"]) < 4 or len(
                cl[1]["data"]["rows"]) < 4 or len(cl[2]["data"]["rows"]) < 4:
            kmeans = Kmeans(data, 3)
            kmeans.get_k_rand()
            kmeans.compare_to_k()
            kmeans.get_k_avarage()
            cl = kmeans.compare_to_k2()

    data1 = kmeans_helper(cl[0])
    data2 = kmeans_helper(cl[1])
    data3 = kmeans_helper(cl[2])

    data_all = kmeans_helper(cl[0] + cl[1] + cl[2])

    pprint.pprint(data1)
    pprint.pprint(data2)
    pprint.pprint(data3)
    pprint.pprint(data_all)