科学の箱

科学・IT・登山の話題

機械学習

Pythonではじめる機械学習 – Chap03

投稿日:2019年12月6日 更新日:

3.1 Types of Unsupervised Learning

教師なし学習の例

  • 次元削減: 重要な特徴量のみを使って元のデータを表現する
  • トピック抽出: データを構成する部品を見つける
  • クラスタリング: 似たデータをグループに分類する

3.2 Challenges in Unsupervised Learning

正解ラベルがないために、モデルの正しさを評価しにくい。

  • データ探索のために用いられる
  • 教師あり学習の準備のために用いられる。

3.3 Preprocessing and Scaling

Scalerの種類

  • StandardScaler: 平均=0、分散=1とする。しかし最小値と最大値の取り扱いについては問題が残る。極端に大きな外れ値が存在する場合には、意図しているスケーリングに対してずれが生じる。
  • RobustScaler: 外れ値の影響を小さくする。
  • MinMaxScaler: すべてのデータを0~1に収める
  • Normalizer: 円状にスケーリングする。データの方向性が問題になる場合に有効

Scalingする時の注意

  • 学習データと検証データについてそれぞれScalerを作成する。
  • 学習データのScalerを検証データに用いると、Scalingがおかしくなる

3.4 Dimensionality Reduction, Feature Extraction, and Manifold Learning

Feature, Correlation

the direction along which the features are most correlated with each other.

  • Correlation : 日本語では相関、ちなみに変数の係数もcorrelationという。本質としては同じ意味になるある変数の変化に対して、別の変数がどの程度変化するか。もし全く変化が関係名なら相関係数は0に近くなる。それに対して比例で変化するならばCorrelationは1に近づき、さらに係数としてのCorrelationも算出される。

 

3.4.1 Principal Component Analysis (PCA)

PCAとGray Scaleを組み合わせる

mglearn.plots.plot_pca_whitening()

 

  • PCAのみでは散布図は楕円形になるので縦方向に対する解像度はよくない。しかしグレースケールを組み合わせると形状は円状になるためにすべての方向について分類の正解度が上がる。
  • PCAでグレースケールを利用するにはPCAでwhiten=Trueを設定する
pca = PCA(n_components=100, whiten=True, random_state=0).fit(X_train)

 

PCAの第一および第二主成分のみで分類ができるかを確認する

同じマーク、例えば赤の▲は同じ人物を表す。マークがある特定の位置に固まっていれば第一および第二主成分で分類可能といえる。しかし実際に見てみるとどのマークも円状に分散している。これは第一および第二主成分のみでは人物の識別が難しいことを意味する。実際に第一および第二主成分のみで画像を復元してみると、視覚上、識別は困難である。

 

3.4.2 Non-Negative Matrix Factorization (NMF)

NMFはPCAと考え方は同じである。違う点は、係数はすべての0以上になる。よって結果も0以上になる。

NMFでは各成分は負にならないために、分解した成分は足しあわされるだけになる。足しすぎると負の計算で元に戻ることができないために各成分はスパースになることが予想される。

3.4.3 Manifold Learning with t-SNE

多様体学習

  • 画像データの分析
  • PCAとおなじで次元を減らす
  • 学習データのみに適用できる。テストデータには適用できない。よって探索的データ分析には有効といえる。

3.5 Clustering

3.5.1 k-Means Clustering

k-Meansの特徴

  • クラスタの中心は等高線、おなじ直径を仮定している
  • クラスタはすべての方向に次いで同じ程度に重要である。
  • クラスタの形状によっては想定外の結果を招く
  • 例としては楕円形のクラスタがある

 

ベクトル量子化

  • 量子化=値を最も近い不連続の値にマッピングする
  • ベクトル量子化=ベクトルを代表ベクトルに近似する
  • https://www.slideshare.net/miyoshiyuya/9

kmeans, pca, nmfの比較

  • kmeansは代表ベクトルになる。そのクラスタの平均化した顔
  • pcaおよびnmfはどうなるのか?

two_moonクラスタリングの分析

  • PCAおよびNMFによる分析はできることが少ない。次元を減らすと各データポイントの判別はつかなくなる
  • k-meansではクラスタ数を増やすことにより、結果として2つのクラスタを分けることができる。

3.5.2 Agglomerative Clustering

クラスタのマージ方法

  • ward : デフォルト、クラスタの分散が最小になるようにマージする。同じサイズのクラスタに落ちつく傾向がある
  • average : すべてのデータポイントについて最も平均距離が短いクラスタをマージ
  • complete : 最長距離が最も短いクラスタをマージ

マージ方法の選択

  • 基本はwardを利用する
  • クラスタに大きな偏りがある場合には、average もしくは completeを利用する

ヒエラルキー

  • クラスタリングは小さいグループを繰り返し集める。
  • これによりヒエラルキーが構成される
  • ヒエラルキーは等高線もしくはデンドログラムにより表現できる

非線形に対応できるか

  • ある程度は可能であるが、two moonは難しい
  • DBSCANでは可能である

