【読了】データサイエンス大全(49用語と13実践)



本編を読む前に

機械学習の土台は統計学なので、避けては通れない
・推計統計学
・確率統計
・離散型確率分布
・連続型確率分布

第1部 データサイエンスの基礎(10)

・データを入手したらまず分布を見る癖をつける、分布を見る前に代表値を使うと失敗する
・感覚や誤った理屈で判断することを避けられる

01. 推計学(推計統計学)

母集団の推定方法
・点推定:区間を考慮しない
・区間推定:区間を考慮する、「海王星の質量g(θ)の90%CIは、[a, b]である」
 ・頻度主義の考え方
  ・母数(真の値)は定数
  ・CI(Compatible Interval):「互換区間」(「信頼区間」や「信頼水準」とも呼ばれる)
  ・同じ測定を10回行えば、そのうち9回の頻度で「a≦g(θ)≦b」という測定結果が得られる(信頼水準90%のもとで「a≦g(θ)≦b」である)という意味
 ・ベイズ主義の考え方
  ・母数は確率変数
  ・CI(Credible Interval):「確信区間」(「信用区間」とも呼ばれる)
  ・「a≦g(θ)≦b」となる確率(確信度)は90%であるという意味

02-04. 確率分布

↑P(X)
→X
のグラフ

・離散型確率分布
 ・一様分布:サイコロを1回投げた時の出目、コイントスを1回行った時の表裏
・連続型確率分布
 ・正規分布

ビジネスに使用される多くの手法は正規分布を前提としているので注意
・t検定:データが正規分布に従うことが前提
・回帰分析:残差(予測値と実測値の差)が正規分布に従うことが前提

05. 検定

・統計学に基づき仮説を検定する
・複数の測定値で生じた値のズレは、偶然(誤差)なのか?有意差(意味のある差)なのか?

06. t検定

t検定は大きく3区分できる
①1標本問題:母平均は特定の値と等しいのか?
②2標本問題:2つの母集団の母平均に有意差はあるのか?
③回帰分析における回帰直線の回帰係数が0かどうか?

07. カイ2乗検定

カイ2乗検定(ピアソンのカイ2乗検定)は大きく区分できる
①独立性検定
②適合度検定

08. 相関関係と因果関係

擬似相関(相関関係があっても因果関係がない)である場合
・交絡因子がある:層別解析を行うと交絡因子の有無を確認できる

因果関係を立証するのは困難である(時間もお金もかかる)ため、相関関係が見られただけで(因果関係もありそうだと見込んで)、アクションを取ることも多い

09. 因果推論

・因果効果:同じ対象が、介入を受けた場合/受けなかった場合の結果に差が見られること
・個人レベルの因果効果は推定できないが、集団レベルなら推論可能

・因果効果の検証方法:
 ・集団を、介入群(実験群)と統制群(対照群)に割り付ける
  ・割り付け時には選択バイアス(自己選択バイアス、脱落バイアス、など)がかからないように注意
 ・割り付けを完全ランダムに行う(RCT:ランダム化比較実験)

実践スキルまとめ

・データを入手したら、まずは必ず分布を見る。特定の統計量だけに着目するのはその後。
・仮説検定をすることによって、差が有意なのか偶然なのかを判定できる
・因果関係を立証するには、因果推論(RCTなど)が必要

第2部 数理モデルと機械学習の基礎(11)

01. 数理モデル

特定事象を数式に落とし込んだもの

02. 機械学習

従来は、人間が勘と経験に基づきルール(数理モデル)を作るしかなかった
機械学習により、大量のデータを使えば、プログラム(機械学習アルゴリズム)がルールを作れるようになった

特徴量エンジニアリング

実務における統計学と機械学習の差異
・統計学はデータを説明することに主眼を置く
・機械学習は予測や分類の精度に主眼を置く

Churn Survey:解約予測

03. 機械学習の種類

①教師あり学習
・線形回帰分析
・決定木
・SVM
・k近傍法
・ニューラルネットワーク
②教師なし学習
・クラスター分析
・PCA
③強化学習
・Q学習

