星の本棚

サイエンス、テクノロジー、エンジニア関連のノート(忘備録)です。

機械学習

機械学習 [Machine Learning]

機械学習に関して体系的にまとめたマイノートです。今後も随時追加予定です。

s_

尚、本記事内容に関連した Python & scikit-learn ライブラリを用いた実装コード集は、以下の GitHub レポジトリにおいてあります。

github.com

目次 [Contents]

  1. 機械学習の概要 [Overview]
    1. 全体 MAP 図
    2. 機械学習の基本的なタスク処理
      1. 回帰のための機械学習
      2. 分類のための機械学習
      3. クラスタリングのための機械学習
    3. 学習の方法、種類
      1. 教師あり学習 [supervised learning] と教師なし学習 [Unsupervised learning]
      2. バッチ学習 [batch learning] とオンライン学習 [online learning]
      3. 強化学習 [reinforcement learning]
      4. アンサンブル学習 [ensemble learning]
  2. 機械学習の前処理 [pre processing]
    1. 欠損値への対応
    2. カテゴリデータ(名義 [nominal] 特徴量、順序 [ordinal] 特徴量)の処理
    3. データの分割
    4. 特徴データの変換、特徴量のスケーリング
      1. 特徴ベクトル空間 [feature vector space]
      2. 特徴ベクトルの変換
      3. 特徴ベクトルの正規化(標準化) [normalization/standardization]
        1. 使用例 [example]
      4. 特徴ベクトルの無相関化 [decorrelation]
        1. 使用例 [example]
      5. 特徴ベクトルの白色化 [whitening]
    5. 特徴データの次元圧縮、特徴抽出
      1. 主成分分析 [PCA : Principal Component Analysis]
        1. 主成分分析(PCA)の分散最大化による定式化
        2. 主成分分析(PCA)の誤差最小化による定式化
        3. 使用例 [example]
      2. カーネル主成分分析 [kernel PCA : kernel Principal Component Analysis]
        1. 使用例 [example]
      3. 部分空間法 [subspace methods]
        1. 部分空間 [sub space]
      4. カーネル部分空間法 [kernel subspace methods]
  3. モデルの評価 [evaluate model]
    1. 汎化能力 [generalizing capability]
      1. モデルの選択 [model selection]
        1. 多項式の関数近似での例
        2. 【補足】より広義な意味でのモデル選択
      2. バイアス・バリアントトレードオフ [bias-variance trade-off]
        1. 多項式の関数近似での例
      3. 過学習 [overfitting]
        1. 多項式の関数近似での例
      4. 正則化 [Regularization] による過学習への対応
        1. L2 正則化 [L2 reguraration](正則化最小2乗法)
        2. L1正則化による疎な解 [Sparse solution](ほとんどの特徴量の重みが0になるような解)
      5. 損失関数 [loss functions](コスト関数、誤差関数)
        1. 回帰問題の為の、損失関数(L2正則化、L1正則化)
        2. 分類問題の為の、損失関数
    2. データの分割手法とモデルの評価
      1. ホールド・アウト法 [holdout method]
      2. 交差確認法 [cross validation method] (=交差検証法、交差妥当化法)
      3. 1つ抜き法 [leave-one-out method] (=ジャックナイフ法)
      4. ブートストラップ法 [bootstrap method]
    3. 学習曲線 [Learning Curve]と検証曲線 [Validation Curve]
    4. 陽性 [positive]、陰性 [negative] から導かれる各種評価指数(2クラスの識別問題)
      1. 混同行列、適合率、再現率、F1スコア
      2. ROC曲線(受信者動作特性曲線)[receiver operator characteristics curve]
        1. ROC曲線下面積 [AUC: area under ROC curve]
        2. ROC曲線と損失直線(最適な動作点の選択)
    5. グリッドサーチに [grid search] よるモデルのハイパーパラメータのチューニング
    6. 情報量基準[Information Criterion]
      1. AIC(赤池の情報量基準)[Akaike's Information Criterion]
  4. 確率モデルと識別関数 [discriminant function]
    1. 確率モデル(パラメトリックモデル [parametric models]と、ノンパラメトリックモデル [non-parametric models])
    2. 識別規則 [idification rule]
      1. ① 事後確率 [posterior probability] によるクラス分類法
      2. ② 距離 [distance] によるクラス分類法
      3. ③ 関数値 [function value] によるクラス分類法
      4. ④ 決定木 [decision tree] によるクラス分類法
    3. ベイスの識別規則 [Bayes's idification rule]
      1. ベイズの定理 [Bayes' theorem]
      2. ベイスの識別規則 [Bayes's idification rule]
      3. 識別クラスの決定 [desicide identification class] と、尤度比(ゆうどひ) [likelihood ratio]
      4. ベイスの識別規則 [Bayes' identification rule] と誤り率最小化 [minimarize error rate]
      5. 最小損失基準 [minimum loss standard] に基づくベイズの識別規則 [Bayes' identification rule](損失を考慮に入れたベイズの識別規則)
      6. 判断の留保(リジェクト) [decision of rejection]
      7. 使用例 [example]
    4. 正規分布関数と正規分布から導かれる識別関数
      1. 使用例 [example]
    5. 最大尤度法 [MLE:maximum likelihood estimation]による確率モデルのパラメータの推定
  5. 線形判別分析 [LDA : liner discrinant analysis]
    1. 線形識別関数 [liner discriminant function] でのクラス識別<識別規則>
      1. 超平面 [hyper plabe] の方程式
      2. 多クラスの識別問題への拡張
      3. 使用例 [Examples]
    2. 線形判別分析 [LDA : liner discrinant analysis] によるパラメータ推定
      1. 判別分析法
      2. 使用例 [Examples]
  6. ロジスティクス回帰 [Logistic Regression]
    1. ロジスティック回帰 [logistic regression] による識別関数のパラメータ推定
    2. ロジスティック回帰モデル
    3. 最尤度法によるロジスティック回帰モデル(確率モデル<ノンパラメトリックモデル>)のパラメータ推定 [MLE:maximum-likelihood estimation]
      1. L2 正則化による過学習への対応(評価関数への正則化項の追加)
    4. ロジスティック回帰 [logistic regression] による識別問題の多クラスへの拡張と、非線形変換 [no-liner transformation]、ガウス核関数 [Gaussian kernel function]
    5. 使用例 [Examples]
  7. 最近接法, k-NN 法 [k-nearest neighbor algorithm]
    1. 最近傍法 [nearest neighbor algorithm] とボロノイ境界 [Voronoi diagram]
      1. ボロノイ図 [Voronoi diagram]
      2. 鋳型の数と識別性能
      3. 使用例 [Examples]
    2. k最近傍法(k-NN法)[k-nearest neighbor algorithm]
      1. k-NN法 [k-nearest neighbor algorithm] での誤り発生のメカニズムとベイズ誤り率との関係
      2. k-NN法の計算量とその低減法
      3. 使用例 [Examples]
  8. サポートベクターマシン [SVM : Support Vector Machine]
    1. マージン [margin] とマージン最大化について
    2. サポートベクターマシン(SVM)[support vector machine] の導出
      1. 線形分離可能な系における最適識別超平面とサポートベクトルによるマージン最大化 [margin maximization]
      2. マージン最大化 [margin maximization] と不等式制約条件凸最適化問題(数理計画法)[unconstrained convex optimization]
        1. KTT [Karush-Kuhn-Tucker] 条件
    3. データの分布が線形分離不可能な系への拡張(スラック変数の導入)とソフトマージン識別器(C-SVM)、その最適化問題
      1. サポートベクターマシンにおける非線形特徴写像
         <カーネル関数、カーネル法 [kernel method] 、カーネルトリック [kernel trick]>
        1. 多項式カーネル
        2. 動径基底関数カーネル(RBFカーネル)[radial bases function kernel]
      2. 使用例 [Examples]
    4. v-サポートベクターマシン(v-SVM
    5. 1クラスサポートベクターマシン
  9. 決定木 [Decision Tree]
    1. 【補足】決定木に関しての諸定義(グラフ理論)
    2. 【補足】決定木のノードの特徴空間のクラス分け(各種ノードの確率と識別クラス)
    3. ノードの分割規則と不純度 [purity]
      1. 不純度 [purity] を表す代表的な関数
    4. 木の剪定(せんてい) [pruning] アルゴリズムと過学習対策
      1. 木の剪定アルゴリズム
    5. 使用例 [Examples]
  10. アンサンブル学習 [ensemble learning]
    1. 混合モデル [mixed model]
      1. 混合モデルによるモデル多様体の拡張(混合モデルの幾何学的解釈)
      2. 混合正規分布モデル [GMM : Gaussian Mixture Model]
      3. 混合正規分布モデルの幾何学的観点
    2. EM アルゴリズム [expectation–maximization algorithm]
      1. EM アルゴリズムの適用例
      2. EM アルゴリズムの幾何学解釈
    3. ブースティング [Boosting]、アダブースト [AdaBoost]
      1. アダブースト [AdaBoost]
        1. AdaBoost の学習アルゴリズムの導出
        2. AdaBoost の幾何学的解釈
    4. バギング [Bagging]
      1. バギングの幾何学解釈
    5. ランダムフォレスト [random forests]
      1. ランダムフォレストの学習アルゴリズム
      2. ランダムフォレスト固有のデータ解析
        (OBBランダムフォレスト固有のデータ解析(OOB 誤り率 [ out-of-bag error rate]、特徴の重要さ)
  11. クラスター分析 [Clustering Analysis]
    1. 標本化 [sapling] と量子化 [quantization]
    2. ベクトル量子化 [QV : quantization vector]
      1. k-means 法
      2. 学習ベクトル量子化 [LQV : leaning quantization vector]
  12. 【外部リンク】 ニューラルネットワーク [NN :Neural Network]
  13. 参考文献

概要 [Overview]

機械学習の基本的なタスク処理

機械学習は、大きく分けて以下の3つの問題設定&解決のための手法に分けることが出来る。

  1. 回帰問題の為の手法。(単回帰分析、重回帰分析、等)
  2. (クラスの)分類問題の為の手法(SVM、k-NN、ロジスティクス回帰、等)
  3. クラスタリング問題の為の手法(k-means法、等)

■ 学習の方法、種類

◎ バッチ学習 [batch learning] とオンライン学習 [online learning]

☆ バッチ学習 [batch processing]

定量もしくは、一定期間データを集め、まとめて一括に学習を行う学習方式。
より詳細には、
モデルの重みの更新を、各々のサンプルデータ毎に小刻みに行うでのはなく、トレーニングデータ・セット全てのサンプルに対して、一斉(一度)に行う。(バッチ処理
最急降下法による学習などが、これに相当する。

image

☆ オンライン学習 [batch processing]

データを一度に一斉に学習を行うバッチ学習とは異なり、
新しいトレーニングデータが届いた際に、その場でモデルに対し、このサンプルでの追加の学習を随時行う学習方式。
オンライン学習を用いれば、生じた変化に素早く適応させることができる。
応用上において、これが特に役に立つのは、Webアプリケーションの顧客データなどの大量のデータを扱うケースである。
確率的勾配法などがこれに相当する。

強化学習 [reinforcement learning]

試行錯誤を通じて環境に適応する学習制御の枠組である。
教師有り学習とは異なり、状態入力に対する正しい行動出力を明示的に示す教師データが存在しない。(教師なし学習
そのかわりに、報酬というスカラーの情報を手がかりに学習するが、報酬にはノイズや遅れがある。
そのため、行動を実行した直後の報酬をみるだけでは学習主体はその行動が正しかっ たかどうかを判断できないという困難を伴うヒューリスティックな手法。
(※ ヒューリスティック:必ず正しい答えを導けるわけではないが、ある程度のレベルで正解に近い解を得ることができる方法。 )

image

◎ アンサンブル学習 [ensemble learning]

各識別器を組み合わせて使用し、それらの識別器(弱識別器という)の投票結果(単純な多数決 or 重み付け後の多数決等)で最終的な判断を下す学習方法。
様々な識別器を組み合わせて 多様性のある学習 を行うため、汎化性能が高く、又過学習 [overfitting] を起こしにくい。

  • 実装コード
    • Python & scikit-learn ライブラリを用いた、機械学習における、アンサンブル学習のサンプルコード集。(練習プログラム) github.com

機械学習の前処理 [pre processing]

  • 実装コード
    • Python & scikit-learn ライブラリを用いた、機械学習における、データの前処理のサンプルコード集。(練習プログラム) github.com

■ 欠損値への対応

◎ 欠損値 NaN を含むデータ

image

◎ NaN の平均値補完

image

■ カテゴリデータ(名義 [nominal] 特徴量、順序 [ordinal] 特徴量)の処理

パターン認識は、対象を観測し、識別に有効な特徴を抽出することから始まるが、
観測された特徴は、非数値データとして抽出される定性的特徴 [qualitative feature] と、数値データとして抽出される定量的特徴 [quantitative feature] に分類できる。
定性的特徴と定量的特徴のデータは、更に下図のように型分類できる。

image

尚、定性的特徴を処理するためには、データの符号化を行う。(例えば、2つのクラスラベルを表すために、"0と1"あるいは"-1と+1"のように符号化する。)

■ データの分割

機械学習モデルの学習を行うためには、入力データとその該当するクラスを記述した学習データが必要になる。
(※教師あり学習 [supervised learning] の場合 )

クラスを指定したデータを教師データといい、
2クラスの場合、出力 y の正負に対応した値
image で表す。

クラス数が3つ以上の場合は、クラス数のビット幅を持ったダミー変数表現を用いて、
例えば、
image のように表現する。(このような符号化方式をK対1符号化 [1-of-K coding] という。※尚、Kはクラス数を表している。)

そして、入力データと教師データのペアは、以下のように表す。
image

学習に用いられるすべてのペアの集合を学習データセット [learning data set] と呼びimage で表す。

一方、学習に使用しなかったデータは、テストデータセットとして、 image として、性能評価に使える。

◎ 学習データとテストデータの作り方とバイアス、誤り率

image

学習データセット image とテストデータセット image は、手元にあるデータを分割して作ることになる。
今、上図のように、
とある識別対象(100円玉など)を、その母集団からN 個用意し、その内、L 個を学習用データに、T 個をテスト用データに使用する場合を考える。
また、識別対象を識別するために d 個の特徴(10円玉の重さ、透磁率など)が用いられているとする。

すると、学習データセット image は、L 個の d 次元特徴ベクトルからなる集合
    テストデータセット image は、T 個の d 次元特徴ベクトルからなる集合となる。

それぞれの特徴ベクトルの d 次元空間内での分布関数を image 及び image で表すことにすれば、
この分布関数から、平均値、分散値などが計算できる!

しかしながら、
学習データセットとテストデータセットは、母集団からランダムに抽出されたものであるが、
その分布関数 image 及び image の平均値や分散値が、母集団 image のそれと同じになるとは限らない。
この母集団とのズレをバイアス(偏り)[bias] という。

ここで、学習データセット image から算出し、テストデータセット image を使用してテストしたときの誤り率を、image で表すことにする。
すると、母集団の誤り率(真の誤り率)は、image と表現でき、
母集団の分布 image に従う学習データから算出し、母集団の分布 image に従うテスト用データを用いてテストしたときの誤り率を意味する。

また、母集団からサンプリングした学習データをテストデータとして再利用した場合の誤り率を、
再代入誤り率 [resubstitution error]
といい、image で表現できる。


特徴データの変換、特徴量のスケーリング

特徴ベクトル空間 [feature vector space]

image

特徴ベクトルの変換

image image image image

特徴ベクトルの正規化(標準化) [normalization/standardization]

image

使用例

image

特徴ベクトルの無相関化 [decorrelation]

image image

使用例

image

特徴データの次元圧縮

image

  • 実装コード
    • Python & scikit-learn ライブラリを用いた、主成分分析 [PCA : Principal Component Analysis] による教師なしデータの次元削除、特徴抽出 github.com
    • Python & scikit-learn ライブラリを用いた、カーネル主成分分析 [kernelPCA : kernel Principal Component Analysis] による非線形写像と教師なしデータの次元削除、特徴抽出 github.com

主成分分析 [PCA : Principal Component Analysis]

image

主成分分析(PCA)の分散最大化による定式化

image image

主成分分析(PCA)の誤差最小化による定式化

twitter_ _ 1-1_161209 twitter_ _ 1-2_161209 twitter_ _ 1-3_161209 twitter_ _ 1-4_161209 twitter_ _ 1-5_161209 twitter_ _ 1-6_161209 twitter_ _ 1-7_161209 twitter_ _ 1-8_161209 twitter_ _ 1-9_161209 twitter_ _ 1-10_161209

PCAによる次元の削除 image

使用例 [example]

PCA による次元の削除の使用例

13×178 次元のワインデータ → 2×124 次元のデータに次元削除(特徴抽出)(※124は分割したトレーニングデータ数)

ワインデータをPCAによる次元削除を行なったデータの散布図。 寄与率と累積寄与率の図より、第1主成分と第2主成分だけで、全体のデータの60%近くを説明できることから、2×124 次元のデータで散布図を図示。この後、この次元削除したデータでクラス識別用のデータに使用する。 pca_scikit-learn_3

固有値 pca_scikit-learn_1

λ_1 λ_2 λ_3 λ_4 λ_5 λ_6 λ_7 λ_8 λ_9 λ_10 λ_11 λ_12 λ_13
4.56 2.65 1.33 1.13 0.80 0.55 0.43 0.25 0.22 0.18 0.16 0.12 0.11

寄与率(分散の比)[proportion of the variance] / 累積寄与率 [Cumulative contribution rate] pca_scikit-learn_2

principal component 1 2 3 4 5 6 7 8 9 10 11 12 13
寄与率 0.366 0.213 0.107 0.090 0.064 0.044 0.035 0.020 0.017 0.014 0.0125 0.009 0.0086
累積寄与率 0.366 0.578 0.685 0.775 0.839 0.883 0.918 0.938 0.955 0.970 0.982 0.991 1.000

カーネル主成分分析 [kernel PCA : kernel Principal Component Analysis]

image image image image image

使用例 [example]
  • kernelPCA による次元の削除の使用例

    sklearn.datasets.make_moons( n_samples = 100 ) で生成した半月状のデータ(サンプル数:100個)に対し、通常の PCA を適用した結果。

    上段の図より、通常の PCA では、うまく線形分離可能なテータに変換できていないことが分かる。(※下段の図は、各主成分に対する固有値と寄与率、累積率寄与率の図)尚、第1主成分 PC1 のみに次元削除(特徴抽出)した図は、各クラス(0 or 1)の識別を見やすくするため、上下に少し移動させている。 kernelpca_scikit-learn_1

sklearn.datasets.make_moons( n_samples = 100 ) で生成した半月状のデータ(サンプル数:100個)に対し、RBF カーネルカーネル関数とする、カーネル PCA を適用した結果。

上段の図より、RBFカーネルカーネルとするkernelPCA では、この半月状のデータをうまく線形分離可能な特徴空間に写像出来ていることが分かる。(尚、第1主成分 PC1 のみに次元削除(特徴抽出)した図は、各クラス(0 or 1)の識別を見やすくするため、上下に少し移動させている。)
下段の図は、RBFカーネル関数のカーネル行列(グラム行列)の固有値を、大きい順に 40 個表示した図。カーネル行列の固有値固有値分解を近似的な数値解析的手法で解いており、0 に近い値の固有値がこれに続いている。 kernelpca_scikit-learn_2

sklearn.datasets.make_circles( n_samples = 1000 ) で生成した同心円状のデータ(サンプル数:1000個)に対し、通常の PCA を適用した結果。

上段の図より、通常の PCA では、うまく線形分離可能なテータに変換できていないことが分かる。(※下段の図は、各主成分に対する固有値と寄与率、累積率寄与率の図)尚、第1主成分 PC1 のみに次元削除(特徴抽出)した図は、各クラス(0 or 1)の識別を見やすくするため、上下に少し移動させている。 kernelpca_scikit-learn_4

sklearn.datasets.make_circles( n_samples = 1000 ) で生成した同心円状のデータ(サンプル数:1000個)に対し、RBF カーネルカーネル関数とする、カーネル PCA を適用した結果。

上段の図より、RBFカーネルカーネルとするkernelPCA では、この半月状のデータをうまく線形分離可能な特徴空間に写像出来ていることが分かる。(尚、第1主成分 PC1 のみに次元削除(特徴抽出)した図は、各クラス(0 or 1)の識別を見やすくするため、上下に少し移動させている。) kernelpca_scikit-learn_5

部分空間法 [subspace methods]

部分空間 [sub space]

image

モデルの評価 [evaluate model]

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

scikit-learn パイプライン(Pipeline クラス)による機械学習処理フローの効率化、 及び、モデルの汎化性能の各種評価方法(2クラスの識別問題を対象)
Yagami360/MachineLearning_Exercises_Python_scikit-learn/MachineLearningPipeline_scikit-learn

汎化能力 [generalizing capability]

image

モデル選択 [model selection]

「モデル選択」という用語は、チューニングパラメータの”最適な”値を選択する分類問題を指す。 image

多項式関数近似での例

image

【補足】より広義な意味でのモデル選択

image image

バイアス・バリアントトレードオフ [bias-variance trade-off]

多項式関数近似での例

image image

過学習 [overfitting]

多項式関数近似での例

image

image

正則化 [Regularization] による過学習への対応

image

L2 正則化 [L2 reguraration](正則化最小2乗法)

image image

L1 正則化による疎な解 [Sparse solution](ほとんどの特徴量の重みが0になるような解)

image image

損失関数 [loss funtions](コスト関数、誤差関数)

損失関数(評価関数、誤差関数)は、モデルの出力と目的値(真の値、教師データ)との差(いいえ変えれば、誤差、距離)を計測する関数であり、モデルの学習に適用されるものである。

ここで、機械学習は、大きく分けて以下の2つの問題設定&解決のための手法に分けることが出来た。 ① 回帰問題の為の手法。(単回帰分析、重回帰分析、等) ② (クラスの)分類問題の為の手法(SVM、k-NN、ロジスティクス回帰、等)

従って、損失関数も同様にして、回帰問題の為の損失関数と、分類問題の為の損失関数が存在することになる。

回帰問題の為の、損失関数(L2正則化、L1正則化

回帰の為の、損失関数(L2正則化、L1正則化)のグラフ processingformachinelearning_tensorflow_2-1

  • L2 正則化の損失関数は、目的値への距離の2乗で表されるので、下に凸な2次関数の形状をしており、
    目的値(この場合 0)の近くで急なカーブを描く。
    この特性が、損失関数と扱う際に優れているのが特徴である。
  • L1 正則化の損失関数は、目的値への距離の絶対値で表される損失関数である。
    その為、目的値(この場合 0)からのズレが大きくなっても(ズレの大きなに関わらず)、その傾き(勾配)は一定である。
    その為、L1 正則化は L2 正則化よりも、外れ値にうまく対応するケースが多いのが特徴である。
    又、目的値(この場合 0)にて、関数が連続でないために、対応するアルゴリズムがうまく収束しないケースが存在することに注意が必要となる。

分類問題の為の、損失関数

記載中...

データの分割手法とモデルの評価

image

手元にあるデータを学習用とテスト用に分割する代表的な方法、及びモデルの評価法には、以下のような手法がある。

ホールド・アウト法 [holdout method]

image

交差確認法 [cross validation method] (=交差検証法、交差妥当化法)

image image

1つ抜き法 [leave-one-out method] (=ジャックナイフ法)

記載中...

ブートストラップ法 [bootstrap method]

image image

学習曲線 [Learning Curve]と検証曲線 [Validation Curve]

記載中...

陽性 [positive]、陰性 [negative] から導かれる各種評価指数(2クラスの識別問題)

混同行列、適合率、再現率、F1スコア

ROC曲線(受信者動作特性曲線)[receiver operator characteristics curve]

image image image twitter_ 13-3_161229

ROC曲線下面積 [AUC: area under ROC curve]

twitter_ 13-5_170101

ROC曲線と損失直線(最適な動作点の選択)

twitter_ 13-8_170102 image image image

グリッドサーチ [grid search] によるハイパーパラメータのチューニング

記載中...

確率モデルと識別関数 [discriminant function]

確率モデル(パラメトリックモデル [parametric models]と、ノンパラメトリックモデル [non-parametric models])

twitter_ 20-1_170108

識別規則 [idification rule]

image

① 事後確率 [posterior probability] によるクラス分類法

image

② 距離 [distance] によるクラス分類法

image

③ 関数値 [function value] によるクラス分類法

image

④ 決定木 [decision tree] によるクラス分類法

image

ベイスの識別規則 [Bayes's idification rule]

ベイズの定理 [Bayes' theorem]

image image image

ベイスの識別規則 [Bayes's idification rule]

image image

識別クラスの決定 [desicide identification class] と、尤度比(ゆうどひ) [likelihood ratio]

image

ベイスの識別規則 [Bayes' identification rule] と誤り率最小化 [minimarize error rate]

image image image

最小損失基準 [minimum loss standard] に基づくベイズの識別規則 [Bayes' identification rule](損失を考慮に入れたベイズの識別規則)

twitter_ 10-1_161005 image image twitter_ 10-3_161005

判断の留保(リジェクト) [decision of rejection]

image image twitter_ 11-3_161005

使用例 [Examples]

twitter_ 12-1_161004 twitter_ 12-2_161004

正規分布関数と正規分布から導かれる識別関数

twitter_ 20-2_170108 twitter_ 20-3_170109

twitter_ 20-5_170110 twitter_ 20-6_170110 twitter_ 20-7_170110 twitter_ 20-8_170116

使用例 [example]

twitter_ 20-9_170116

最大尤度法 [MLE:maximum likelihood estimation]による確率モデルのパラメータの推定

twitter_ 20-18_170127

線形判別分析 [LDA : liner discrinant analysis]

線形識別関数 [liner discriminant function] でのクラス識別<識別規則>

twitter_ 17-1_161113

超平面 [hyper plane] の方程式

twitter_ 17-2_161113 twitter_ 17-3_161113

多クラスの識別問題への拡張

twitter_ 17-4_161114 twitter_ 17-5_161114 twitter_ 17-6_161115

最小2乗法によるパラメータ推定

twitter_ 17-7_161115 twitter_ 17-8_161115 twitter_ 17-9_161116

使用例 [Example]

twitter_ 17-10_1_171029

線形判別分析 [LDA : liner discrinant analysis] によるパラメータ推定

twitter_ 17-10_161116 twitter_ 17-11_161116 twitter_ 17-12_161116 twitter_ 17-13_161118

判別分析法

twitter_ 17-14_161123 twitter_ 17-15_161123 twitter_ 17-16_161123

使用例 [Examples]

twitter_ 17-20_170130

twitter_ 17-25_170201 twitter_ 17-26_170202

ロジスティクス回帰 [Logistic Regression]

ロジスティック回帰 [logistic regression] による識別関数のパラメータ推定

twitter_ 18-1_161130 twitter_ 18-2_161130

ロジスティック回帰モデル

twitter_ 18-3_161130 twitter_ 18-4_161130 twitter_ 18-5_161201

最尤度法によるロジスティック回帰モデル(確率モデル<ノンパラメトリックモデル>)のパラメータ推定 [MLE:maximum-likelihood estimation]

twitter_ 18-6 _170204 twitter_ 18-7 _170204 image

L2正則化による過学習への対応(評価関数への正則化項の追加)

image

ロジスティック回帰 [logistic regression] による識別問題の多クラスへの拡張と、非線形変換 [no-liner transformation]、ガウス核関数 [Gaussian kernel function]

twitter_ 18-8_170204 twitter_ 18-9_170208 twitter_ 18-10_170208

使用例 [Examples]

twitter_ 18-11 _170210 twitter_ 18-12 _170210 twitter_ 18-13_170210 twitter_ 18-14_170210 twitter_ 18-15_170210 twitter_ 18-16_170210 twitter_ 18-18_170726 twitter_ 18-19_170727

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

ロジスティクス回帰の練習コード。scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/LogisticRegression_scikit-learn

最近接法, k-NN 法 [k-nearest neighbor algorithm]

twitter_ 14-1_161007

最近傍法 [nearest neighbor algorithm] とボロノイ境界 [Voronoi diagram]

image

ボロノイ図 [Voronoi diagram]

image twitter_ 14-3_161008 twitter_ 14-4_161009

鋳型の数と識別性能

twitter_ 14-5_161010

使用例 [Examples]

twitter_ 15-1 _161221 twitter_ 15-2 _161221

k最近傍法(k-NN法)[k-nearest neighbor algorithm]

twitter_ 16-1_161011 twitter_ 16-2_161012

twitter_ 16-3_161111 twitter_ 16-4_161111

k-NN法 [k-nearest neighbor algorithm] での誤り発生のメカニズムとベイズ誤り率との関係

twitter_ 16-5_161112 twitter_ 16-6_161112

k-NN法の計算量とその低減法

記載中...

使用例 [Examples]

twitter_ 16-7_170729

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

k-NN 法の練習コード。scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/kNN_scikit-learn

サポートベクターマシン [SVM : Support Vector Machine]

twitter_svm_1-1_170211

マージン [margin] とマージン最大化について

twitter_svm_1-2_170211

サポートベクターマシンSVM)[support vector machine] の導出

image

線形分離可能な系における最適識別超平面とサポートベクトルによるマージン最大化 [margin maximization]

twitter_svm_2-1_170212 twitter_svm_2-2_170212

マージン最大化 [margin maximization] と不等式制約条件凸最適化問題(数理計画法)[unconstrained convex optimization]

twitter_svm_3-1_170214 twitter_svm_3-2_170214 twitter_svm_3-3_170214 twitter_svm_3-4_170214

KTT [Karush-Kuhn-Tucker] 条件

twitter_svm_3-5_170216

データの分布が線形分離不可能な系への拡張(スラック変数の導入)とソフトマージン識別器(C-SVM)、その最適化問題

twitter_svm_4-1_170216 twitter_svm_4-2_170217 twitter_svm_4-3_170217 twitter_svm_4-4_170218 twitter_svm_4-5_170218

サポートベクターマシンにおける非線形特徴写像
 <カーネル関数、カーネル法 [kernel method] 、カーネルトリック [kernel trick]>

twitter_svm_5-1_170219 twitter_svm_5-2_170220 twitter_svm_5-2_170225

多項式カーネル

twitter_svm_5-3_170222 twitter_svm_5-4_170225

動径基底関数カーネル(RBFカーネル)[radial bases function kernel]

twitter_svm_5-5_170303 twitter_svm_5-6_170303

使用例 [Examples]

twitter_svm_5-7_170305 twitter_svm_6-1_170728 twitter_svm_6-2_170728 twitter_svm_6-2 _170728 twitter_svm_6-3_170729

v-サポートベクターマシン

記載中...


参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

サポートベクターマシンのサンプルコード集。(練習プログラム)scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/SVM_scikit-learn

決定木 [Decision Tree]

twitter_ 21-1_170730 twitter_ 21-2_170730

【補足】決定木に関しての諸定義(グラフ理論

twitter_ 21-3_170731

【補足】決定木のノードの特徴空間のクラス分け(各種ノードの確率と識別クラス)

twitter_ 21-5_170731 twitter_ 21-6_170731

ノードの分割規則と不純度 [purity]

twitter_ 21-7_170731

不純度 [purity] を表す代表的な関数

twitter_ 21-8_170801

木の剪定(せんてい) [pruning] アルゴリズム過学習対策

twitter_ 21-12_170802

木の剪定アルゴリズム

twitter_ 21-13_170802 twitter_ 21-14_170802 twitter_ 21-15_170802

使用例 [Examples]

twitter_ 21-9_170801 twitter_ 21-10_170801 twitter_ 21-11_170801

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

決定木のサンプルコード集。(練習プログラム)scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/DecisionTree_scikit-learn

アンサンブル学習 [ensemble learning]

各識別器を組み合わせて使用し、それらの識別器(弱識別器という)の投票結果(単純な多数決 or 重み付け後の多数決等)で最終的な判断を下す学習方法。
様々な識別器を組み合わせて 多様性のある学習 を行うため、汎化性能が高く、又過学習 [overfitting] を起こしにくい。

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

アンサンブル学習のサンプルコード集。(練習プログラム)scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/EnsembleLearning_scikit-learn

混合モデル [mixed model]

twitter_ _ _11-1_170626

混合モデルによるモデル多様体の拡張

image

混合正規分布モデル [GMM : Gaussian Mixture Model]

image

混合正規分布モデルの幾何学的観点

image image image image twitter_ _ _11-5_170630

EM アルゴリズム [expectation–maximization algorithm]

twitter_ _ _11-6_170701

EM アルゴリズムの適用例

image image image image

EM アルゴリズム幾何学的解釈

image image image image

ブースティング [Boosting]、アダブースト [AdaBoost]

image

アダブースト [AdaBoost]

image image

アダブーストの学習アルゴリズムの導出

image image twitter_ _ _11-13_170703

アダブーストの幾何学的解釈

twitter_ _ _11-14_170704 image image twitter_ _ _11-16_170705 image

バギング [Bagging]

image image

バギングの幾何学的解釈

twitter_ _ _11-19_170707

ランダムフォレスト [Random Forests]

twitter_ 22-1_170802

ランダムフォレストの学習アルゴリズム

twitter_ 22-2_170802 twitter_ 22-3_170802 twitter_ 22-4_170803 twitter_ 22-5_170803

ランダムフォレスト固有のデータ解析
(OBBランダムフォレスト固有のデータ解析(OOB 誤り率 [ out-of-bag error rate]、特徴の重要さ)

twitter_ 22-6_170804 twitter_ 22-7_170804 twitter_ 22-8_170804

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

ランダムフォレストのサンプルコード集。(練習プログラム)scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/EnsembleLearning_scikit-learn

クラスター分析 [Clustering Analysis]

標本化 [sapling] と量子化 [quantization]

image

ベクトル量子化 [QV : quantization vector]

image

k-means 法

twitter_ _ _9-4_170623

学習ベクトル量子化 [LQV : leaning quantization vector]

twitter_ _ _9-5_170623

参考

My GitHub : Yagami360/MachineLearning_Exercises_Python_scikit-learn
Python機械学習ライブラリ scikit-learn の使い方の練習コード集。機械学習の理論解説付き

クラスター分析のサンプルコード集。(練習プログラム)。scikit-learn ライブラリを使用。
MachineLearning_Exercises_Python_scikit-learn/ClusteringAnalysis_scikit-learn


参考文献

はじめてのパターン認識

はじめてのパターン認識

パターン認識と機械学習 上

パターン認識と機械学習 上

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

情報理論の基礎―情報と学習の直観的理解のために (SGC Books)

情報理論の基礎―情報と学習の直観的理解のために (SGC Books)

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

情報数理の基礎と応用 (ライブラリ情報学コア・テキスト)

情報数理の基礎と応用 (ライブラリ情報学コア・テキスト)

Excelで学ぶ多変量解析―資料に隠れた大切な関係は多変量解析を駆使してあぶり出す!

Excelで学ぶ多変量解析―資料に隠れた大切な関係は多変量解析を駆使してあぶり出す!

深層学習 Deep Learning (監修:人工知能学会)

深層学習 Deep Learning (監修:人工知能学会)