3.5.3 DBSCAN

core samples

  • ランダムポイントを選ぶ
  • eps距離内に最低min_samples個のデータがある場合、このデータポイントはcore sampleとしてラベル付けされる
  • eps距離よりも近いcore sampleはおなじクラスタとして取り扱う
  • eps距離内にmin_samples個のデータがない場合には、この範囲のポイントはnoiseとして取り扱われる。
  • noiseはいづれのクラスタにも属さない
  • eps内のラベル付けが完了すると次のポイントが選ばれ、同じ処理を繰り返す
  • 最終的にはすべてのテンは, core point, eps内のcore point ( boundary point ) 、noiseに分類される

Hyper parameter

  • epsこの値を増やすとクラスタが大きくなる。ただし大きくしすぎると異なったクラスタを結合してしまう可能性がある
  • min_samples : この値を増やすとcore pointが少なくなり、noiseが多くなる

eps

  • このパラメータが最重要である。なぜならポイントが”近い”という概念を決めるからである。
  • epsが小さいとcore pointがないためにほとんどのポイントがnoiseになる。
  • epsが大きすぎるとシングルクラスタになる。

min_samples

  • このパラメータにより密度が低い場所にあるポイントが外れ値として取り扱われるか、もしくはクラスタを構成するか決める
  • min_samplesを増やせば、noiseとして取り扱われる可能性が高くなる。
  • min_sampleはクラスタの最低構成数を決める

3.5.4 Comparing and Evaluating Clustering Algorithms

クラスタリングアルゴリズムを評価する指標

  • ARI (adjusted rand index)
  • NMI (normalized mutual information)

クラスタのメトリック

  • accuracy_scoreは使わない
  • adjusted_rand_score, normalize_mutual_info_scoreを用いる
  • clusters1および2は正解率では0になる。これはお互いの要素がすべて異なっている値のためである。
  • しかしクラスタにとってラベルは意味がない。両方のクラスタで要素1,2,5と要素3,4はおなじクラスタに分類されている。このためARIとしては1.0になる。
clusters1 = [0, 0, 1, 1, 0]
clusters2 = [1, 1, 0, 0, 1]

 

その他のメトリック

  • ARIおよびNMIはもとになる比較できる正解が必要である。しかし実際にはクラスタリングでは正解データは用意されていない。また用意されているのであれば教師付き学習を利用すればよい。
  • 一つの方法としてシルエット係数がある。しかし実際に利用すると高いスコアでも予想とは違うクラスタ形状になるためにあまり利用されてない。
  • 別の方法としては頑健性クラスタリングメトリックがある。これはデータにノイズを混ぜる、パラメータを変更して結果を比較する。同じ結果が出ればモデルは信頼性が高いといえる。

epsとクラスタの関係

  • eps=7でクラスタ数は最大の9となる。
  • しかし実際にクラスタのポイント数を見ると極端に大きなサイズのクラスタ(1527)が一つと、それ以外となる。
  • これはほとんどのイメージが同じように見えるということを意味する
eps=7
Number of clusters: 9
Cluster sizes: [1527   15    3    3    5   14    3    3    4]

 

Face recognition

  • DBSCANでは一つの大きなクラスタが認識された→顔の検出はうまくいっていない
  • k-meansは比較的同じサイズのクラスタを生成した。この違いはnoiseがあるかどうかである。クラスタを増やせば、より詳細な認識ができるが、説明が難しくなる。
  • ARIをk-meansとagglomerativeで比べると10%程度になる→クラスタリングアルゴリズムによりデータポイントのラベル付けは変わってくる。

メタ情報

inarticle



メタ情報

inarticle



-機械学習
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dataanalysis-002-week3

exploratory analysis グラフの目的 データのおおよそを理解する パターンを探す モデリングを探す デバッグ コミュニケーション boxplot 値のレンジを確認する 他の値とレンジ …

no image

データ分析のメモ

一変量解析 各変数についてsummaryをとり、平均値、分散を確認する。変数について尺度を確認してどのように分析を進めるかを考える。 度数分布を作成して値の分布をみてみる。正規分布の値であればいろいろ …

no image

AWStatで基本指標を読む

ウェッブサイトの分析でまず見るべきことは月ごとのトレンドである。確認すべき指標はPV, 訪問数、UUdとなる。 AWStatではこれらの項目はWhen -> Month Historyで棒グラフ …

no image

SIGNATE お弁当の需要予測-2

データの内容を確認する。 期間を調べる d_train[‘datetime’].min() ‘ ‘2013-11-18’ d_train[‘datetime’].max() ‘ ‘2014-9-9’ …

no image

手書き数字データについて次元縮約および教師ありモデルの構築

前回手書き数字データについてイメージで確認した結果、人の目で確認する分には区別ができる。では機械学習ではどのように実施していくのか。 今回は以下の内容について説明する。 多様体学習による次元縮約 ナイ …

2019年12月
« 11月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

side bar top



アーカイブ

カテゴリー