実務上は、教師なし学習と教師あり学習を組み合わせて活用する
まずは教師なし学習でデータに特徴量(セグメントなど)を付加し、教師あり学習で特徴量に基づく予測モデルを作る、など

04. 線形回帰分析(教師あり)

(○一般線形モデル:誤差が正規分布最小二乗法によるパラメータ推定
↓拡張
○一般化線形モデル(GLM):誤差が正規分布以外(二項分布、ポアソン分布など)最尤法(確率分布に基づく方法)によるパラメータ推定
↓拡張
○一般化線形混合モデル(GLMM):ランダム効果も考慮可能
↓拡張
○階層ベイズ:第11章で解説

05. ロジスティック回帰分析(教師あり)

線形回帰分析(目的変数が連続値)においてロジット変換を行うことで、離散値(割合や二値)を目的変数とする予測を行えるようにしたもの
例:100人中70人は治る病気、買うか買わないか

二値予測器の性能評価は、第5部08「分類タスクの評価指標」を参照

06. 階層的クラスター分析(教師なし)

・階層的クラスター分析:データ数に応じて指数関数的に計算量が増える
 ・最短距離法
 ・最長距離法
 ・群平均法
 ・ウォード法

階層的クラスター分析
各データ間に距離を定義して算出して樹形図(デンドログラム)を作成し、距離が近いデータをまとめる(クラスタリング)ことを繰り返す

データをセグメント分けするのに使える
クラスター分析の結果を、教師あり学習の特徴量として使うこともできる

07. 非階層的クラスター分析(教師なし)

・非階層的クラスター分析
 ・k-means法(k平均法):最初にクラスター数を決める必要あり
 ・エルボー法
 ・x-means法(x平均法):最適なクラスター数を自動的に算出する

まずはランダムサンプリングによりデータ数を絞って階層的クラスター分析にかけ、全体の傾向を見て最適なクラスター数にあたりを付け、その後、全データに対して非階層的クラスター分析にかけるアプローチもある

08. PCA(主成分分析)(教師なし)

1980年代前半に開発された手法(英ピアソン、米ホテリング)

変数を主成分にまとめる

・データの構造を単純化して理解しやすくする:特に変数が多い場合に有効
・次元圧縮により計算負荷を下げられる:多次元データの分析には計算負荷がかかるため、これを回帰分析に適用したものがPCR(主成分回帰)

09. SVM(サポートベクタマシン)(教師あり)

サポートベクトル(境界付近にあるデータ)間の距離(マージン)を最大化するように境界線(直線または曲線)を引き、データを分離すること

カーネル法
データ空間を変換する(例:2次元空間→3次元空間)ことで、元のデータ空間では直線で分離できない(非線形分離問題)ようなデータに対しても、変換後のデータ空間で直線により分離することができるようになる

・ソフトマージン:ある程度は分類ミスを許容する、過学習に陥りにくい
・ハードマージン:なるべく厳格に分類しようとする、過学習に陥りやすい

10. 決定木(教師あり)

特徴
・解釈容易性が高い
・精度は高くない:そのため、アンサンブル学習(組み合わせ)により、精度を出す(例:ランダムフォレスト、XGBoost、LightGBM)

用途
・データ構造の理解:モデルを作成するにあたって、どんな属性が関係しているのか?
・予測における初期分析

11. k近傍法(教師あり)

着目データの周りにあるk個のデータを判断材料として、着目データの分類を決める
k=5にするのが一般的

分類タスクに使うことが多いが、回帰タスクにも使える

実践スキルまとめ

・大量のデータから特徴を見出してグループ分けするには、クラスター分析が有効である(ランダムサンプリングして階層的クラスター分析してクラスター数を決め、全データに非階層的クラスター分析を行う)
・クラスター分析でデータをセグメント化できたら、どのセグメントに対して施策を入れたいのかを検討する
・例えば、ロジスティック回帰を使えば、未知データがどのセグメントに属するかを予測できる
・いくら予測精度の高いモデルが得られても、アクションに繋げられなければ意味がない。どのアクションが効果的かどうかは、因果推論(RCT等)で検証できる

第3部 機械学習の応用(9)

01-02. アンサンブル学習

精度を上げるために複数のモデルを組み合わせること
精度が上がる一方で、解釈が難しくなり計算負荷が高くなる

アンサンブル学習の種類(決定木の例)
・バギング(並列に組み合せ):ランダムフォレスト
・ブースティング(直列に組合せ):XGBoost、LightGBM(XGBoostより計算負荷が低い)
・スタッキング

精度を上げるための方法として、実務上では、複雑なアンサンブル学習を行うよりも、特徴量エンジニアリングで新たな特徴量を作り出したり、単独モデルを細かくチューニングする場合が多い

03. ベイズ統計学

ベイズ推定の考え方
得られたデータをもとに主観確率(確信度合い)を更新していく
①事前確率分布の設定:発生確率を知りたい事象に対して、主観で確率分布P(θ)を仮定する
②ベイズ更新(逐次推定):取得した観測値Dに基づき、尤度P(D|θ)とP(D)を算出し、ベイズ定理を使って事後確率P(θ|D) を算出する
③②で得られた事後確率を事前確率として使い、新たな観測値に基づいてベイズ更新を繰り返していく

ベイズ定理
P(θ|D) = P(θ) * P(D|θ) / P(D)
・事後確率P(θ|D): データDが得られた上でθが起こる確率(得られたデータに基づき更新される確率)
・事前確率P(θ): θが起こる確率(主観で仮定する確率)
・尤度P(D|θ): θが起きたときにデータDが得られる確率
・周辺尤度P(D): データDが得られる確率

04. パーセプトロン

1957年に米ローゼンブラットが開発した
神経回路を数理モデル化したものの一種(例:Hodgkin-Huxleyモデル)
・複数の入力に対して、重み付けを行い、足し合わせたものを出力する
・出力は「全か無かの法則(悉無律)」に従い、閾値により1/0となる

05. ニューラルネットワーク

パーセプトロンでは人間が算出するしかなかったパラメータ(重み付け係数、閾値)を、機械学習的アプローチ(教師あり学習)を導入することで、自動で算出してもらえるようにする
損失関数(「機械が算出した出力」と「実際に欲しい出力(正しい出力)」の差分)を最小化する(微分して導関数が0になる部分を探す)

損失関数の種類
・二乗和誤差

ニューラルネットワークの3層構造
・入力層
・中間層
・出力層

ニューラルネットワークの種類
・DNN:狭義のディープラーニング
・CNN(ConvNet):畳み込みニューラルネットワーク、画像認識に有効
・RNN:回帰型ニューラルネットワーク、時系列データ分析に有効
 ・LSTM:RNNの改善版
 ・Transformer:2017年にGoogleにより発表された、NLPに有効
・GAN:敵対的生成ネットワーク

06. ディープラーニング

狭義には、中間層が2層以上になっているニューラルネットワーク(DNN、Deep Neural Network)を使った機械学習手法のこと
・1950年代に開発されたが、技術的問題(局所最適解、勾配消失など)により実用的ではなかった
・2006年に英ジェフリーによりDNNを使ったオートエンコーダが発表され、2010年代に急速に普及した

07. CNNと画像認識

08. NLP(自然言語処理)

形態素解析

tf-idf

Cos類似度

09. 数理最適化

機械学習は、回帰タスク、分類タスク、クラスタリングタスクなどを行える(精度も評価できる)
一方で、どのアクションを採用すれば効果的か?という問題には答えられない
数理最適化は、制約条件のもとで、目的とする値を最大化/最小化するものを判定できる

実践スキルまとめ

・世間に普及しているAI活用ソリューションは、高度で汎用的に使えるアルゴリズムを使っているかのように見せかけて、実際はとても単純なことしかやっておらず痒い所に手が届かない(ソリューション営業は「議論を進めていけば実現可能」とうそぶく)場合も多い。
・AIソリューションベンダを活用するにあたって、発注者として必要なリテラシーを備える必要がある。導入前に、そのソリューションを使うことで本当に自社の問題が解決できるのかを見極める必要がある。
 ①まずはSMARTフレームワークで、自社の問題を明確化する
 ・Specific(具体的で明解な)
 ・Mesurable(測定可能な)
 ・Achievable(実現可能な)
 ・Related(上位目標と整合性のある)
 ・Time-Bound(時間的制約が明確な)
 ②精度と解釈容易性のどちらが重要なのかを決める
 ・精度が重要:機械学習的アプローチ
 ・解釈容易性が重要:統計学的アプローチ(回帰分析、因果推論)
 ③ソリューションが使っているアルゴリズムを理解する
 ・学習データとして何をどれくらいの量使うのか?非構造化データ?構造化データ?
 ・特徴量はどのように作るのか?自動か?分析担当者のマニュアルか?
 ・ソリューションを導入するために、人間がどこまで設定しないといけないのか?

第4部 ビジネス理解~データ前処理(10)

機械学習手法を理解できていても、以下がずさんだと、適切なモデルは構築できない
・ビジネス上の問題の明確化
・データの前処理

01-02. CRISP-DM

CRISP-DMとは、データ分析にかかる一般的な業務プロセス6個
常に現場(データ分析依頼者)と連携しながら業務プロセスを回していくことが重要、分析者だけで勝手に進めると、「分析としては成功しても、ビジネスとして失敗する」ことに陥りがち
ビジネス判断としては「データ分析を活用しない(コストをかけない)」ことが正しい場合もありうる

①ビジネスを理解する:現場に問題をヒアリングして、仮説を立てる
↓↑試行錯誤が必要
②データを理解する:EDA(探索的データ分析)を行う

③データを準備する:前処理(欠損値処理、ダミー変数化、外れ値除去、特徴量作成、など)を行う、最も時間のかかる工程
↓↑試行錯誤が必要
④モデルを構築する:分析手法(機械学習アルゴリズム)を選択する、ある程度は基準があるため時間はかからない

⑤モデルを評価する:モデルの精度が望ましくない場合、①に戻る
↓→①
⑥モデルを導入する:現場に導入する

03. DX

①関係当事者(経営や現場も含む)で問題を洗い出す
・最初からテクノロジー活用にこだわらない(DXはあくまで手段の一種)
・問題リストの中から筋のよさそうなものをピックアップする
②小さな成功事例を積み上げる
・大きな計画を描いても推進が難しくなるだけ
③活動のハブを作る
・専門人材は少ないため、組織内のリソースを緩く結合させるべき

04. データマネジメント

・データの管理要件を洗い出す:ビジネス上で管理したほうがいいデータ、法令規制上で気を付けて管理すべきデータ、など
・データ管理基盤の設計書は常にアップデートし続ける
・使わなくなったレポートやBIは廃止する

05. CRISP-DM①:ビジネスを理解する

「本質的な問題」を特定するためのステップ
①業界を理解する
②組織のビジネスモデルを理解する
③組織の業務プロセスを理解する
④問題を洗い出す
⑤根本原因に関する仮説を立てる:表層的な問題から本質的な問題を導き出す、検証するのは以降のプロセス

問題への理解が表層的なうちは「AIソリューションを導入すれば解決できるかも?」と漠然と思えていたことが、
「本質的な問題」を深掘りすることで、「機械学習は適していない」と気付ける場合も多い

06. CRISP-DM②:データを理解する

EDA(探索的データ分析)のステップ
①データベースのER図を閲覧し、どのテーブルからデータを取得すればいいか、どのように結合すればいいかを理解する
②各フィールド値の分布を確認する
③各フィールド値の相関関係を確認する
④データの推移を確認する(例:解約率)
⑤欠損値や外れ値を確認する

このプロセスを実施した段階で、「ER図が保守されていない」などのデータマネジメント上の要改善点が出てくることも多い

07. CRISP-DM③:データの前処理

前処理が正しくできていないと、以降のプロセスがうまくいかなくなる
手戻りが大きくなるため、時間をかけて慎重に進めるべき

・表記ゆれの統一
・型変換
・外れ値の除去
・欠損値の処理
・データのグルーピング(集計)
・特徴量エンジニアリング

08. 特徴量エンジニアリング

時系列データから特徴量を作る
・季節
・四半期
・期首/期中/期末
・第N週
・平日/週末
・曜日
・時間帯

特徴量の四則演算により特徴量を作る
・商品サイズ×商品カラー
・ページビュー/訪問回数

カテゴリ特徴量を変換する

クラスタリングにより特徴量を作る

09. カテゴリ型特徴量の変換処理

カテゴリ型特徴量(A/B/C/…)を、数値特徴量に変換する

・One-Hotエンコーディング
・Labelエンコーディング
・Featureエンコーディング
・Frequencyエンコーディング

10. 欠損値処理

欠損値の種類:実データの欠損値はMARであることが多い
・MCAR(完全に無作為な欠損):体重データが欠損している理由は、たまたま体重計が壊れていたから
・MAR(条件付きで無作為な欠損):体重データが欠損している理由は、女性は測定したがらないから
・MNAR(無作為ではない欠損):体重データが欠損している理由は、体重が重い人は測定したがらないから

欠損値の処理方法の種類
・リストワイズ法:欠損値を持つサンプルを削除する、欠損値がMCARの場合は有効(MARの場合はサンプルに偏りが生じてしまう)
・補完法:欠損値に平均値や0などを代入する

実践スキルまとめ

・現場にヒアリングを行う(例:回帰タスクの場合)
 ・何日前までに、以降何日分の予測が提供できれば、現場で活用できるのか?
 ・予測精度の向上が必要なのか?それとも予測の自動化(精度は現状維持)ができるだけでもいいのか?
 ・どこまで精度を向上させれば価値があるのか?(精度を上げるためにどこまでコストをかけられるか)

第5部 モデル構築~現場導入(9)

01. CRISP-DM④:モデルを構築する

CRISP-DMにおいて、③データ前処理と④モデル構築は試行錯誤が必要なプロセスである

モデル構築時の典型的な注意点
・モデルの過学習
・特徴量の多重共線性:特に統計学的アプローチの場合
・不均衡データ

02. 過学習

過学習を防ぐ方法
・バリデーション:学習データを分割して使う
 ・訓練用:学習に使う
 ・検証用:ハイパーパラメータの調整に使う
 ・テスト用:モデルの精度評価に使う
・情報量基準:特徴量の入れすぎで過学習に陥ってしまうことを防ぐ
 ・AIC、BIC、など

03. バリデーション

・ホールドアウト法
・交差検証法(クロスバリデーション法)

時系列データを分割する場合には注意が必要
未来データで学習したモデルで、過去データに対する予測精度をテストしてしまう(リーケージ)と、適切なバリデーションにならない

04. ハイパーパラメータのチューニング

ハイパーパラメータ
・機械学習アルゴリズムにおける可変値
・出力結果の精度を決定づける
・決定木におけるハイパーパラメータの例:分類基準、木の最大深さ、葉の最大数

チューニング方法
・グリッドサーチ
・ランダムサーチ:ハイパーパラメータの組み合わせをランダムに探索的に抽出することを、指定した回数分繰り返し、最適な組み合わせを見つける
・ベイズ最適化

05. 不均衡データの解消

異常発生率1%のプロセスに、全く異常検知しない分類器を導入しても、正解率(Accuracy)を評価指標に使うと、精度99%として評価されてしまう

①アンダーサンプリング
少数派データ群に合わせて、多数派データ群を削除する
全体のサンプルサイズ自体が小さくなってしまうデメリットあり

②オーバーサンプリング
多数派データ群に合わせて、少数派データ群を増やす

③重み付け
少数派データ群の重みを高める

④分類タスクではなく異常検知タスクとして取り扱う
多数派データ群を基に正常空間を作成し、定めた閾値を超えるデータを異常値と判定するようにする

06. CRISP-DM⑤:モデルを評価する

モデル評価のステップ
①バリデーション:既に手持ちのデータを使う
・2021年、2022年、2023年の実績データを持っている場合
 ・2021年と2022年の実績データを訓練用に使ってモデルを構築し
 ・回帰タスクを実行して2023年の予測データを作成し
 ・2023年の実績データをテスト用に使って精度を算出する
②段階的な検証
・作成できたモデルを一部の現場でのみ使う(いきなり全範囲に適用するのは危険)

07. 回帰タスクの評価指標

・MAE(絶対平均誤差):「予測値と実測値の差分」の絶対値
・MSE(平均二乗誤差):「予測値と実測値の差分」の二乗
・RMSE(二乗平均平方根誤差):MSEの平方根
・R2(RSQ、寄与率、決定係数):回帰式の当て嵌まりの良さを0-1で表現する

08. 分類タスク(二値予測器)の評価指標

正解率(Accuracy)
・不均衡データ(データがほぼ正常値である場合など)には使えない
・例えば、クレカの不正利用検知フィルタなどには、適合率や再現率を使う

適合率(Precision)=陽性的中率(PV+)
・「買う」と予測したうち、実際に「買った」人の割合(適合率が高ければ、無駄な販促を避けられる)
・陽性反応が出た人のうち、実際に感染していた人の割合

再現率(Recall)=感度(sensitivity)
・実際に「買った」人のうち、「買う」と予測できた人の割合(再現率が高ければ、潜在購買客の取りこぼしを避けられる)
・真の罹患者のうち、(正しく)陽性と判定された人の割合

F値
・適合率と再現率はトレードオフであるため両者のバランスを取る指標

参考:医学統計用語

・感度と特異度はトレードオフの関係にあり、両方を共に高くすることはできない(閾値を調整することで操作できる)
・スクリーニング検査やがん検査などの場合、真の罹患者を見落としたくないため、過検知してもいいので、感度を高くする。
・確定診断などの場合、非罹患者を確実に排除したい(治療対象したくない)ため、検知漏れしてもいいので、特異度を高くする。

・感度(sensitivity)=真陽性率(TPR):真の罹患者のうち、(正しく)陽性と判定された人の割合。
・特異度(specificity)=真陰性率(TNR):真の非罹患者のうち、(正しく)陰性と判定された人の割合。
・偽陰性率(FNR):真の罹患者のうち、(誤って)陰性と判定された人の割合。1-感度。検知漏れのしやすさ(本当は異常なのに、正常だとみなしてしまう)。
・偽陽性率(FPR):真の非罹患者のうち、(誤って)陽性と判定された人の割合。1-特異度。過検知のしやすさ(本当は正常なのに、異常だとみなしてしまう)。
・陽性的中率(PPV, PV+):陽性と判定された人のうち、真の罹患者の割合(事後確率)。
・陰性的中率(NPV, PV-):陰性と判定された人のうち、真の非罹患者の割合(事後確率)。
・陽性尤度比
・陰性尤度比

09. CRISP-DM⑥:モデルを導入する

いくら高精度な予測器や分類器が作れても、導入時に反対を受ける可能性はある
例えば、機械学習によるターゲティング販促は、目先の売上向上には効果が高いが、長期的な売上向上(新商品における売上向上、ライトユーザからの売上向上)には効果が低い

導入後も、MLOps体制を整えておかないと、すぐに形骸化してしまう
導入直後は業務プロセス全てを自動化せず、マニュアル部分を残しておいた方がよい
業務プロセスを急激に変えることは難しいため、徐々に完全自動化に移行させていくべき

本当に現場がモデル導入に耐えうる態勢・業務プロセスに変化できるのか、実証実験するべき
特に、②データ理解~⑤モデル評価をデータ分析チームのみで進めてきてしまった場合などは、⑥モデル導入の段階で問題が発生する場合が多い

実践スキルまとめ

・実務上は、モデルを複数個作成する。従前のモデルの評価結果と、改善版のモデルの評価結果を比較することで、改善の方向性が合っているかを検討する
・複数の評価指標を使って評価する
・評価指標だけを見るのではなく、実際のデータ分布について、予測値と実測値の差異を確認する(指標ではなく常に分布を確認)

この記事が気に入ったらサポートをしてみませんか?