線形アルゴリズム
◼️線形回帰モデルによる需要予測
【論点】
・将来とはいつからいつまでの期間とするか?
・どの粒度で販売数を予測するか?
【データの準備】
インプットデータ:商品ごと、日付ごとの様々な情報 → Numbers 各数値、桁ごとの当選状況、日付、曜日ごと)
アウトプットデータ:商品ごと、日付ごとの販売数 → Numbers 当選番号(全体、一桁、十桁、百桁)
【教師あり学習の用語】
目的変数:学習・予測対象とするデータ
特徴量:インプットデータとして定義する、目的変数の特徴を定量化した数値。データ構造としては、インプットデータの各カラムのこと
モデル:インプットである特徴量からアウトプッおである目的変数への変換器
目的関数:特徴量をモデルへ入れた際に算出される予測値と目的変数である実測値の差分
【モデルの精度を高める】
・データ量を増やす
・特徴量を増やす
・モデルを複雑にする
【回帰問題で使える主なモデル】
・線形回帰モデル(単回帰分析、重回帰分析)
→ 特徴量と目的変数の関係性を最もよく表している直線式を求める
・Ridge回帰、Lasso回帰、Elastic NET(線形回帰モデルの派生系モデル)
・決定木
・ランダムフォレスト(XG Boost、Light GBMなどので派生系モデルも多数存在)
・SVM(Support Vector Machine)
。ニューアルネットワーク、ディープラーニング
・時系列モデル(ARモデル、M Aモデル、ARIMAモデル)
(明確にすべきこと)
モデル・・・・(例)単回帰分析
目的関数・・・(例)残差の2乗の合計
パラメーター・・(例)切片・傾き
※重回帰分析は、パラメーターが増えていく
学習によって、選択したモデルが、目的関数を最小化するようなパラメーターを求めることにより、モデルが最適化され、高い精度で予測が可能になる。
◼️精度指標を考える
・そのモデルがどのくらいの精度を持っているか?
精度=予測値と実測値の差分が小さければ小さいほど良い ⇔ ニーズ 手元のデータではなく、新たな未知なるデータにおける精度を知りたい
(RMSEを理解する)
MSE=((実測値・予測値)の2乗の合計)/データ数 RMSE=√MSE
RMESE:予測値と平均値が閉⑦んてきにどの程度の乖離があるかを表現する → 値が0に近づくほど精度が良い
(決定係数を理解する):R2、P -スクエアとも
・目的変数Yの平均値における横線を基準(初期値)とする
・回帰直線とデータ点の残差の2乗の合計は、どれだけ減少しているか?を計測する→決定係数
決定係数= 1ー(回帰分析実施後も残っている残差2乗の合計)/(横線しか引けない時の残差の2乗の合計)
→高ければ(1に近づくほど)高いほど精度が良い
◼️実践
①データの確認
②特徴量を生成する
③問題:ある日において、明日の販売数を予測する
※その前日じてんでは分からないデータを特徴量に含めない。予測の段階では分からない情報量を特徴りょうとして含めてしまうことをデータリケージという。
④学習データとテストデータを決める(9:1,8:2,7:3 くらいで検討)
基本整列法法
- バブルソート
- 単純選択法
- 単純挿入法
整列法の考え方
- 逐次添加法
- 分割統治法
- データ構造の利用
高速な整列アルゴリズム
- クイックソート
- ヒープソート
- マージソート