Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
偏りのある時系列データの分類について
Search
Masato MIWADA
October 19, 2024
Technology
82
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
偏りのある時系列データの分類について
Time series classification on imbalanced data
Masato MIWADA
October 19, 2024
More Decks by Masato MIWADA
See All by Masato MIWADA
画像による脳腫瘍の検出
masato_miwada
0
85
河川流計測における画像解析技術の実用化
masato_miwada
1
74
河川流計測における画像解析技術の実用化
masato_miwada
0
55
慣性センサログの効果的な可視化と分類手法について
masato_miwada
0
60
t-SNE(t分布型確率的近傍埋め込み法)による高次元データの可視化について
masato_miwada
0
92
畳み込みニューラルネットワークによる画像分類について
masato_miwada
0
77
Other Decks in Technology
See All in Technology
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
180
AWS環境のセキュリティ不安を解消した企業事例 ~よくある課題と対策を一挙公開~
asanoharuki
1
270
WEBフロントエンド研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
900
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1k
plamo-3-translateの開発
pfn
PRO
0
240
コンポーネント名には何を含めるべきなのか? / what-should-be-included-in-component-names
airrnot1106
0
230
Power Automateアップデート情報
miyakemito
0
290
AI時代の強いチームの作り方
yuukiyo
23
13k
エンタープライズデータへ安全につなぐ Production-ready なエージェント設計 ― AI × MCP リファレンスアーキテクチャ ― #AIDevDay
cdataj
1
450
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
信頼できるテスティングAIをどう育てるか?
odan611
0
180
歴史から理解するクラウドインフラのしくみ
kizawa2020
1
200
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
230
We Are The Robots
honzajavorek
0
290
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
280
Navigating Weather and Climate Data
rabernat
0
430
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
550
Transcript
偏りのある時系列データ の分類について (Time series classification on imbalanced data) (課題名:オゾンレベルの分類) (ミワダ
マサト) 三和田 将人
お詫び 前回の勉強会(3月7日)で、交差検証(Cross Validation)における評価値(正答 率:ACC)を各Foldにおける正解率の平均として算出していました。しかし、これは 厳密には誤りでした。 参考サイト:データ化学工学研究室(金子研究室)@明治大学 理工学部 応用化学科, "クロスバリデーションにおける注意点のまとめ https://datachemeng.com/cautions_in_cross_validation/#toc3
図の引用元:こちきか, "クロスバリデーション(交差検証), https://gochikika.ntt.com/Learning/cv.html 正しくは 各Foldにおける検証結果を全て足し合 わせてから混合行列を始めとする統計 量を確認する でした。 (理由) 分割数によって、同じサンプル数にならな い状況があるから。
お詫び 図の引用元:Anuganti Suresh, "What is a confusion matrix?", Medium, https://medium.com/analytics-vidhya/what-is-a-confusion-matrix-d1c0f8feda5
実装の参考:Rukshani Somarathna, "Generation of a concatenated Confusion Matrix in cross-validation", Medium, https://medium.com/analytics-vidhya/generation-of-a-concatenated-confusion-matrix-in-cross-validation-912485c4a972 分類する問題によっては、 • Positiveが重要である場合 (例)クレジットカードの審査 → 適合率(Precision) • Negativeが重要である場合 (例)病気の検査 → 再現率(Recall) と、どの結果に注目するかが異なるため。
成果物について • ある時系列で記録された気候の数値から、別時系列におけるオゾンレベルの高低を分類する 学習器(モデル)を作成した。 • 正解率:Cross Validation(CV) = 80.2%、 スコア:Leaders
Board(LB) = 82.1% • コンペにおける成績順位 5位(111人中) • 習得の期間:7日(22時間) • 試作品(精度が出るまで):3日 (8時間) • 現在の成績まで:1日(4時間)
発表の流れについて 1. 時系列データについて 2. 今回の時系列データと問題点について 3. 作成スケジュール 4. 開発環境 5.
作製したモデルについて(モデルの種類、評価) 6. 苦労、実践したこと 7. 今回の振返りと今後について
1.時系列データ(Time Series)について • ある対象について、時間軸に沿って記録された連続的なデータ • 実例として、 ➢ 株価や年間の売上 ➢ ヘルスケアデータ
➢ 気温、気圧 などが挙げられる。 • 時系列データの利用先は ➢ 予測(Forecasting) ➢ 分類(Classification) の2つである 図-1 時系列データの例※ 北川源四郎、「4-4 時系列データ解析」、東京大学 数理・情報教育研究センター、2020、 http://www.mi.u-tokyo.ac.jp/consortium2/pdf/4-4_literacy_level_note.pdfから引用
2.今回の時系列データと問題点について(1) • 出典 ➢引用 Dua, D. and Graff, C. (2019).
UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science. ➢データソース:https://archive.ics.uci.edu/ml/datasets/Ozone+Level+Detection • 内容 ➢73個の特徴量がある時系列データ(説明変数72個、目的変数1個) ➢1267(行)×73(列) 日付 各時刻、最大及 び平均風速 各時刻、最大及 び平均気温 各種Hp面での 気候データ 雷雨になる 可能性の指数 嵐の強さ (指数) 海面気圧 海面気圧の前日 からの変化 降水量 データ型 date float float float float float float float float 数 1 26 26 14 1 1 1 1 1 オゾンレベル bit 1
2.今回の時系列データと問題点について(2) • 問題点(1/2) 欠損値がある。 ← 時系列データは連続であるのが前提なため、補間処理が必要 図-2 欠損値のあるデータ(上)、平均値で補間されたデータ(下) 図-3 データ全体における欠損値の割合(最大9%程度)
2.今回の時系列データと問題点について(-3) • 他の欠損値補間について 図-4.1 元データ 図-4.2 LOCF(Last Observation Carried Forward)法
図-4.3 中央値代入
2.今回の時系列データと問題点について(-4) • 他の欠損値補間について 図-4.1 元データ 図-4.5 スプライン補間 図-4.4 線形補間法
2.今回の時系列データと問題点について(-5) • 他の欠損値補間について 図-4.1 元データ 図-4.7 カルマン平滑化補間 図-4.6 移動平均補間
2.今回の時系列データと問題点について(3) • 問題点(2/2) ➢目的変数の分布に大きな偏りがある。 ← オーバーサンプリング(Over Sampling)を施す。 図-3 目的変数における偏り 偏りの大きなデータで機械学習を実施することの問題
• 数の多い属性(Majority)を予測するモデルが作られる。 • さらに、Majorityを予測するだけで「見た目は」高い精度 が得られてしまう。(汎化性能が低い) オーバーサンプリングについて ⇔ アンダーサンプリング • 数の少ない属性(Minor)をMajorityと同様の数となるよう 水増しする手法である。 • 今回は手始めに基本的な手法である、ランダムオーバー サンプリング(Random Over Sampling)を採用している。 • Random Over Samplingは、Minorからランダムにデータを 選択し、コピーしてサンプル数を増やす手法。過学習を 起こしやすいが、高速に動作する。 必ず学習データに施すこと、(検証データに施さない‼)
4.開発環境 • Python 3.10 • Tensorflow 2.15 • Anaconda3 ➢Python
3.11 ✓matplot lib 3.5 ✓numpy 1.21 ✓Pandas 2.0 ✓Scikit-learn 1.4 ✓imbalanced-learn 0.12 ✓LightGBM 3.3 ➢R 4.3.2 • Google Colab(無課金、T4GPU)× 2 (Linux) • Lenovo 「IdeaPad Flex 5 14ALC7 (2022年製)」 (Windows11 HOME) 演算装置:AMD Ryzen 7 5700U with Radeon Graphics 1.80 GHz ➢Frequency ( Base:1.8GHz, Max 4.3GHz ) ➢Cores : 8, Threads : 16, Cache : 4MB L2 / 8MB L3 ソフトウェア ハードウェア
5.作製したモデルについて (モデルの種類、評価) • 本課題に対し、深層学習(DNN:Deep Neural Network)、サポートベクターマシン(SVC:Support Vector Machine Classifier)及び勾配ブースティング法(Gradient Boosting
Method)の3つでモデ ルを作成した。 • 評価指標として、検証データでの正解率(ACC:Accuracy)、層化K交差検証(K=5)での正解率の 平均(Cross-Validation Accuracy)、コンペサイトの採点で出された正解率(Leader Board)及び順 位を記載している。 CNN 0.990 0.985 0.709 演算時間 120 (Sec) 1 (Sec) 1 (Sec) 4.5 (Hour) DNN SVC GBM ACC 0.846 0.900 0.950 CV 0.802 0.880 0.890 LB 0.818 0.786 0.776 順位 5位 12位 22位
5.作製したモデルについて (モデルの種類、評価) SVC DNN GBM * 縦軸:実際の値、横軸:予測値
6.苦労、実践したこと • 時系列の予測(Forecasting)に関する情報は多いが、分類(Classification)に関する情報 は少ない。 ← 類似案件(時系列分類)の記事を参考にする。 Kaggleの「Credit Card Fraud Detection」(クレジットカードの不正検知)
← "Time-Series Classification"で英語圏のサイトを探索する 英語圏は優良な文献も多いが、情報量が多いので上図に取捨選択しなければならない。 • 欠損値の補間(実装ミスが起こりにくく適切な方法) ← Rとそのライブラリで、欠損値の分布や割合を可視化し、補間手法を検討した。 • 目的変数が大きく偏ったデータを分類するときに使える方法について ← Pythonのライブラリ"Imbalanced-learn"やTensorflowの"dataset"ライブラリで対応。
7.今後の施策(改良点) • 欠損値の補間について → 今回、補間の手法に平均値代入を使った。この方法は基本的なものだが、応用統計学の 分野からは、例えば多重代入法などの、より高精度な補間方法が考案及び実装されてい る。モデルが出来上がったら、こちらを導入して結果がどう変わっていくか検証していきたい。 • オーバーサンプリングの方法について →
今回のオーバーサンプリングはMinorに属するデータをコピーするという、一番単純な方 法だった。この方法は前述のとおり過学習しやすい欠点がある。そして、検証データでは高 い正解率であるモデルほど、反対にコンペでの正答率が低くなっていた。ここから考えられ るのは、与データに対して過学習をしており汎化性能が低くなっているということである。な ので、Minorからデータを合成するSMOTE(Synthetic Minority Over-sampling TEchnique)の 導入から考えている。 オーバーサンプリングの手法をランダムサンプリングからSMOTEに変えて分類(SVC)したが、結果はほぼ変わらず
ご清聴ありがとうございました
参考にした情報源 公式情報 • R 公式ドキュメント(英) ・・・ https://www.r-project.org/ • Tensorflow公式リファレンス(日、英) ・・・
https://www.tensorflow.org/ • Scikit-learn公式ドキュメント(英) ・・・ https://scikit-learn.org/stable/user_guide.html • Imbalanced-leaning 公式ドキュメント(英) ・・・ https://imbalanced-learn.org/stable/index.html ブログなど • Qiita(日) ・・・ https://qiita.com/ • teratail(日) ・・・ https://teratail.com/ • Stack Overflow(日、英) ・・・ https://stackoverflow.com/ • Kaggle(英) ・・・ https://www.kaggle.com/ • Analytics Vidhya(英) ・・・ https://www.analyticsvidhya.com/blog/ • Medium(英) ・・・ https://medium.com/ • GitHub(日、英) ・・・ https://github.com