【概要】
人工知能関連のプロダクト・サービスの開発において、機械学習は最初の学習領域です。
本書は、機械学習の基本と実践手法について解説した書籍です。
機械学習の開発環境の準備、実際の現場での利用方法、そしてブラックボックス化しがちな理論部分もしっかりフォローしています。
データ集計・整形と組み合わせた機械学習モデルの利用方法も解説しています。
【読者対象】
人工知能関連の開発に携わる開発者、研究者
【著者】
大曽根 圭輔(おおそね・けいすけ)
筑波大学大学院システム情報工学研究科博士後期課程修了。博士(工学)。
2012年に株式会社サイバードに入社し、データ分析部門立ち上げ等を担当。
2015年に株式会社Gunosyに入社、アルゴリズム開発やユーザ行動分析、グノシー事業の責任者を担当。
データ可視化が好きで、業務外の活動で「STAT DASHグランプリ2016」総務大臣賞、第14回日本統計学会統計教育賞などを受賞。
関 喜史(せき・よしふみ)
富山商船を卒業後、東京大学工学部に編入学。同大学院工学系研究科博士課程修了。博士(工学)。
2011年度未踏OB。未踏ジュニアPM。
大学院在籍中にGunosy(グノシー)を共同開発し、2012年に当社創業。
創業期からニュース配信ロジックの開発を担当し、現在は研究開発に従事。2017年度言語処理学会論文賞受賞。
推薦システム、ユーザ行動分析が専門。
米田 武(よねだ・たけし)
1992年生まれ。2015年3月筑波大学理工学群数学類卒業、2017年3月大阪大学大学院理学研究科数学専攻修了。
修士(理学)。Certified Kubernetes Application Developer(CKAD)。AWS Summit Tokyo2018 登壇。
2017年4月に株式会社Gunosyにデータ分析エンジニアとして新卒入社後、
現在は推薦システムの設計からアルゴリズムのデザインのみならず、インフラ構築を含めたサーバーサイド全般に従事。
機械学習を行う上で必要となる環境構築と機械学習に必要なPythonの基本について解説します。
教師あり学習と教師なし学習についてサンプルをもとに解説します。
主要な機械学習モデルの理論を数式と絡めて説明し、その理論をもとにしPythonにおけるコーディング方法を解説します。
データの集計、整形方法と実際の機械学習モデルへの利用方法について解説します。
■Chapter 1 本書を読む前の準備
1.1 Pythonのインストール
1.1.1 Pythonとは
1.1.2 Homebrewのインストール
1.1.3 Python3のインストール
1.1.4 仮想環境の構築
1.1.5 なぜvenvを使うのか(なぜpyenv、anacondaを使わないのか)
1.2 Pythonの使い方
1.2.1 Hello World!
1.2.2 IPythonの利用
1.2.3 四則演算
1.2.4 文字列の利用
1.2.5 リスト型の利用
1.2.6 辞書型の利用
1.2.7 その他の型について
1.2.8 条件分岐
1.2.9 繰り返し
1.2.10 関数の利用
1.2.11 クラスの利用
1.2.12 標準ライブラリの使い方
1.3 Jupyter Notebookのインストールと使い方
1.3.1 Jupyter Notebookのインストールと起動
1.3.2 Jupyter Notebookの利用
1.4 NumPy、scikit-learn、matplotlib、Pandasの利用
1.4.1 NumPyのインストールと利用
1.4.2 scikit-learnのインストールと利用
1.4.3 matplotlibのインストールと利用
1.4.4 Pandasのインストールと利用
■Chapter 2 機械学習を実務で使う
2.1 業務で機械学習を使う
2.1.1 機械学習について
2.1.2 入出力の定式化
2.1.3 課題を明らかにする
2.1.4 実問題での例
2.2 サンプルデータで教師あり学習を試す
2.2.1 分類の例を試してみる
2.2.2 決定木で分類する
2.2.3 実際にありそうな問題で考える
2.2.4 実問題に応用する際の注意点
2.3 サンプルデータで教師なし学習を試してみる
2.3.1 教師なし学習
2.3.2 サンプルを用いてscikit-learnで試す
2.4 まとめ
■Chapter 3 機械学習 理論編
3.1 数学的準備
3.1.1 本節の流れ
3.1.2 なぜ数学が必要なのか
3.1.3 集合と関数の基礎
3.1.4 線形代数の基礎
3.1.5 微分の基礎
3.1.6 確率統計の基礎
3.2 機械学習の基礎
3.2.1 機械学習の目的
3.2.2 技術的な仮定と用語
3.2.3 教師あり学習
3.2.4 汎化誤差から見る教師あり学習
3.2.5 教師なし学習
3.3 教師あり学習
3.3.1 分類モデルの精度評価
3.3.2 ロジスティック回帰
3.3.3 ニューラルネットワーク
3.3.4 勾配ブースティング決定木
3.4 教師なし学習
3.4.1 混合ガウスモデル
3.4.2 k-平均法
3.4.3 階層型クラスタリング
3.4.4 カーネル密度推定
3.4.5 t-SNE
■Chapter 4 データの集計・整形
4.1 実際のデータを機械学習に利用するための流れ
4.2 データの取得、集計
4.2.1 データの構造の理解
4.2.2 構造化データからのデータ抽出
4.2.3 抽出
4.2.4 集約
4.2.5 時間の扱い方
4.2.6 結合
4.3 データの整形
4.3.1 データの種類(尺度水準)の理解
4.3.2 標準化
4.3.3 欠損値の扱い
4.4 非構造化データの処理
4.4.1 テキストデータの前処理
4.4.2 ターミナルからMeCab利用する
4.4.3 PythonからMecab利用する
4.4.4 画像データの処理
4.5 不均衡データの取り扱い
4.5.1 分類問題における不均衡データ
4.5.2 不均衡データの問題点
4.5.3 基本的な対処法とその実装
4.5.4 サンプルの重みの変更
4.5.5 ダウンサンプリング法