このページは、nAGライブラリのJupyterノートブックExampleの日本語翻訳版です。オリジナルのノートブックはインタラクティブに操作することができます。
nAG Library for Pythonを使用してK-meansによるランダムデータのクラスタリングを行う
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from naginterfaces.library import mv
# Jupyter の表示バックエンドを選択:
%matplotlib inline
= 100
number_of_points
# ランダムな配列を生成してクラスタリングを試み、プロットできるように2つの変数を用意する
42) # For reproducibility
np.random.seed(
# デモンストレーションを容易にするために、明示的に2つのきれいに分離されたクラスターを構築します
= [-2, -2]
mean1 = [[1, 0], [0, 1]]
cov1 = np.random.multivariate_normal(mean1, cov1, number_of_points)
X1
= [2, 2]
mean2 = [[1, 0], [0, 1]]
cov2 = np.random.multivariate_normal(mean2, cov2, number_of_points)
X2
# 2つを結合して単一の点の集合を作成する
= np.concatenate((X1, X2))
X
# 組み合わせたデータセットをプロットする
= plt.plot(X[:,0], X[:,1], 'x') _
= 2 # Number of clusters
nvar = np.random.rand(2, nvar) # Initial starting guesses for the centres
cmeans = np.full(2, 1.0, dtype=int) # We want to include both x and y features in the clustering
isx = mv.cluster_kmeans(X, isx, cmeans) # Find the cluster centres kmeans
= ['orange', 'blue']
colours 0], X[:,1], marker='x', c=kmeans.inc, cmap=matplotlib.colors.ListedColormap(colours))
plt.scatter(X[:,= plt.scatter(kmeans.cmeans[:,0], kmeans.cmeans[:,1], color='red', s=200) _