見出し画像

友だちPython ep5. さまざまな最適化

はじめに


友だちPython シリーズのご紹介

友だちPython シリーズは、Python の小ネタを短文でお届けします。
小さなエピソードを重ねてPythonと仲良しになれたら、と願ってシリーズ名を付けました。

話題


Pythonによる時系列分析: 予測モデル構築と企業事例

書籍「Pythonによる時系列分析: 予測モデル構築と企業事例」(オーム社)をご紹介いたします。

この書籍は、時系列データの一般的な分析手法から、売上・LTV・マーケティングROI・異常検知といった企業事例に沿ったシナリオまで、幅広く、わかりやすく解説しています。
そして何と言ってもPythonでサクッと動かせます!
Pythonの時系列モデルを試してみたい方、Pythonの経営管理/マーケティング活用をご検討されている方などにおすすめいたします!

この記事は2つの課題に取り組みます。
1つ目は大変悩ましいです。

今回の友だち

■ optuna (オプチュナ)、scipy.optimize(サイパイ・オプティマイズ)
最適化処理を担う精鋭です。

問題の概要

第5章、5.7「広告と販促効果を見える化し最適化するマーケティング・ミックスモデル(スポーツジム)」で次の2点の課題に遭遇しました。
1.3箇所の最適化処理に時間がかかりました。
2.「code 5-130 最適化」でエラーが発生しました。

実行環境
・ノートパソコン(普通のスペック、GPU非搭載)
・Anaconda 環境
・VS code の Jupyter Notebook で実行

問題と対処方法

1.時間のかかる最適化処理
次の3つの処理に時間がかかりました。

① code 5-120 最適なハイパーパラメータを探索し学習(学習データ)
所要時間:88分
主要処理:optuna

② code 5-122 最適なハイパーパラメータを探索し学習(全テータ期間)
所要時間:114分
主要処理:optuna

③ code 5-130 最適化
所要時間:60分
主要処理:scipy.optimize 

なお、書籍未記載のサンプルコードの中では、「振り返り」の最適化処理(scipy.optimize)に 67分 要しました。

回避策は分かりません。。。
(GPUで処理できるかどうか分かりません)

とにかく最適化処理を流しながら、平行して他の作業を進めたり、休憩を取ったりして、何とかやり過ごしました。

時間がかかることを前提にして予定を組み立ててくださいね。


2.「code 5-130 最適化」のエラー
書籍掲載のコードのとおり実行すると、「X_before」が存在しないエラーが発生します。

# code 5-130
# 最適化

# コスト全体
cost_all = X_before.values.ravel().sum()

このコードの前に「X_before」を定義・生成していないことが原因です。

■ 対策

実は、書籍未掲載のコードに秘密が隠されています。

ダウンロードしたサンプルコード、または、Notebook(実行例)サイト)には、「code 5-128 最適化する今後1年間(52週間)のデータフレーム作成」の前段階に、「振り返り(直近1年間(52週間))」が存在します。

サンプルコードより引用(抜粋)

この書籍未掲載のコードの中に「X_before」を定義・生成するコードが含まれているのです。

具体的には、次のコードです。 

term = 52
X_before = X[-term:].copy()

データXの後ろ52レコードをコピーして、X_beforeを生成しています。
この2行を実行して書籍のコードを進めることができます。

せっかくの機会ですので、書籍未掲載のコードも実行して満喫してはいかがでしょう。
この章以外にも、いろんな章で書籍未掲載のコードがあります。
コードを実行することにより、時系列分析の理解をいっそう深められると思います。
Notebook(実行例)サイト)」でサンプルコードと実行例を見ながら、書籍未掲載コードを見つけてみてください。

時系列分析を存分に堪能してください!

おわり

ブログの紹介


noteで3つのシリーズ記事を書いています。
ぜひ覗いていってくださいね!

1.のんびり統計
統計検定2級の問題集を手がかりにして、確率・統計をざっくり掘り下げるブログです。
雑談感覚で大丈夫です。ぜひ覗いていってくださいね。
統計検定2級公式問題集CBT対応版に対応しています。

2.Python機械学習プログラミング実践記
書籍「Python機械学習プログラミング PyTorch & scikit-learn編」を学んだときのさまざまな思いを記事にしました。
この書籍は、scikit-learnとPyTorchの教科書です。
よかったらぜひ、お試しくださいませ。

3.データサイエンスっぽいことを綴る
統計、データ分析、AI、機械学習、Pythonのコラムを不定期に綴っています。
「統計」「Python」「数学とPython」「R」のシリーズが生まれています。

最後までお読みいただきまして、ありがとうございました。

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