More Related Content
【DL輪読会】Variable Bitrate Neural Fields Superpixel Sampling Networks 【輪読会】Learning Continuous Image Representation with Local Implicit Image Funct... 3次元レジストレーション(PCLデモとコード付き) [DL輪読会]Pyramid Stereo Matching Network 【DL輪読会】Code as Policies: Language Model Programs for Embodied Control What's hot (20)
深層自己符号化器+混合ガウスモデルによる教師なし異常検知 【DL輪読会】Novel View Synthesis with Diffusion Models 文献紹介:Swin Transformer: Hierarchical Vision Transformer Using Shifted Windows ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning 物体検知(Meta Study Group 発表資料) Overcoming Catastrophic Forgetting in Neural Networks読んだ サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会 論文紹介:Temporal Action Segmentation: An Analysis of Modern Techniques Convolutionl Neural Network 入門 最近強化学習の良記事がたくさん出てきたので勉強しながらまとめた NeurIPS2021論文読み会 (parameter prediction for unseen deep architecture) CVPR2018 pix2pixHD論文紹介 (CV勉強会@関東) [DL輪読会]Temporal Abstraction in NeurIPS2019 [DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv... オープンワールド認識 (第34回全脳アーキテクチャ若手の会 勉強会) ICLR2020の異常検知論文の紹介 (2019/11/23) Can Spatiotemporal 3D CNNs Retrace the History of 2D CNNs and ImageNet? SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~ Similar to [第2版]Python機械学習プログラミング 第11章 (20)
第3回集合知プログラミング勉強会 #TokyoCI グループを見つけ出す Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析 東京都市大学 データ解析入門 8 クラスタリングと分類分析 1 [第2版] Python機械学習プログラミング 第3章(5節~) データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7 分類問題 - 機械学習ライブラリ scikit-learn の活用 ユークリッド距離以外の距離で教師無しクラスタリング データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V k-1 More from Haruki Eguchi (16)
[第2版]Python機械学習プログラミング 第16章 [第2版]Python機械学習プログラミング 第15章 [第2版]Python機械学習プログラミング 第14章 [第2版]Python機械学習プログラミング 第13章 [第2版]Python機械学習プログラミング 第12章 [第2版]Python機械学習プログラミング 第12章 [第2版]Python機械学習プログラミング 第10章 [第2版]Python機械学習プログラミング 第9章 [第2版]Python機械学習プログラミング 第8章 [第2版]Python機械学習プログラミング 第7章 [第2版]Python機械学習プログラミング 第6章 [第2版] Python機械学習プログラミング 第5章 [第2版] Python機械学習プログラミング 第4章 [第2版] Python機械学習プログラミング 第3章(~4節) [第2版] Python機械学習プログラミング 第2章 [第2版] Python機械学習プログラミング 第1章 [第2版]Python機械学習プログラミング 第11章
- 7. scikit-learnを使ったk-meansクラスタリング
● k-means法を説明するための簡易的な例
● ランダムに生成された150個のサンプル点を用意する。
7
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=150,
n_features=2,
centers=3,
cluster_std=0.5,
shuffle=True,
random_state=0)
plt.scatter(X[:, 0], X[:, 1],
c='white', marker='o', edgecolor='black',
s=50)
plt.grid()
plt.tight_layout()
plt.show()
- 22. シルエット図を使ってクラスタリングの性能を数値化する
● シルエット係数のプロット
22
from sklearn.metrics import silhouette_samples
cluster_labels = np.unique(y_km)
n_clusters = cluster_labels.shape[0]
silhouette_vals = silhouette_samples(X, y_km, metric='euclidean')
y_ax_lower, y_ax_upper = 0, 0
yticks = []
for i, c in enumerate(cluster_labels):
c_silhouette_vals = silhouette_vals[y_km == c]
c_silhouette_vals.sort()
y_ax_upper += len(c_silhouette_vals)
color = cm.jet(float(i) / n_clusters)
plt.barh(range(y_ax_lower,y_ax_upper),
c_silhouette_vals,
height=1.0,
edgecolor='none',
color=color)
yticks.append((y_ax_lower + y_ax_upper) / 2.)
y_ax_lower += len(c_silhouette_vals)
- 31. DBSCANを使って高密度の領域を特定する
● DBSCAN(Density-based spatial clustering of applications with noise)
● 密度ベースのクラスタリングで、サンプル点の局所的な密度に基づいて
クラスタラベルを割り当てる。
「密度」とは指定された半径ε以内に存在する点の個数として定義される。
31
コア点 : 半径ε以内に少なくともminPts個の隣接点を持つ点。
ボーダー点 : 半径ε以内にminPts個ほどは隣接点がないが,
半径ε以内にコア点を持つ点
ノイズ点 : 半径ε以内に隣接点がない点
Editor's Notes
- #3: IMDb: Internet Movie Database
- #6: 同じグループに属しているオブジェクトは、他のグループに属しているグループよりも互いに関連度が高い。
- #8: n_samples=サンプル数
n_features=特徴量の個数centers=クラスタ数cluster_std=クラスタ内の標準偏差
- #9: セントロイド:類似する点の中心を表す
- #11: n_clusters=クラスタ数
init=セントロイドの初期値をランダムに選択 n_init=異なるセントロイドの初期値を用いたk-meansの試行回数max_iter=最大イテレーション回数tol=1e-04収束判定
- #14: この確率変数を使うと、次に選択されるセントロイドμは、Mにあるセントロイドと距離が離れているところに配置される確率が高くなる。
分母:Mに含まれていないサンプルxとMのセントロイドの距離を2乗したものの最小値を合計したもの
分子:次のセントロイドμとMのセントロイドの距離を2乗したものの最小値
- #16: 各セントロイドへの帰属の確率は合計すると1になる。
クラスタメンバシップ確率:該当するクラスタのセントロイドのメンバーとなる確率
- #17: クラスタメンバシップ確率:該当するクラスタのセントロイドのメンバーとなる確率
- #18: クラスタメンバシップ確率:該当するクラスタのセントロイドのメンバーとなる確率
ファジー性が大きいとよりぼやけたクラスタになる。
- #19: k-meansよりも計算コストは高いが、一般的に収束するまでのイテレーション数はFCMの方が少ない。
- #20: kの値が増えるとSSEの値は小さくなる。 -> サンプルがそれぞれが属するクラスタのセントロイドに近づくから。
- #22: シルエット係数の範囲は-1, 1
乖離度と凝集度が等しいとシルエット係数は0
b>>aの場合は理想的なシルエット係数である1に近づく
- #23: 縦軸が全サンプル
横軸がシルエット係数。
クラスタごとにクラスタ内のサンプルのシルエット係数が小さいものからプロットしている。
赤い点線は全サンプルのシルエット係数の平均。
- #24: 縦軸が全サンプル
横軸がシルエット係数。
クラスタごとにクラスタ内のサンプルのシルエット係数が小さいものからプロットしている。
赤い点線は全サンプルのシルエット係数の平均。
- #29: 類似度が低い:最も離れている
距離行列の計算はscipyのspatial.distanceモジュールのpdist関数を使用
- #30: scikit-learnでも実装可能
AgglomerativeClusteringクラス
- #36: k-meansよりも計算コストは高いが、一般的に収束するまでのイテレーション数はFCMの方が少ない。