本エントリーは、内輪向けの勉強会向けに書いたメモです。
元になっているのは、2冊の書籍です。
基本的な部分は、「機械学習Pythonプログラミング」を元にし、「ITエンジニアのための機械学習理論入門」で補足する方でまとめています。
なお、本記述に間違い勘違いなどがあれば気軽にご指摘ください。
種類
学習方法 重要
- 教師あり
- 教師なし・ラベルなし
- 強化学習
目的の種類
(from 機械学習理論入門)
- 分類 ・・Positive(P) or Negative(N) の判定
- 回帰分析 ・・数値を予測する
- クラスタリング ・・教師なしで、グループ化
- 類似マッチング ・・類似物を見つける (書籍では単語のみ紹介)
- 共起分析 ・・レコメンデーション (書籍では単語のみ紹介)
- リンク予測 ・・つながり (書籍では単語のみ紹介)
各種用語
学習度合い 重要
- 過学習・バリアンスが高い・オーバーフィッティング
- 学習不足・バイアスが高い
変数
(from 機械学習理論入門)
- 説明変数・特徴変数・特徴ベクトル
- 目的変数
前処理系
- 欠損値補完
- 特徴量の選択
- 特徴量の抽出
- 次元削減
- 主成分分析(PCA)
- 線形判別分析(LDA)
- カーネル主成分分析
- 探索的データ解析
アルゴリズム名、変換器、推定器
- パーセプトロン
- ロジスティック回帰
- SVM
- カーネルSVM
- 決定木
- ランダムフォレスト
- k近傍法
- k-平均法(k-means)
- ランダムフォレスト回帰
- アンサンブル学習 ・・・ 複数のアルゴリズムを混ぜて多数決などで判断
- BoW (Bag-of-Words)
検証方法など
- テストデータの分割
- k分割交差検証(クロスバリデーション) 重要
- グリットサーチ
- 混同行列(Confusion matrix) (TP/TN/FP/FN)
- 誤差の考え方
- 残差・誤差
- 平均二乗誤差(MSE)
- 誤差平方和(SSE)
- 決定係数(R2)
Python機械学習プログラミングの本の内容
- 学習モデルの基本的な手順・方法の説明
- 機械学習アルゴリズムのトレーニングの基礎を、構築する
- scikit-learnの活用方法
- データ前処理
- 次元削減でデータを圧縮する
- モデルの評価とハイパーパラメータのチューニング
- アンサンブル学習--異なるモデルの組み合わせ
- 感情分析をもちいて適すデータの変換、機械学習アルゴリズムに適用
- Webアプリケーション(Flask/Picle)
- 回帰分析--連続地を取る目的変数の予測
- クラスタ分析--ラベルなしデータの分析
- ニューラルネットワーク -- 画像認識トレーニング
- ニューラルネットワーク -- 数値計算ライブラリTheanoによるトレーニング
機械学習理論入門で使っているアルゴリズム
最小二乗法
- 教師あり
- 回帰分析
最尤推定法
- 教師あり
- 回帰分析
パーセプトロン
- 教師あり
- 分類
ロジスティック回帰
- 教師あり
- 分類
- 最尤推定法を用いる
- ROC曲線を使って機械学習の適用をする考え方も学ぶ
k平均法
- 教師なし
- クラスタリング
k近傍法
- 教師あり
- クラスタリング
- これは、機械学習なのか?
EMアルゴリズム
- 教師なし
- クラスタリング
- 最尤推定法を用いる
ベイズ推定
- パラメータ値を確率的に推測する
ツール類の説明
セットアップ方法: http://qiita.com/terapyon/items/e4a759de90fb687e7332
NumPy
数値計算モジュール
SciPy
科学技術計算モジュール
Pandas
データフレーム
matplotlib
グラフ出力
scikit-learn
様々な機械学習アルゴリズムが実装されている
チートシート
- regression: 回帰
- classification: 分類
- clustering: クラスタリング
- dimensionality reducion: 次元削減
jupyter notebook (IPython notebook)
Webブラウザで実行できるPython環境
scikit-learnで何かをやってみよう
TBD
参考
- PyData Tokyo Tutorial #1