post Image
Python 機械学習プログラミング 第1章 「データから学習する能力」をコンピュータに与える まとめ


はじめに

  • 機械学習

    • データの意味を理解するアルゴリズムの応用と科学

      • コンピュータサイエンスにおいて興奮に満ちた分野

  • 本章では機械学習の主な概念とその種類を扱う
  • 扱う内容

    • 一般概念
    • 3種類の学習と基本用語
    • システム設計するための構成要素
    • Pythonセットアップ

  • サンプルコード



1.1 データを知識に変える「知能機械」

  • 大量のデータ

    • 構造化データ
    • 非構造化データ

  • 日常生活での応用例

    • メールスパムフィルタ
    • 文字・音声認識ソフトウェア
    • 検索エンジン
    • 棋士との対戦



1.2 3種類の機械学習

  • 教師あり学習
  • 教師なし学習
  • 強化学習



1.3 「教師あり学習」による未来予測

  • 目標

    • トレーニングデータからモデルを学習し、未知のデータや将来のデータを予測できるようにすること

  • 教師ありデータ

    • 望ましい出力信号がすでに判明しているサンプルの集合
    • メールスパムフィルタデあれば「スパム」か「スパムでない」か。

    • 分類:離散値のクラスラベルを持つ
    • 回帰:出力信号が連続値を持つ



1.3.1 クラスラベルを予測するための分類

  • 目的

    • 過去の観測に基づき、新しいインスタンスを対象として、クラスラベルを予測すること

  • クラスラベルは離散的で順序性のない値(所属関係)
  • 2値分類

    • メールのスパムフィルタ

  • 多クラス分類

    • 手書き文字認識


1.3.2 連続値を予測するための回帰

  • 目的

    • 複数の予測変数と連続値の応答変数が与えられ、結果を予測できるようにそれらの変数の関係を探る

  • 線形回帰



1.4 強化学習による対話問題の解決

  • 目標

    • 環境とのやりとりに基づいて性能を改善するシステム(エージェント)を開発すること

  • 教師あり学習に関連する分野とみなせる

    • 環境の現在の状態に関する情報には報酬信号も含まれる
    • このフィードバックは正解のラベルや値ではなく、「報酬」関数によって測定された行動の出来具合を数値化

  • 報酬の最大化

    • 試行錯誤アプローチ

      • モデルを使用しない

    • 塾考的プランニング

      • モデルを使用する

    • チェスエンジン

      • 報酬は勝ち負け



1.5 「教師なし学習」による隠れた構造の発見

  • 教師なし学習

    • ラベルづけされていないデータや構造が不明なデータを扱う



1.5.1 クラスタリングによるグループの発見

  • クラスタリング(教師なし分類)

    • 大量の情報を意味のあるグループとして構造化できる探索的データ解析

      • 探索的データ解析:データの統計量を計算、分布の可視化を行ったりして、データに関する知見を探索的に導き出す

    • マーケティングにおける顧客集団の発見



1.5.2 データ圧縮のための次元削減

  • (教師なし)次元削減

    • 関連する大半の情報を維持した上で、データをより低い次元の部分空間に圧縮する

  • 目的

    • 大量の値を処理するのは記憶域、計算性能が限られていることから避けたい
    • データの可視化

  • 手法例

    • 教師なし次元削減

      • 主成分分析
      • カーネル主成分分析

    • 教師あり次元削減

      • 判別分析



1.6 基本用語と表記法

  • サンプル
  • 特徴量
  • ターゲット
  • 線形代数

    • ベクトル
    • 行列



1.7 機械学習システムを構築するためのロードマップ

  • 予測モデリングに機械学習を使用する場合の一般的なワークフロー

  1. 前処理
  2. 学習
  3. 評価
  4. 予測



1.8 前処理:データ整形

  • 前処理

    • 機械学習アルゴリズムの性能を最適化するのに必要な形式に変換する

  • 選択された特徴量の尺度を同じにする

    • 特徴量を0、1の範囲に変換
    • 平均0、分散1の標準正規分布に変換

  • 抽出された特徴量によっては相関高く一定の重複

    • 次元削減

  • 新しいデータセットにも応用できるか(汎化されるか)チェック

    • データセットをトレーニングデータセットとテストデータセットに分割



1.8.1 予測モデルのトレーニングと選択

  • 性能の良いモデルをトレーニングして選択するには数種類のアルゴリズムを比較することが不可欠
  • 性能を測定するための指標

    • 正解率

  • モデルの汎化性能の推定

    • トレーニングデータセットをトレーニング用と検証用に分割し、交差検証

  • ハイパーパラメータの最適化


1.8.2 モデルの評価と未知のインスタンスの予測

  • 汎化誤差の評価

    • モデルをテストデータセットに適用し、未知のデータに対する性能がどの程度発揮されるのかチェック

  • 特徴量のスケーリング、次元削減と言った前述の手続きのパラメータがトレーニングデータセットでのみ取り出される



1.9 機械学習にPythonを使用する


1.9.1 Pythonパッケージのインストール

  • Numpy

    • 多次元配列

  • Pandas

    • より高レベルなデータ操作ツール

  • matplotlib

    • 数値のデータの可視化

  • scikit-learn

    • 機械学習



参考書籍



ありがとうございました。


『 Python 』Article List