不正検知のためのクラスタリング手法

Pythonで学ぶ不正検知

Charlotte Werger

Data Scientist

クラスタリング: データのパターンを見つける

Pythonで学ぶ不正検知

k-meansクラスタリング: セントロイドまでの距離で分類

Pythonで学ぶ不正検知

k-meansクラスタリング: セントロイドまでの距離で分類

Pythonで学ぶ不正検知

k-meansクラスタリング: セントロイドまでの距離で分類

Pythonで学ぶ不正検知

Pythonで学ぶ不正検知

Pythonで学ぶ不正検知

Pythonで学ぶ不正検知

Pythonでのk-meansクラスタリング

# Import the packages
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans

# Transform and scale your data X = np.array(df).astype(np.float)
scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X)
# Define the k-means model and fit to the data kmeans = KMeans(n_clusters=6, random_state=42).fit(X_scaled)
Pythonで学ぶ不正検知

適切なクラスタ数

クラスタ数の確認:

  • シルエット法
  • エルボー曲線
clust = range(1, 10) 
kmeans = [KMeans(n_clusters=i) for i in clust]

score = [kmeans[i].fit(X_scaled).score(X_scaled) for i in range(len(kmeans))]
plt.plot(clust,score) plt.xlabel('Number of Clusters') plt.ylabel('Score') plt.title('Elbow Curve') plt.show()
Pythonで学ぶ不正検知

エルボー曲線

Pythonで学ぶ不正検知

Let's practice!

Pythonで学ぶ不正検知

Preparing Video For Download...