Pythonで儲かるAIをつくる
https://images-na.ssl-images-amazon.com/images/I/51KoqkoQp3L._SX345_BO1,204,203,200_.jpg
2020/10/16
2020/10/26
赤石雅典『Pythonで儲かるAIをつくる』(日経BP社)読了。実際的な業務の処理と開発工程に則り、数学を使うことなくアルゴリズムや事例モデルを例証。実現したい事柄に対して機械学習のどの手法を使えばよいかがわかるようになる。Google Colabでの実習が快適すぎてこれ系の本では初めて一通りやった。
サポートサイト 兼 GitHub
1章 業務と機械学習プロジェクト
本書の目的
必要な専門性と本書の対象読者
機械学習プロジェクトで必要な役割
業務専門家
データエンジニア
データサイエンティスト
業務専門家が自分で作れるようになる
機械学習の開発プロセス
機械学習の適用領域の選択
業務データの入手・確認
データ加工
モデル開発
評価
これからの業務専門家に望ましいスキル
業務専門家が一人で全部できるようになる
効率的かつスピーディーにAIの業務利用を推し進められる
本書の構成
2章 機械学習モデルの処理パターン
AIと機械学習の関係
AI
人工知能を研究する計算機科学の一分野
機械学習
AIを実現するために現在最も有力とされる手段
学習を通じてモデルを作る
機械学習の三つの学習方式
教師あり学習
教師なし学習
強化学習
教師あり学習の処理パターン
分類
グループを予測する
回帰
数値を予測する
時系列分析
過去データを入力に未来データを予測する
教師なし学習の処理パターン
アソシエーション分析
バスケット分析
クラスタリング
グループ分けを教師データなしに行う
次元圧縮
身長・体重→体格
処理パターンの選択フロー
ディープラーニングと構造化・非構造化データ
DLは非構造化データを扱うのに適している
3章 機械学習モデルの開発手順
モデルの開発フロー
例題データ・目的の説明
例題データの説明
Breast Cancer Wisconsin (Diagnostic) Data Set
モデルの目的
悪性か良性か診断
モデルの実装
データ読み込み
データ確認
データ前処理
データ分割
アルゴリズム選択
学習
予測
評価
チューニング
4章 機械学習モデル開発の重要ポイント
データ確認
数値的・統計的に分析する方法
タイタニック・データセット
データの読み込み
データ欠損値の調査
項目値の個数のカウント
統計情報の調査
集約関数の利用
数値項目のグラフ表示
非数値項目のグラフ表示
視覚的に分析・確認する方法
アイリス・データセット
データの読み込み
matplotlib を使った散布図表示
seaborn を使った散布図表示
pairplot 関数による散布図表示
jointplot 関数による散布図表示
箱ひげ図
データフレームを使った箱ひげ図表示
seaborn を使った箱ひげ図表示
データ前処理
不要な項目の削除
同じ情報量のデータ項目が複数あると、精度はかえって落ちる
.drop
欠損値の対応
.dropna
.fillna, .replace({'デッキ': {np.nan: 'N'})
2値ラベルの数値化
ラベル値を数値データに変換する
tf_map = {True: 1, False: 0}
.map(tf_map)
多値ラベルの数値化
One-Hot エンコーディング
それぞれのラベルに対応した列を新しく作り、該当する項目は値1を、関係ない項目は値0を割り当てる
.get_dummies(df9['男女子供'], prefix='男女子供')
正規化
-1から1の範囲にする
normalizationかstandardization
その他のデータ前処理
特徴量エンジニアリング
アルゴリズム選択
分類の代表的なアルゴリズムとその特徴
損失関数型
決定木型
サンプルコードで用いるデータ
ロジスティック回帰
シグモイド関数
サポートベクターマシン(カーネル)
直線(2次元)で分離不可→平面(特徴空間)で分離可能
ニューラルネットワーク
神経細胞間の結合
決定木
値の大小で分岐
過学習おこりやすい
ランダムフォレスト
弱分類器の結果を全部寄せ集めて多数決
XGBoost
アンサンブルというモデルのうち、バギングとブースティングという手法を組み合わせたもの
アルゴリズムの選択方法
モデルの判断根拠を知りたい
高精度のモデル
学習時間
評価
混同行列
table:混同行列
予測結果 予測結果
陰性 陽性
正解データ 陰性 TN FP
正解データ 陽性 FN TP
精度・適合率・再現率・F値
精度(Accuracy)
正解数を全体件数で割った比
適合率(Precisi on)
モデルが陽性と予測した対象のうち、本当に陽性だった割合
陽性の予測結果がどの程度正確かが業務効率に直結する場合
再現率(Recall)
本当に陽性だったデータのうち、どの程度をモデルで「陽性」と検知できたか
問題のある事象を洗い出したい(陽性を漏れなく見つけたい)場合
F値(F-score)
適合率と再現率の中間
確率値と閾値
閾値を上げると、適合率が増加、再現率が減少
PR曲線とROC曲線
PR曲線(Precision-Recall Curve)
閾値を変化させた時の適合率と再現率のプロット
ROC曲線(Receiver Operating Characteristc Curve)
値を変化させた時の敏感度と偽陽性率のプロット
敏感度=TP/(TP+FN)
偽陽性率=FP/(FP+TN)
入力項目の重要度
予測をするにあたってどの項目がどの程度関与しているか
回帰のモデルの評価方法
散布図による確認方法
決定係数による確認方法
チューニング
アルゴリズムの選択
ハイパーパラメーターの最適化
交差検定法
学習データを均等に分割し、それぞれ一つのグループのみを検証用に、残りのグループを訓練用にして学習・訓練
グリッドサーチ
複数のパラメータについて、可能な全ての組み合わせをしらみつぶしに調べる
その他のチューニング
特徴量エンジニアリング
5章 業務要件と処理パターン
営業成約予測
処理パターンと想定される業務利用シーン
分類
適合率が適切
例題のデータ説明とユースケース
Bank Marketing Data Set
有望顧客リスト
モデルの概要
今回販促結果を予測
データ読み込みからデータ確認まで
データ前処理とデータ分割
アルゴリズム選択
学習・予測・評価
チューニング
重要度分析
コラム 欠陥・疾患判定モデルの実現について
天候による売上予測(回帰)
処理パターンと想定される業務利用シーン
数値を予測する処理パターン
例題のデータ説明とユースケース
Bike Sharing Dataset Data Set
モデルの概要
1日の自転車利用数を予測する
教師あり学習
データ読み込みからデータ確認まで
データ前処理とデータ分割
アルゴリズム選択
学習・予測
評価
チューニング
重要度分析
季節などの周期性で売上予測(時系列分析)
処理パターンと想定される業務利用シーン
過去の目的変数の値を基に、未来の目的変数の数値を予測する
周期性を前提とした予測
例題のデータ説明とユースケース
Bike Sharing Dataset Data Set
モデルの概要
Prophetを用いたモデル実装
データ読み込みからデータ確認まで
データ前処理とデータ分割
アルゴリズム選択
学習・予測
評価
チューニング(ステップ1)
チューニング(ステップ2)
回帰と時系列分析の処理パターンの選択
コラム 「アイスクリーム購買予測」で時系列分析
お薦め商品の提案(アソシエーション分析)
処理パターンと想定される業務利用シーン
得られた知見を基に、何か戦略を考え、その効果があって初めて分析が意味を持つ
例題のデータ説明とユースケース
Online Retail Data Set
モデルの概要
アソシエーション分析
重要な概念
支持度(support)
S(A AND B)
確信度(confidence)
S(A AND B) / S(A)
リフト値(lift)
S(A AND B) / S(A) * S(B)
分析したいルール
AならばB
アプリオリ分析
支持度の閾値で探索対象を切り捨てる
データ読み込みからデータ確認まで
データ前処理
アルゴリズムの選択と分析
チューニング
関係グラフの視覚化
より発展した分析
協調フィルタリング
コラム 「おむつとビール」の都市伝説
顧客層に応じた販売戦略(クラスタリング、次元圧縮)
処理パターンと想定される業務利用シーン
クラスタリング
アソシエーション分析と協調フィルタリングの中間
次元圧縮
項目数が多い入力データを少ない次元に圧縮
例題のデータ説明とユースケース
Wholesale customers Data Set
モデルの概要
データ読み込みからデータ確認まで
クラスタリングの実施
クラスタリング結果の分析
次元圧縮の実施
次元圧縮の活用方法
散布図表示
例外値の調査
6章 AIプロジェクトを成功させる上流工程のツボ
機械学習の適用領域の選択
処理パターンのあてはめが肝要
教師なし学習は正解データ入手の必要性がない
分析→知見→戦略→効果
教師あり学習は正解データの入手が命
学習用の正解データが入手可能な場合
AIに100%は期待するな
絞り込みに役割を限定
重要度分析の結果を品質改善に生かす
業務データの入手・確認
データの所在確認
部門を跨がるデータ連係の課題
データの品質
欠損値
不適切なカテゴリ値
例外値
One-Hotエンコーディングの問題
コラム 機械学習モデルの自動構築ツールについて
IBM社のAutoAI
講座1 Google Colaboratory 基本操作
講座2 機械学習のためのPython入門
NumPy入門
pandas入門
matplotlib入門
内容(「BOOK」データベースより)
“見込み客予測”“土日の需要”“商品リコメンド”数学なしでアルゴリズム選びもチューニングもわかる。営業、マーケティングが劇的に変わる。全PythonコードをGoogle Colab用のNotebook形式で用意。
著者について
赤石 雅典(あかいし・まさのり)
1985年、東京大学工学部計数工学科卒。1987年、同大学院修士課程修了後、
日本IBMに入社し、東京基礎研究所で数式処理システムの研究開発に従事。
1993年、SE部門に異動し、オープン系システムのインフラ設計・構築および
アプリケーション設計を担当。2013年、スマーターシテイ事業、2016年、
ワトソン事業部に異動し現在に至る。現在はWatson Studioなどのデータ
サイエンス系製品の技術セールスとして活動。京都情報大学院大学客員教授。
著書に『最短コースでわかるディープラーニングの数学』(日経BP)、『現場で
使える! Python自然言語処理入門』 (翔泳社)、『Watson Studioで始める
機械学習・深層学習』(リックテレコム)など。
著者略歴 (「BOOK著者紹介情報」より)
赤石/雅典
1985年、東京大学工学部計数工学科卒。1987年、同大学院修士課程修了後、日本IBMに入社し、東京基礎研究所で数式処理システムの研究開発に従事。1993年、SE部門に異動し、オープン系システムのインフラ設計・構築およびアプリケーション設計を担当。2013年、スマーターシティ事業、2016年、ワトソン事業部に異動し現在に至る。現在はWatson Studioなどのデータサイエンス系製品の技術セールスとして活動。京都情報大学院大学客員教授(本データはこの書籍が刊行された当時に掲載されていたものです)
https://m.media-amazon.com/images/S/aplus-media/vc/de56bdd2-ed63-4eec-80b0-06b85cd34cfb.__CR0,0,300,300_PT0_SX300_V1___.jpg
■五つの事例で、実践的なAIの作り方がわかる
「営業で見込みの高い顧客を絞り込む」といった、五つの実践的な業務を対象に、AIをPythonコードで実装していきます。AIの作り方と、AIが実現できることが具体的にイメージできるようになります。
★「AIが本当に業務に役立つ業務」から始められる
AIが、どんな業務なら成果が出るのかが五つの事例から分かります。自分の業務に近いものだけを読んでもOKです
https://m.media-amazon.com/images/S/aplus-media/vc/d8fb9a0b-5696-49bf-ab8c-802e1ab4f020.__CR0,0,300,300_PT0_SX300_V1___.jpg
■適用業務の選択から実装まで一人でできるようになる
本書を読めば、現場の業務専門家の立場で、簡単なものならAIの実装までできるようになります。データサイエンティストなどの専門家が必要だった従来と比べて、PoCの検証サイクルが格段にスピードアップします。AIプロジェクトの「目利き」の力が付くのです。
https://m.media-amazon.com/images/S/aplus-media/vc/6a6c25d4-2c90-4993-927a-644b84fd87fc.__CR0,0,300,300_PT0_SX300_V1___.jpg
■AI開発で最重要の5ステップを詳説
「データ確認」から「チューニング」まで、Pythonコードを動かしながらAI開発の重要なステップを詳説します。中でも、AIが出した結果の「評価」が非常に重要です。単純な正答率である「精度」ではなく、「適合率」や「再現率」といった様々な評価軸を使い分けることで、AIを業務に生かせるようになります。
https://m.media-amazon.com/images/S/aplus-media/vc/b13f7f22-7967-47d4-a60c-1348e0d7867e.__CR0,0,300,300_PT0_SX300_V1___.jpg
■数学知識なしでAIを使いこなせる
AIアルゴリズムの中身を詳しく知らなくても、AIの最適化はできるのです。アルゴリズムが持つ数値(しきい値)を一つ変えるだけで、予測結果の割合を変えて「営業見込み客」の数を増やしたりできます。そんなAIを使いこなすためのテクニックが満載です。
https://m.media-amazon.com/images/S/aplus-media/vc/b620777b-aa90-4a57-a5f5-167c0a560fa8.__CR0,0,300,300_PT0_SX300_V1___.jpg
■Pythonコードをブラウザーだけで試せる
Pythonコードは、煩雑な導入作業なしにブラウザー上で動かせます。Googleのクラウドサービス「Colaboratory」用のNotebookファイルとして用意しているためです。予測結果や分析結果は、グラフや表で表示し、目で見て分かるようにしています。
★GitHubでPythonコードや実習例を公開
Pythonコードは、本書のサポートサイト(URLは本文に掲載)で公開していて、誰でも試せます。二つの追加事例の解説や、Pythonの文法の入門講座も掲載しているので、ぜひご覧ください。