集計/分析/機械学習の流れ¶
流れ¶
最近pandasやnumpy, sklearnに力入れてたので、それが必要な流れをなにも見ずに書いてみた
書いてみて思ったこと¶
- コンペのようなデータセットが用意されている場合と、自分たちのサービス改善のためだとだいぶ違う
- あとで分解したほうがよさそう
詳細¶
- 目的決定
- なにを解決したいのか
- 定点観測のため(KGIからのKPI)
- 定点観測からの深掘りのための分析(今回の目的)
- レコメンドなどのシステムでも利用(今回の目的とは違う?)
- なにを解決したいのか
- データ用意
- 集計
- どんなデータか/もしくは必要か
- マスタ/トランザクション
- 差分/Dump
- データの提供タイミング
- 自動化してためこめるか
- どのデータと関連がある(結合できる)
- データ量はストレージに対して問題ないか
- 集約するかどうか
- どんなデータか/もしくは必要か
- 分析
- 変数の作成の計画
- 集計
- データ把握
- 尺度の把握(参考書たくさんある)
- 連続
- 0基準等の比例(よく使う
- 間隔(あんまり使ってない
- その他
- 順序/カテゴリ(二値含む
- 連続
- 単変数
- 連続
- ヒストグラム(分布確認
- 箱ひげ図(外れ値ざっくり確認)
- 要約統計量(箱ひげ図で見れない平均をみる/四分位数/min,max,std)
- NAの数
- その他
- カテゴリ種類
- 種類別カウント
- 棒グラフ
- 上記の構成比率
- 100%積み上げ棒グラフなど
- 連続
- 2変数
- 連続
- 散布図行列(重くなければ一気に見てしまう
- 相関係数/相関係数行列ヒートマップ
- その他
- カテゴリ×目的変数の箱ひげ図
- 目的変数がある場合
- 目的変数がカテゴリなら
- 連続とのカテゴリ別ヒストグラム(別々,積み上げ)
- 目的変数が連続なら
- カテゴリとのカテゴリ別箱ひげ図
- 目的変数がカテゴリなら
- 連続
- 多変数
- 散布図の目的カテゴリ別に色分け
- クロス集計
- 行/列それぞれの総数での集計
- 各セルの全体における構成比率
- 行/列単位の構成比率
- 行列のオッズ/オッズ比
- カイ二乗検定
- クロスグラフ
- 集計ではなくクロスしたセルにヒストグラムなど
- 尺度の把握(参考書たくさんある)
- 前処理
- 外れ値除外
- 欠損値除外or埋め
- ダミー変数(kカテゴリ -1個)
- 縦持ち横持ち変換(縦のUnique化 and 説明変数の分解/ダミー変数に似ている)
- 文字列変数の規則
- titanicの名前の例
- ドメイン知識からひねり出す
- 前処理につながる
- 離散化(segmentation ?)
- 連続量身長を大中小の順序に変換,解釈しやすくなることもある
- デシル分析など
- 日付の分解/集約
- 日時
- 時間帯別(0~23,AM/PM,朝昼晩夜)
- 年月日分解
- ある基準からの経過時間
- 初回利用日-会員登録日など(N日後利用)
- 集計最終日-直近の利用日(N日前利用)
- RFMのRecency
- 利用日のUniqueカウント(利用日数)
- 連続量以外でもRFMのFrequncyにする
- 日時
- 正規化(標準化,MinMaxScale,etc.)
- 多重共線性/分散の少なすぎる説明変数の選定と削除
- その他データセットとの結合
- SQLでは複雑になる場合
- DBに格納されていないファイル,異なるDBのデータ
- 時系列系処理
- 移動平均,自己相関など(あんまり知らない
- などなど
- 再度データ把握
- モデル選定
- ここ分布やドメインによっていろいろ変える
- 学習
- 過学習/汎化能力のためのデータ準備
- Cross Validation
- 説明変数用
- ハイパーパラメータ用
- 過学習/汎化能力のためのデータ準備
- 検証
- 係数の重要度
- 施策に活かせるかつコントロールできる変数を探す
- 回帰係数
- 決定木系
- いろんな評価指標
- 回帰
- RMSE
- 分類
- confusion matrixからのnegative/positive/True/Falseによる指標
- 回帰
- 係数の重要度
- 繰り返し
- この流れさえ見失わなければ、大枠ははずさないはず
- この流れに合うAPIを探す
- 評価系が甘い
- 教師なし評価についてまだわかっていない
- NN系はわからない
- 画像/テキスト系もわからない
分析のための考え方¶
- 目標設定
- volume と 割合
- ex. 割合(効果)が高くても、volumeがなければ売上にならない
- 構成比率
- 正規化/標準化
- diff/推移
- 時系列
- 今回集計したものと、前回集計したものを比較
- これも定期的に等間隔で行いデータを増やせば、集計結果を時系列として比較できる
分析/機械学習のための知識¶
- math
- 微分積分
- 線形代数
- 確率
- 組合せ
- 数学かわからないけど、いろいろな距離
- english
- わからなかったらGoogle Translate
- programming
- if,for,iteratorなどの基本
- DataFrameと行列ライブラリ慣れ