Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで平均シフトアルゴリズムを実装する


機械学習には多くの種類のクラスタリングアルゴリズムがあります。これらのアルゴリズムはPythonで実装できます。この記事では、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()

出力

Pythonで平均シフトアルゴリズムを実装する

[[ 3.05250924 3.03734994 1.06159541]
[ 3.92913017 4.99956874 4.86668482]
[10.99127523 10.02361122 10.00084718]]
Estimated clusters: 3

Pythonで平均シフトアルゴリズムを実装する

説明

  • 必要なパッケージがインポートされ、使いやすさのためにそのエイリアスが定義されています。

  • 「ggplot」は、「style」クラスに存在する「use」関数に指定されます。

  • 「make_blobs」関数は、データのクラスターを作成するために使用されます。

  • set_xlabel、set_ylabel、およびset_title関数は、「X」軸、「Y」軸、およびタイトルのラベルを提供するために使用されます。

  • 「MeanShift」関数が呼び出され、変数に割り当てられます。

  • データはモデルに適合しています。

  • ラベルとクラスターの数が定義されています。

  • このデータがプロットされ、モデルに適合したデータの散布図も表示されます。

  • 「表示」機能を使用してコンソールに表示されます。


  1. Pythonでの統計的思考

    統計は、mlとAIを学ぶための基本です。 Pythonはこれらのテクノロジーに最適な言語であるため、統計分析を組み込んだPythonプログラムの作成方法を説明します。この記事では、さまざまなPythonモジュールを使用してグラフやチャートを作成する方法を説明します。このさまざまなグラフは、データをすばやく分析し、内部を導き出すのに役立ちます。 データの準備 さまざまなシードに関するデータを含むデータセットを取得します。このデータセットは、以下のプログラムに示されているリンクのkaggleで入手できます。さまざまなシードの特徴を比較するためのさまざまなタイプのチャートを作成するために使用される

  2. Pythonで国勢調査データを分析する

    国勢調査とは、特定の人口に関する情報を体系的に記録することです。キャプチャされたデータには、人口統計、経済、居住の詳細など、さまざまなカテゴリの情報が含まれます。これは、最終的に政府が現在のシナリオと将来の計画を理解するのに役立ちます。この記事では、Pythonを活用してインドの人口の人口調査データを分析する方法を説明します。さまざまな人口統計学的および経済的側面を見ていきます。次に、分析をグラフィカルに投影する電荷をプロットします。 kaggleから収集されたソース。ここにあります。 データの整理 以下のプログラムでは、最初に短いPythonプログラムを使用してデータを取得します。さらに分