クラスタリングを用いた前処理の方法の一例として、異常値の検出と除去のサンプルコード
クラスタリングを用いた前処理の方法の一例として、異常値の検出と除去のサンプルコードを示します。この例では、Scikit-learnライブラリを使用して、K-meansクラスタリングを実行し、クラスタリングによって特定された異常値を除去します。
python
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# サンプルデータ生成
X, _ = make_blobs(n_samples=1000, centers=3, random_state=42)
# K-meansクラスタリング
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
# 各データポイントの所属するクラスタを取得
labels = kmeans.labels_
# クラスタリング結果の可視化
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.title('K-means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.colorbar()
plt.show()
# クラスタリングによって異常値を除去
def remove_outliers(X, labels):
X_filtered = []
for i in range(len(labels)):
if labels[i] != -1: # 異常値でない場合
X_filtered.append(X[i])
return np.array(X_filtered)
X_filtered = remove_outliers(X, labels)
# 異常値を除去した後のデータの可視化
plt.scatter(X_filtered[:, 0], X_filtered[:, 1], c=labels[labels!=-1], cmap='viridis')
plt.title('Filtered Data after Removing Outliers')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.colorbar()
plt.show()
このコードでは、まずmake_blobs関数を使用してサンプルデータを生成し、その後K-meansクラスタリングを実行します。次に、クラスタリング結果を可視化し、異常値を除去した後のデータを再度可視化しています。異常値は、クラスタラベルが-1のデータポイントとして扱われます。

ディスカッション
コメント一覧
まだ、コメントがありません