Pythonで平均シフトアルゴリズムを実装する
このアルゴリズムでは、仮定は行われません。これは、それがノンパラメトリックアルゴリズムであることを意味します。このアルゴリズムは、データポイントを特定のクラスターに繰り返し割り当てます。これは、これらのデータポイントを最高密度のデータポイントにシフトすることによって行われます。
この高密度のデータポイントは、クラスターの重心として知られています。平均シフトアルゴリズムとK-meansクラスタリングの違いは、前者(K-means)では、クラスターの数を事前に指定する必要があることです。
これは、クラスターの数が、存在するデータに基づくアルゴリズムを意味するKの助けを借りて検出されるためです。
平均シフトアルゴリズムの手順を理解しましょう-
-
データポイントは、独自のクラスターに割り当てられます。
-
次に、これらのクラスターの重心が決定されます。
-
これらの図心の位置は繰り返し更新されます。
-
次に、プロセスは高密度領域に移動します。
-
重心がそれ以上移動できない位置に到達すると、プロセスは停止します。
scikit-learn-
を使用して、Pythonで実装する方法を理解しましょう。例
import numpy as np from sklearn.cluster import MeanShift import matplotlib.pyplot as plt from matplotlib import style style.use("ggplot") from sklearn.datasets.samples_generator import make_blobs centers = [[3,3,1],[4,5,5],[11,10,10]] X, _ = make_blobs(n_samples = 950, centers = centers, cluster_std = 0.89) plt.title("Implementation of Mean-Shift algorithm") plt.xlabel("X-axis") plt.ylabel("Y-axis") plt.scatter(X[:,0],X[:,1]) plt.show() ms = MeanShift() ms.fit(X) labels = ms.labels_ clusterCent = ms.cluster_centers_ print(clusterCent) numCluster = len(np.unique(labels)) print("Estimated clusters:", numCluster) colors = 10*['r.','g.','b.','c.','k.','y.','m.'] for i in range(len(X)): plt.plot(X[i][0], X[i][1], colors[labels[i]], markersize = 3) plt.scatter(clusterCent[:,0],clusterCent[:,1], marker=".",color='k', s=20, linewidths = 5, zorder=10) plt.show()
出力
[[ 3.05250924 3.03734994 1.06159541] [ 3.92913017 4.99956874 4.86668482] [10.99127523 10.02361122 10.00084718]] Estimated clusters: 3
説明
-
必要なパッケージがインポートされ、使いやすさのためにそのエイリアスが定義されています。
-
「ggplot」は、「style」クラスに存在する「use」関数に指定されます。
-
「make_blobs」関数は、データのクラスターを作成するために使用されます。
-
set_xlabel、set_ylabel、およびset_title関数は、「X」軸、「Y」軸、およびタイトルのラベルを提供するために使用されます。
-
「MeanShift」関数が呼び出され、変数に割り当てられます。
-
データはモデルに適合しています。
-
ラベルとクラスターの数が定義されています。
-
このデータがプロットされ、モデルに適合したデータの散布図も表示されます。
-
「表示」機能を使用してコンソールに表示されます。
-
Pythonでの統計的思考
統計は、mlとAIを学ぶための基本です。 Pythonはこれらのテクノロジーに最適な言語であるため、統計分析を組み込んだPythonプログラムの作成方法を説明します。この記事では、さまざまなPythonモジュールを使用してグラフやチャートを作成する方法を説明します。このさまざまなグラフは、データをすばやく分析し、内部を導き出すのに役立ちます。 データの準備 さまざまなシードに関するデータを含むデータセットを取得します。このデータセットは、以下のプログラムに示されているリンクのkaggleで入手できます。さまざまなシードの特徴を比較するためのさまざまなタイプのチャートを作成するために使用される
-
Pythonで国勢調査データを分析する
国勢調査とは、特定の人口に関する情報を体系的に記録することです。キャプチャされたデータには、人口統計、経済、居住の詳細など、さまざまなカテゴリの情報が含まれます。これは、最終的に政府が現在のシナリオと将来の計画を理解するのに役立ちます。この記事では、Pythonを活用してインドの人口の人口調査データを分析する方法を説明します。さまざまな人口統計学的および経済的側面を見ていきます。次に、分析をグラフィカルに投影する電荷をプロットします。 kaggleから収集されたソース。ここにあります。 データの整理 以下のプログラムでは、最初に短いPythonプログラムを使用してデータを取得します。さらに分