「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>ビジネス インテリジェンス(BI)]] --CRISP-DM --[[Excel>データマイニング(DM)- Excel]] --[[KNIME>データマイニング(DM)- KNIME]] --[[Python>データマイニング(DM)- Python]] --[[Python - DL>データマイニング(DM)- Python - DL]] --[[DataSet>データマイニング(DM)- DataSet]] *目次 [#pf800781] #contents *概要 [#c47b2db0] CRISP-DM:クリスプ ディー エム的な。 -データマイニングの業界横断的な標準プロセス -専門家が一般的に使用するアプローチを説明する~ オープンスタンダードなプロセスモデル -2015年、IBMは、CRISP-DMを改良および拡張する、~ ASUM-DMと呼ばれる新しい方法論をリリースした。 *詳細 [#ndecbaff] CRISP-DMは、データマイニングのプロセスを6つの主要なフェーズに分割する。 **ビジネスの理解 [#f6ab2606] Business Understanding -ビジネスの背景を理解し、~ ビジネス上の問題点、課題を明確にする。 -そして、 --何を分析して何を解決したいのかを検討し、 --分析プロジェクトの目標を決める。 -[[データの理解>#m9ad14ec]]と行き来する。 **データの理解 [#m9ad14ec] Data Under Standing -[[ビジネスの理解>#f6ab2606]]と行き来する。 -データの内容を理解し、 --分析の目的に合ったものになっているか、 --余分なデータが入っていないか >などを確認する。 -[[特徴選択と特徴量エンジニアリング>機械学習(machine learning)#s2dc3704]]の一部。 ***データソース、サイズ、収集方法 [#s49df4b5] -データソース -サイズ -収集方法 ***項目の情報の確認(名称、意味、型) [#xad17db0] 項目の -名称 -意味 -型 ***データの調査 [#eba08b48] -[[グラフ、ヒストグラムによる可視化>データ分析#v5084e84]] -[[データの検査(統計量、代表値)>データ分析#j6ea2557]]~ --分布の中心~ [[平均値、中央値、最頻値>データ分析#xcffe56e]] --分布のばらつき ---[[四分位・パーセンタイル・箱ひげ図>データ分析#o1f7e894]] ---[[分散、標準偏差、分布の形>統計解析#taf4df67]] --相関関係 ---[[相関係数の計算>統計解析#bad01586]]([[相関係数行列のヒートマップ>Pandas#w67534e5]] ---[[散布図で可視化>統計解析#ff177fed]]([[散布図行列>Matplotlib#a41dcf52]] ***データの品質の検証 [#y802c435] -外れ値や欠損値 --エラー~ 入力ミス --外れ値 ---入力ミス、サバ読み、単位の誤り ---[[外れ値検出のアプローチ、アルゴリズム>#e5a1464b]] --欠損値~ 未記入欄 ---発生メカニズム~ ・MCAR(Missing Completely At Random)~ 欠損が完全にランダムに発生しており特別な偏りが存在しない。~ ・MAR(Missing At Random)~ ・他の特徴量に影響を受けて欠損が発生している。~ ・例:高齢者の多くは収入がない。~ ・MNAR(Missing Not At Random)~ ・自身の特徴量に影響を受けて欠損(に特別な偏り)が発生している。~ ・例:収入が低ければ低いほど自分の収入を報告しない。~ ---欠損データの分類~ ・無視可能(MCAR、MAR~ ・無視不可能(MNAR ---[[データのクリーニング>#n77ec88f]]~ ・MCAR:レコードの除去~ ・MAR :欠損値の補完~ ・MNAR:方法を変えてデータを取り直すことくらい。 -不均衡データ~ 予測したい事象(正例)が非常に少ないデータ --正例・負例の割合や件数を把握する。 --不均衡な場合、特別な対応が必要となる。 ---[[データの選択(アンダーサンプリング、オーバーサンプリング>#u491320f]] ---アルゴリズムの変更(アンダーバギング、重み付け、異常検知問題として扱う ***データの要約 [#e5a1464b] -外れ値検出のアプローチ、アルゴリズム --外れ値検出のアプローチ ---統計ベース(統計的基準)~ ・平均値から±2標準偏差以上離れた値~ ・外れ値検定(スミルノフ=グラブス検定)~ ・可視化(一変量、二変量で使用する[[図表>統計解析#ff177fed]]が異なる)~ ・一変量:分布観察~ ・二変量:関係観察 ---ルールベース(経験的基準)~ ・システム観点~ ・ドメイン観点~ 統計的基準から外れ値と判断されても、~ 経験的に意味がある値は外れ値としない。 --外れ値検出のアルゴリズム ---k-NN(k-Nearest Neighbor) ---LOF(Local Outlier Factor) ---ホテリング理論 -一変量要約 |>|||>|統計量|可視化|h |~|~|~|分布の中心|分布のばらつき|分布の形状|h |[[尺度>データ分析#d4515f11]]|質的|名義|[[最頻値>データ分析#j6ea2557]]|カテゴリ数|棒グラフ、円グラフ| |~|~|順序|[[最頻値、中央値>データ分析#j6ea2557]]|範囲|[[ヒストグラム>統計解析#pa9def8e]]| |~|量的|間隔|[[平均値、中央値、最頻値>データ分析#j6ea2557]]|[[四分位範囲>データ分析#o1f7e894]]、[[分散、標準偏差>統計解析#taf4df67]]|~| |~|~|比率|~|~|~| --エラーチェック~ エラー入力がないかをチェックする。 --分布観察(で使用する[[図表>統計解析#ff177fed]]~ 10カテゴリのうち5カテゴリの合計が5%に満たない場合、~ 5カテゴリを「その他」に集約し、6カテゴリにする。 --外れ値定義 ---一変量要約からの外れ値定義 ---外れ値がある場合、[[クリーニング>#n77ec88f]]が必要となる。 -二変量要約 |||統計量|可視化|h |~|~|関係の強さ|分布の形状|h |[[尺度>データ分析#d4515f11]]|質的×質的|[[X^2値>統計解析#d9b76532]]|棒グラフ| |~|量的×量的 |[[相関係数>統計解析#bad01586]]|散布図| |~|量的×質的 |[[F値>統計解析#l1fbf154]]|円グラフ、棒グラフ、箱ひげ図、散布図| --エラーチェック ---エラー入力がないかをチェックする。 ---二変量ではエラーの関連チェックも必要になる。 --関係観察(で使用する[[図表>統計解析#ff177fed]]~ 変数の組合せを要約することにより、~ 因果関係、相関関係とその程度を確認できる。 --外れ値定義 ---二変量要約からの外れ値定義 ---外れ値がある場合、[[クリーニング>#n77ec88f]]が必要となる。 **データの準備 [#a6aa2de1] Data Preparation -[[データの理解>#m9ad14ec]]で確認した内容にあわせてデータを --準備し、 --加工する。 -[[特徴選択と特徴量エンジニアリング>機械学習(machine learning)#s2dc3704]]の一部。 ***データの選択(データセット化) [#u491320f] -[[データの品質の検証>#y802c435]]の結果からデータを選択。 -[[重要度や相関を見ながら>#eba08b48]]、[[特徴選択>機械学習(machine learning)#s2dc3704]]。 -データが莫大な場合、サンプリングの仕様を検討~ ([[不均衡データに対するサンプリング>機械学習(machine learning)#m168d4ea]]) -学習用と検証用のデータセットに分割~ (コレはシステムレベル。プログラムレベルは[[コチラ>#o1f41712]]。) -OUTPUT:選択または除外の理由 ***データの取得 [#kb874b66] -データ・アクセス権限をもらう -様々なデータソースから集約 -ETLで分析し易い形式に変換 ***データのクリーニング [#n77ec88f] 選択データセットの品質向上、データ補完など。 -欠損値~ を補完値で置換またはレコード除去 --レコード除去 ---リストワイズ削除法~ 欠損データを含む行・列をすべて削除する手法 ---ペアワイズ削除法~ 欠損データの少ない列を残し、そこから欠損している行のみを削除する手法 --補完値で置換~ 欠損値レコードを削除するとデータが残らない場合 ---単一代入量~ 特定の単一の値を代入する手法~ ・確定的代入法~ ・平均値代入法~ 平均値で補完(百害あって一利なし~ ・比例代入法~ ・切片のない単回帰分析の構造をしたモデルを用いて欠測値を予測~ ・相関が無い場合、適切な補完にならない~ ・確定的回帰代入法~ ・回帰モデルを作成し、欠測値を予測~ ・相関が無い場合、適切な補完にならない~ ・ホットデック法~ 類似するレコードの値で補完する手法だが、作業が煩雑、~ また欠損データが多い場合には類似データの割り出しが難しい。~ ・確率的代入法~ ・確率的回帰代入法~ ・誤差項を追加した回帰モデルを作成し、欠測値を予測することで補完~ ・確定的回帰代入法で損なわれたデータのばらつきの表現を解消 ---多重代入法~ 多重代入法とは、1つの欠損データに対し、複数の値を代入する手法~ ・EMアルゴリズムによる補完~ ・マルコフ連鎖モンテカルロ法 -外れ値、異常値~ 訂正(置換)またはレコード除去 -OUTPUT:クリーニングレポート ***データの構築 [#u1b55c84] -単一属性変換~ データから新たな派生項目(集計、平均、カテゴリデータ)を作成 --特徴量を算出 ---平均値や差 ---例:IBM値 --値の範囲: ---値を10%ずつに分ける ---例:年齢を10代、20代、30代...に変換 --意味のある分岐点: ---xx卒 ---例:15歳(中卒)、18歳(高卒)、22歳(大卒) --その他 ---数値属性の単位を合わせる ---カテゴリデータを数値データに変換 -数値データ以外~ 文字列に対するテキストマイニング、エンリッチメント ***データの統合 [#p9c80b9d] -複数テーブルの結合 -フォーマット変換~ --カテゴリを列に展開(0・1化)など。~ 順序関係のないカテゴリデータの単一属性変換。 **(PG上ある) [#uf8e839a] ***X、Y分割 [#see28a6b] -X:説明変数 -Y:目的変数 ※ ≒ [[特徴選択>機械学習(machine learning)#s2dc3704]] ***標準化・正規化 [#v9d19242] -標準化 --実測値を平均値0、標準偏差1の分布に置き換えるスケール変換 --正規分布に近い実測値は標準化(Z変換とも言う) 標準化(Z変換) = (実測値 - 平均値) / 標準偏差 -正規化 --実測値を[0,1]の範囲に実測値を置き換えるスケール変換 --その他の分布は正規化(標準偏差が重要な要因になる場合、適さない事がある) 正規化 = (実測値 - 最小値) / (最大値 - 最小値) -[[Pythonでの実装>データマイニング(DM)- Python#u893f8ae]] ***学習・テストデータの分割 [#o1f41712] -[[システムレベル>#u491320f]]に対するプログラムレベル -CRISP-DM的にはこの位置に書かれていないが、実際に、~ Pythonなどのプログラムの中では、この位置での処理になる。 -技法 --[[ホールド・アウト法>データマイニング(DM)- Python#u893f8ae]] ---訓練 / テストでデータを2つに分け、訓練データのみを学習用にする。 ---データの割合は、訓練:テスト = 9:1 とか 8:2 とか 7:3 が多い。 --[[k分割交差検証法(k-fold Cross-Validation)>データマイニング(DM)- Python#p41a0a83]] ---訓練 / テストでデータを複数パターン分割して学習し、評価%%・推定%%で平均を利用 ---k分割 & xEpochで 1 学習 = k * x Epoch、ホールド・アウト法よりも高い信頼性評価ができる。 ---選択問題的には~ ・すべてのデータを「学習 / 検証」データとして使用する。~ ・訓練データ部は重複するが、検証データは重複しない。 ---回帰の場合:k分割交差検証法(k-fold Cross-Validation) ---分類の場合:層化k分割交差検証法(Stratified k-fold Cross-Validation) ---※ 「層化」は、分類問題向けで目的変数(各クラス)の割合が等しくなるように分割。 --ハイパーパラメータのチューニング用に検証データを追加し、~ 訓練、検証、テストの3つのデータに分割するケースもある。 **モデリング [#k119a53e] Modeling -モデル ≒ [[人工知能(AI)の機械学習モデル>人工知能(AI)#kdac09d2]] -分析に適したモデリング手法~ 「予測(分類・回帰)」を選択し、 -以下のような作業をする。 --[[機械学習の実行(モデル構築)>機械学習(machine learning)#za50e7d8]] --[[Auto MLで自動化される範囲>機械学習(machine learning)#h3e39448]] >※ [[データの準備>#a6aa2de1]]と被る部分も。 ***モデル概要 [#k83d9162] 色々な分類方法がある。 -目的別の分類 --データの特徴や構造を捉えたい。 --予測したい。 ---分類したい。 ---回帰したい。 --その他 ---レコメンド ---テキスト分析 ---画像分類 -理論別の分類 --推測統計 --ベイズ統計 --深層学習 --その他~ ・~ ・~ ・~ -リンク --[[回帰分析>統計解析#xc0279dd]] --[[決定木分析>統計解析#lcaf7a28]] --[[主成分分析>統計解析#f800acad]] --[[ニューラルネットワーク]] --[[ロジスティック回帰>統計解析#ge055200]] --[[クラスタ分析>統計解析#df844c06]] --[[アソシエーション分析>データ解析#wec1e143]] ***モデル選定 [#bd26c5b1] [[SaaSリファレンスの例>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Machine%20Learning%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%83%BB%E3%83%A2%E3%83%87%E3%83%AB#dbc5a3dc]] ***[[Excelの手順>データマイニング(DM)- Excel]] [#fe79807f] -[[単回帰分析>データマイニング(DM)- Excel#xdad39b9]] -[[重回帰分析>データマイニング(DM)- Excel#w3d2aa1a]] -[[決定木分析>データマイニング(DM)- Excel#s7f73298]] -[[ロジスティック回帰分析>データマイニング(DM)- Excel#ffa2eaef]] -[[主成分分析>データマイニング(DM)- Excel#ma4701c2]] -[[クラスタ分析>データマイニング(DM)- Excel#j9d3b049]] ***[[KNIMEの手順>データマイニング(DM)- KNIME]] [#ref00575] -[[回帰分析>データマイニング(DM)- KNIME#zaaa118d]] -[[決定木分析>データマイニング(DM)- KNIME#y04dd96f]] -[[主成分分析>データマイニング(DM)- KNIME#pec69f67]] -[[ニューラルネットワーク>データマイニング(DM)- KNIME#i0d32be1]] -[[ロジスティック回帰分析>データマイニング(DM)- KNIME#eda5bdce]] -[[クラスタ分析>データマイニング(DM)- KNIME#b22dfd62]] -[[アソシエーション分析>データマイニング(DM)- KNIME#p7740437]] ***[[Pythonの手順>データマイニング(DM)- Python]] [#h3d1c1fa] -[[単回帰分析>データマイニング(DM)- Python#i6f0734b]] -[[重回帰分析>データマイニング(DM)- Python#aad4af67]] -[[多項式回帰>データマイニング(DM)- Python#sb08c3b8]] -[[正則化回帰>データマイニング(DM)- Python#y118b20c]] -[[単純パーセプトロン線形分類器>データマイニング(DM)- Python#gc1a3d04]] -[[ロジスティック回帰分析>データマイニング(DM)- Python#we38b247]] -[[サポートベクターマシン分類器>データマイニング(DM)- Python#r0bad011]] -[[決定木分析>データマイニング(DM)- Python#abcf5051]] -[[主成分分析>データマイニング(DM)- Python#rb8d508f]] -[[クラスタ分析>データマイニング(DM)- Python#ie416797]] -[[自然言語処理>データマイニング(DM)- Python#rf012a00]] **評価 [#uf3bb195] Evaluation -モデルの評価ではなく、ビジネス目標を満たすかの評価。 -分析プロジェクトがビジネス目標を達成しているか評価する。 -問題があった場合は、[[ビジネスの理解>#f6ab2606]]フェーズに戻る。 -また、[[上記のモデル>#k119a53e]]に --依存した[[モデルの評価手法>#i3d85f2b]]と、 --非依存の[[精度の評価手法>#uf759972]]が >ある。 ***モデルの評価 [#i3d85f2b] モデルの評価手法は、モデルのアルゴリズムに依存するので、モデルによって異なる。 -回帰分析 --[[回帰係数、偏回帰係数>統計解析#we736db5]] --[[相関係数>統計解析#bad01586]]、[[決定係数(R2乗値)>統計解析#xded7c42]] --[[自由度調整済み決定係数(R2乗値)>データマイニング(DM)- Python#aad4af67]] --オッズ比([[ロジスティック回帰分析>統計解析#ge055200]] --可視化(3変数まで ---回帰直線(2変数、[[単回帰>統計解析#s616f38f]] ---回帰平面(3変数、[[重回帰>統計解析#yb74e330]] --残差プロット([[重回帰>統計解析#yb74e330]]) ---予測の外れ方の傾向を視覚的に掴む手法 ---残差データを[[散布図にプロット>Matplotlib#p8bdbbdb]]。~ ・4次元以上になると可視化ができないが、残差なら平面で観察できる。~ ・作成方法~ ・目的変数の推論値と実測値を使用して散布図を作成する。~ ・X軸は目的変数の推論値、Y軸は目的変数の推論値と実測値の残差。 ---データの問題、モデルの問題を見つける~ ・データの問題:外れ値、偏り、傾向~ ・外れ値:残差の外れ値、説明変数の外れ値を確認して除外~ ・偏り:対応する説明変数のヒストグラムを確認~ ・傾向:右肩上がり・下がりの傾向があったら目的変数を[[対数変換>機械学習(machine learning)#g620e73a]]~ ・モデルの問題~ 曲線分布の傾向があったら多項式回帰など非線形を導入する。 --... -分類器 --可視化(3変数まで ---決定境界の可視化(2D ---決定境界の可視化(3D --... -クラスタリング --可視化(3変数まで ---クラスタリングの可視化(2D ---クラスタリングの可視化(3D --アルゴリズム毎 ---k-means法:エルボー法、シルエット分析 ---... -... ***精度の評価 [#uf759972] 精度の評価手法は、実行結果から評価するのでモデルに非依存(目的変数の種類によって異なる)。 目的変数が、 -量的変数の場合 --平均絶対誤差(MAE:Mean Absolute Error) ---誤差の平均の大きさを直感的に見る相対指標 ---誤差の絶対値の総和をデータ数で割った値(=平均値) n = 1/n Σ|ti-yi| i=1 --平均二乗誤差(MSE:Mean Squared Error) ---誤差の平均の大きさを見る指標 ---誤差の二乗値の総和をデータ数で割った値(=平均値) n = 1/n Σ(ti-yi)^2 i=1 以降、日本語の並びがなんか資料によっていろいろ違う(笑) --以降、日本語の並びがなんか資料によっていろいろ違う(笑) --平均二乗平方根誤差(RMSE:Root Mean Squared Error) ---平均二乗誤差(MSE)の平方根 ---誤差の標準偏差(平均二乗誤差の平方根で、誤差の平均の大きさを直感的に見る相対指標) ---(目的変数の)推論値の誤差の標準偏差が、実測値の標準偏差と比較して、充分小さいか? RMSE = √MSE --対数誤差関数 ---平均二乗対数誤差(MSLE:Mean Squared Logarithmic Error) n = 1/n Σ(log(yi+1)-log(ti+1))^2 i=1 ---平均二乗平方根対数誤差(RMSLE:Root Mean Squared Logarithmic Error) RMSE = √MSLE --その他 ---MSD : Mean Signed Difference ---MAPE : Mean Absolute Percentage Error ---RMSPE : Root Mean Squared Percentage Error -質的変数の場合 --損失関数の場合、 ---交差[[エントロピー>機械学習の理論#g9e50597]]誤差 K = -Σ tk log yk k=1 ---カテゴリ交差[[エントロピー>機械学習の理論#g9e50597]]誤差 n m = -Σ Σ ti,j log yi,j i=1 j=1 --[[エラーのタイプ(混同行列)>AIプロジェクトのマネジメント#a6b82222]]による指標 |#ref(タイトルなし.png,left,nowrap,混同行列)| |指標|計算方法|説明文|h |accuracy(正解率)|= (TP + TN) / (TP + TN + FP + FN)&br;=(真陽性 + 真陰性)/(真陽性 + 真陰性 + 偽陽性 + 偽陰性)&br;= 正解数 / 検査数|検査の正解率| |precision(感度(再現率)、陽性反応的中率)|= (TP) / (TP + FP)&br;= 真陽性 /(真陽性 + 偽陽性)&br;= 真陽性 / 検査結果が陽性|陽性反応(予測)の的中率(正確性)| |(陰性反応的中率)|= (TN) / (TN + FN)&br;= 真陰性 /(真陰性 + 偽陰性)&br;= 真陰性 / 検査結果が陰性|陰性反応(予測)の的中率(正確性)| |recall(精度(適合率))|= (TP) / (TP + FN)&br;= 真陽性 /(真陽性 + 偽陰性)&br;= 真陽性 / 実際に陽性|陽性を正しく陽性と予測する(陽性を取りこぼさない)確率| |specificity(特異度)|= (TN) / (FP + TN)&br;= 真陰性 /(真陰性 + 偽陽性)&br;= 真陰性 / 実際に陰性|陰性を正しく陰性と予測する確率| |f1-score(F値)|= (2 * precision * recall) / (precision + recall)|ハックされ難い指標| ※ ハックとは実値異常(or 正常)が99%なら、予測値全部異常(or 正常)でaccuracy = 99%的な話。~ ※ テスト・エンジニア、セキュリエィ・エンジニア的に過検知(specificity)を許容して、誤検知(precision、recall)を減らす方向の努力が多い。 --ROC曲線とAUC~ ROC曲線(receiver operating characteristic curve)およびAUC(area under) ---正解率などとは異なった観点でモデルの性能を評価する。 ---[[ロジスティック回帰分析>統計解析#ge055200]]の2クラス分類などは出力自体は確率で表現されている。~ ・基本的には閾値としてモデルの出力を正例か負例かに分類する。~ ・確率の閾値を0.3や0.7などに変えることによって予測結果も変化する。 ---閾値0-1間で予測の当たり外れどのように変化していくのかを表したものがROC曲線~ ・横軸にFPR、縦軸にTPRを取り、閾値0-1間に変化させていった際の両者の値をプロット~ ・FPR = TP / (TP + FN)~ ・TPR = FP / (FP + TN)~ ・この曲線の形はモデルの性能によって大きく変化し、~ ・もし全く予測ができないなら、ROC曲線は右下から左上の対角線になる。~ ・もし完全に予測することができるならば、ROC方形の左上2辺と一致する。~ ・ROC曲線は、上記の対角線と左上2辺の間の、対角線の左上を通過する曲線になる。~ ・ROC曲線より下部の面積のことをAUCと呼ぶ。~ ・AUCが1に近いほどモデル性能が高いことを表す。~ ・視覚的だけなく、数値としてもモデル性能を評価できる。 ***精度と説明力 [#e5a7f1fc] -[[精度と説明力の関係>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Machine%20Learning%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%83%BB%E3%83%A2%E3%83%87%E3%83%AB#d762e31b]] -精度比較 --[[決定木>統計解析#lcaf7a28]]~ 矩形領域を複数設定して判別を行うため、~ [[ニューラルネットワーク]]同様に高精度のモデルが得られることが多い。 --[[ニューラルネットワーク]] ---判別曲線(面)で非線形の分布や外れ値によく対応する。 ---[[(一般化)線形モデル>統計解析#s24982db]]と比較して精度が高くなる場合が多い。 -説明力比較 --[[(一般化)線形モデル>統計解析#s24982db]]~ 感度分析で影響度が解る。 --[[ニューラルネットワーク]]~ 明確な説明が難しい。 --[[決定木>統計解析#lcaf7a28]]~ 高い説明力を持つ。 ---特徴量の重要度を算出 ---明確な分岐条件を出力 -特定のデータの周辺に着目し(≒ 局所的な説明ツール)、~ 単純なモデルによる近似を行い、その判断根拠を解釈・可視化するツールで、~ 機械学習の線形モデルやSVM、アンサンブルツリー、他の微分不可能モデル、~ 深層学習(DNN/CNN/RNN)ブラックボックス・モデルにも適用可能 --LIME:Local Interpretable Model-agnostic Explainations~ 決定木のアンサンブル学習器、ニューラルネットワークなど複雑でブラック・ボックスなモデルを~ 特定の入力データに対する予測について、単純で挙動を解釈可能し易い線形回帰モデルで近似して~ 特徴量の寄与度を測ることでモデルの解釈し説明を行う。~ ---表形式データ:「どの変数が予測に効いたのか」 ---画像データ:「画像のどの部分が予測に効いたのか」 --SHAP:SHapley Additive exPlanations~ ---学習済みモデルfを各変数の寄与が説明し易い簡単な線形モデルで近似し予測結果を特徴量の間に分配するイメージ~ (個別の予想結果に対して「それぞれの特徴量が予測にどれくらい影響を与えたのか」を算出する) ---原理は協力ゲーム理論におけるShapley値(シャープレイ値)の応用で、~ 「各特徴量」が「(ゲームにおける)プレイヤー」、「モデルの予測値」が「報酬」に相当、~ 各特徴量に分配された報酬の大きさ(= 各プレイヤーの寄与の大きさ)を求めるアプローチ ---説明可能な近似モデルに対して求める、以下の3つの条件(Local Accuracy、Missingness 、Consistency)~ ・Local Accuracy:学習済みモデルと近似モデルの結果が一致しなければならないと言う性質~ ・Missingness:モデルの予測に使用されなかった特徴量の寄与は「0」となると言う性質です。~ ・Consistency:ある特徴量iを、除いた際の影響の大小の関係性と、寄与の大小の関係性を保つという性質です。 --... ---[[Grad-CAM>E資格:試験対策#a13c4db4]]~ CNN用、ヒートマップを作成 ---Attention~ ニューラルネットワーク ---feature importance、partial dependence~ ランダムフォレスト -モデルの選択と情報量~ 「モデルの複雑さと予測精度バランス」を考える。 --オッカムの剃刀に従うのが望ましい~ 「ある事柄を説明するためには、必要以上に多くを仮定するべきでない」という指針 --赤池情報量規準(Akaike's Information Criterion、AIC)~ 解きたいタスクに対して実際にモデルをどれくらい複雑にすれば良いかの指標~ 説明変数が少ないほど小さい値になり、そのようなモデルがよいモデルとされる。 ---Lはモデルの最大尤度 ---kは自由パラメタ(説明変数)数 AIC = -2 ln L + 2k **展開 [#a3e42c76] Deployment [[PMP]]で言う[[最終プロダクト・サービス・所産の移管>PMP:終結#af5c64e4]]で、~ -目標を達成していれば、 --最終プロダクト・サービス・所産をステークホルダーに展開し、 --出力結果を意思決定(もしくは現場の業務)で活用する。 -目標を達成していなければ、~ 前工程に戻ることを繰り返し、精度目標の達成をめざす。 ***報告書 [#qc9964dd] 開発 / 活用 / 運用の経験の文書化 -ビジネスの理解 -データの理解 -データの準備 -モデリング -評価~ ***システム [#a8c78f95] 分析プロセスを今後も繰り返す場合はシステム化を検討する。 ***運用の示唆 [#nf9176d9] -継続的改善が重要 -モニタリング・メンテナンス計画 -必要に応じてプロジェクトを見直す。 [[MLOps>機械学習(machine learning)#s81c0338]]など、追加学習などを迅速に行なってデプロイするプラクティスがある。 *参考 [#m71dac2b] -Cross-industry standard process for data mining - Wikipedia~ https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining -データ分析プロセスの「CRISP-DM」をデータサイエンティストが解説!|スタビジ~ https://toukei-lab.com/crisp-dm -データ分析プロセス『CRISP-DM』とは | DevelopersIO~ https://dev.classmethod.jp/articles/data-analysis-crisp-dm/