機械学習クラスタリングアルゴリズムのK平均

1はじめに

         クラスタリングと呼ばれる、これは典型的な監視されていない機械学習アルゴリズムです。簡単に言えば、類似点を積み重ねることです。ここでの焦点は、機能とラベルの関係ではなく、サンプルとサンプルの関係です。

2.K-クラスタリングを意味します

         K-meansは、その単純さと優れた結果のために、すべてのクラスタリングアルゴリズムの中で最も一般的に使用されるアルゴリズムです。簡単な2つの言葉を聞いて少し興奮しますか?学習がフードチェーンでもある場合、これらの捕らえやすい獲物は、初心者の自信のためのエネルギーの水にすぎません。それでは、一緒にそれを軽蔑し、それを破壊しましょう!

         Kは、最終的に分割したいクラスターの数であり、人々が言うのは、データを分割したいヒープの数です。プロセスは次のとおりです。一連のデータで、最初にK個のクラスター中心をランダムに初期化し、クラスター中心に最も近いという原則に従って、すべてのポイントをK個のクラスターに分割します。各クラスターの最も中心的な位置をクラスターの中心として選択し、すべてのポイントが属するクラスターが変更されなくなるまで、クラスターの中心に最も近いという原則に従ってクラスターを再クラスター化します。

 3.重要な問題

     1.Kの選択

                  上記の説明を通して、質問があります。いわゆるK-meansのKの数はどのように選択する必要がありますか?多くのなじみのないデータはすでに非常に大きいのですが、それをいくつの山に分割する必要があるかをどうやって知ることができますか?申し訳ありませんが、この問題に対する完全な解決策はありません。実行可能な解決策は、上司を満足させることができるいくつかを試してみることです。それで問題ありません。

      2.クラスターセンターを初期化します

                    クラスタセンターを初期化するには、一般的にいくつかの方法があります。

                     1.ランダム初期化、Kポイントのランダム初期化を直接かつ意図的に行い、データ量がそれほど多くない場合は何も表示されません。                           

                     2.ルーレット方式はクラスター中心を選択します。名前が示すように、ルーレット方式はデータからクラスター中心をランダムに選択します。既存のクラスター中心から遠い点が選択される可能性が高くなります。次のコードは、最初にすべてのポイントからクラスターの中心までの距離の合計を計算し、次にそれを[0,1]の間のランダムな数値で乗算して、ポイントからクラスターの中心までの距離の合計を減らすルーレットメソッドを実装します。次に、この合計を使用して、各ポイントからクラスターの中心までの距離を差し引きます。上記のランダムな削減と、データ内の最大距離の分布が不確実であるため、既存のクラスターの中心から離れるほど、選択される可能性が高くなることがわかります。下の写真はこのブログからのものです           

                                             

def kpp_centers(data_set, k) :
    """
    从数据集中返回 k 个对象可作为质心
    """
    cluster_centers = []
    cluster_centers.append(random.choice(data_set))
    d = [0 for _ in range(len(data_set))]
    for _ in range(1, k):
        total = 0.0
        for i, point in enumerate(data_set):
            d[i] = get_closest_dist(point, cluster_centers) # 与最近一个聚类中心的距离
            total += d[i]
        total *= random.random()
        for i, di in enumerate(d): # 轮盘法选出下一个聚类中心;
            total -= di
            if total > 0:
                continue
            cluster_centers.append(data_set[i])
            break
    return cluster_centers

 

                            3.距離の計算

                                一般に、ユークリッド距離を使用して2点間の距離を示します。コサイン距離で表すこともできます。ユークリッド距離はポイント間の実際の距離に関係し、コサイン距離は2ポイント間の方向の違いに関係します

 

4.まとめ

             この記事では、K-meansクラスタリングアルゴリズムを紹介しました。その動作原理は、クラスターが変化しなくなるまで、ポイントからクラスター中心までの距離に応じてクラスター中心を継続的に再クラスター化し、調整することです。このようにして、クラスター間の距離が最小化され、クラスター間の距離が最大化されます。そして、クラスターセンターを選択する2つの方法、ランダム法とルーレット法を導入しました。そして、距離を計算する2つの方法と、それらの違い。

              Lu Feiは、あなたが生きている限り、何か美しいことが起こるだろうと言いました。自分に起こるすべてのことは自分自身に起こるべきであり、余分なことは1つでもないと信じてください。よく考えてみると、過去の過ちを心配することも、短期的な栄光を誇りにすることもありません。世界に落胆しないでください、そして世界にあなたを説得しないでください!昨日は何かのせいで頭がおかしくなったのですが、一人で何十分も頭がおかしいと自分に言い聞かせました!時間切れになったら、仕事に行き、合理性を取り戻します。このように、泥棒が不快で孤独なとき、私は彼らを心に留めません。

        

おすすめ

転載: blog.csdn.net/gaobing1993/article/details/108451444