データサイエンス勉強方針(2023年)
どうも。こんにちは。
ケミカルエンジニアのこーしです。
少し遅くなりましたが、2023年のデータサイエンス勉強方針について書いていきます。
昨年(2022年)は、11月に統計検定1級を受験しましたが、見事撃沈してしまいました。
pythonなど実務の勉強をそっちのけで準備したにもかかわらず、とても残念な結果でした。。。
次回(2023年11月)こそは、統計検定1級に合格したいので、それまでの勉強方針についてまとめておこうと思います。
2023年は、統計検定1級対策で数理統計学を勉強しつつ、実務向けではソフトセンサーや異常検知、そしてpythonによる実装について勉強したいなと考えています。
1.統計検定1級対策(統計数理)
統計検定1級(統計数理)の勉強法・対策については、昨年(2022年)7月から11月まで約5ヶ月間必死に勉強しましたので、ある程度目星はつきました。
数理統計学の教科書を通読し、公式問題集(過去問)を繰り返し解くのみです。
そして、「確率密度関数をひと通り覚えておく」みたいな勉強法ではなく、数理統計学の教科書に載っているような難しめの演習問題にじっくり取り組み深く理解しておくことが大切ですね。
勉強計画を具体的に書くと下記の通りです。
数理統計学(黒木学著)を通読
現代数理統計学(竹村著)を通読+演習問題
現代数理統計学の基礎(久保川著)を通読+演習問題
ここまでやれば、統計検定1級合格は間違いないと思います。
あとは、どこまで計画通りにやりきれるかですね。。
時間的なスケジュールは下記ツイートの通りです。
(11〜1月「数理統計学(黒木学著)」)
①2〜4月「現代数理統計学」通読+演習問題
②5〜7月「現代数理統計学の基礎」通読+演習問題
③8〜11月「統計検定1級公式問題集」8年分+2021,2022年(3周)
ちなみに、昨年統計検定1級対策で使った書籍については、不合格体験談で詳しく書いています。
2.実務向けの学習
実務では、ソフトセンサーと異常検知をpythonで実装したいと考えています。
昨年の計画通りであれば、今頃は実装できているはずなのに、統計検定1級対策に手こずってしまってできてません。
本当に不甲斐ないです。。。
ソフトセンサーと異常検知の学習イメージは昨年の学習方針記事で詳しく記載してます。
2.1 ソフトセンサー
ソフトセンサー入門を手がかりに、ソフトセンサー実装までの課題を下記の通りまとめました。
(1)データ収集
SQLやデータベースの知識を身につけたいです。
ですが、とりあえず社内の専門家に頼ろうと思います。。
(2)データの前処理
①外れ値検出
単変量の外れ値検出については以前勉強しブログにまとめました。
今後は、多変量の外れ値検出についても記事にまとめたいですね。
【例】
局所外れ値因子法(LOF)
多変量統計的プロセス管理(MSPC)
アイソレーションフォレスト(iForest)
One Class SVM
オートエンコーダ(AE)
②ノイズ処理
よく知られているのは、移動平均やSavitzky Goley法(SG法)、主成分分析(PCA)ですね。
特に、SG法について理解し実装できるようになりたいです。
(Pythonでの実装は、SciPy使うだけなので簡単です。)
【参考記事】
Microsoft Excelを用いたケモメトリクス計算(5) -平滑化と数値微分-
③プロセス変数の選択
LASSOやStepwise法、GA(遺伝的アルゴリズム)、NCSC-VS、Borutaなどがあり、特にGAとBorutaを理解し実装できるようになりたいですね。
ステップワイズ法については、以前ブログ記事にまとめました。
④プロセスの動特性の考慮
化学プラントでよく問題になるのは「時間遅れ」ですね。
時間遅れの変数を作るのは簡単ですし、どのくらい遅らせるべきかは、試行錯誤もしくはプロセス知識で決定します。
また、「交互作用項」についても試行錯誤して検証したいなと思います。
こちらもプロセス知識を存分に活かす必要があります。
私はプロセス屋なので、ここが本領発揮の場のような気がします。
(3)モデル構築
①モデリング手法の決定
PLSやガウス過程回帰をよく使いますが、その他のモデルについても色々理解して使いたいですね。
あとは、アンサンブル学習も使いこなせるようになりたいです。
スモールデータ解析と機械学習
ガウス過程と機械学習
作ってわかる! アンサンブル学習アルゴリズム入門
②オーバーフィッティング
モデルの自由度を抑えながらいかに予測精度の高いモデルを作れるかが課題です。
③モデルの解釈
SHAPなど寄与度を算出し、寄与度の正負をプロセス知識と照らし合わせます。
そして、モデルを読み解くことで、目的変数yへの説明変数xの寄与度から対象プロセスの新たな知見を発見したいですね。
④モデルの検証
学習データと検証データにおける予測精度の違いを調査し、モデルの劣化有無などを確認します。
⑤モデルの適用範囲の予測精度
ソフトセンサーを作成する目的に立ち返り、必要とする予測精度とモデルの適用範囲を意識して、必要なデータ範囲を決定します。
必要とする予測精度とモデル適用範囲を意識したパフォーマンス管理ダッシュボードを作成したいです。
(4)モデル運用
①モデルの劣化
該当モデルのモデル劣化原因を突き詰め、適切な適応型モデルを当てはめたいと考えています。
ちなみに、適応型モデルとは、最新データを使ってリアルタイムにモデルを作り直して予測するモデルのことです。
モデル劣化原因の究明には、プロセス知識が活かされますね。
②モデルのメンテナンス
③データベース管理
前述の通り、データベースについても学習しないといけません。。
また、適応型モデルでは、新しいデータを得る毎にモデルを作り直すため、安定したデータが一定期間続いた後、急にプロセスが変動する場合にモデルが追随してくれない可能性があります。
よって、モデルを作り直す際に使用するデータを適切に管理しないといけません。
④異常値検出
適応型モデルを使用する場合は、異常値を取り込んでモデルを作成してしまう可能性があるため、リアルタイムで異常値検出を行い異常値を取り除いてやる必要があります。
⑤効率的なプロセス管理
作成したソフトセンサーをモデル予測制御に適用することで、効率的な運転が可能になります。
その他、モデルを逆解析して品質を安定化させたりしたいですね。
化学・化学工学のための実践データサイエンス Pythonによるデータ解析・機械学習
【参考書籍(予定)】
①ソフトセンサー入門(再読)
②スモールデータ解析と機械学習(再読)
③ガウス過程と機械学習
④作ってわかる! アンサンブル学習アルゴリズム入門
⑤機械学習を解釈する技術
⑥化学のためのPythonによるデータ解析・機械学習入門(再読)
⑦化学・化学工学のための実践データサイエンス Pythonによるデータ解析・機械学習
2.2 異常検知
設備トラブルを未然に防止するため、設備の異常検知にも取り組みたいです。
ソフトセンサーに比べて、機械学習、深層学習の色合いが濃くなるので、そちらの勉強も進めていきたいです。
例えば、下記4冊を読んでいきたいです。
①Pythonによる異常検知(再読)
②時系列解析 (Advanced Python)
③入門 機械学習による異常検知―Rによる実践ガイド
④異常検知と変化検知 (機械学習プロフェッショナルシリーズ)
こちらもソフトセンサーと同様、Pythonでダッシュボードを作成して管理出来るようにしたいですね。
2.3 Python実装(Plotly、Dash、streamlitなど)
データの前処理からソフトセンサーのモデル構築、そしてモデルの運用までPythonで行います。
世の中には色んなツールがあり、ソフトセンサー実装まで強力にサポートしてくれますが、pythonを使った方が手間がかかる分自由が利いて作り込み・メンテナンスしやすい印象です。
また、Pythonでのインタラクティブなダッシュボードの作成方法についてマスターしたいと思います。
とりあえず、下記Udemy講座を受けてダッシュボードを作成してみます。
3.まとめ
とりあえず、今年1年の学習指針を仮決めしました。
あとは実践しながら修正していくのみですね。
もし時間があれば、勉強記録についてもnoteで発信していこうかなと思ってます!
過去にはこんな感じで勉強記録書いてました。