---
title: 偏りのある時系列データ の分類について
tags:  #time series #deep learning  
author: [Masato MIWADA](https://www.docswell.com/user/masato_miwada)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/37KD862LED.jpg?width=480
description: 偏りのある時系列データ の分類について by Masato MIWADA
published: October 20, 24
canonical: https://www.docswell.com/s/masato_miwada/5WWVE8-2024-10-20-115433
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/37KD862LED.jpg)

偏りのある時系列データ
の分類について
（Time series classification on imbalanced data）
（課題名：オゾンレベルの分類）
（ミワダ マサト）
三和田 将人


# Page. 2

![Page Image](https://bcdn.docswell.com/page/LJ3R2646E5.jpg)

お詫び
前回の勉強会（3月7日）で、交差検証（Cross Validation）における評価値（正答
率：ACC）を各Foldにおける正解率の平均として算出していました。しかし、これは
厳密には誤りでした。
正しくは
各Foldにおける検証結果を全て足し合
わせてから混合行列を始めとする統計
量を確認する
でした。
（理由）
分割数によって、同じサンプル数にならな
い状況があるから。
参考サイト：データ化学工学研究室(金子研究室)＠明治大学 理工学部 応用化学科, &quot;クロスバリデーションにおける注意点のまとめ
https://datachemeng.com/cautions_in_cross_validation/#toc3
図の引用元：こちきか, &quot;クロスバリデーション（交差検証）, https://gochikika.ntt.com/Learning/cv.html


# Page. 3

![Page Image](https://bcdn.docswell.com/page/8JDYZVQMJG.jpg)

お詫び
分類する問題によっては、
• Positiveが重要である場合
（例）クレジットカードの審査
→ 適合率（Precision）
• Negativeが重要である場合
（例）病気の検査
→ 再現率（Recall）
と、どの結果に注目するかが異なるため。
図の引用元：Anuganti Suresh, &quot;What is a confusion matrix?&quot;, Medium,
https://medium.com/analytics-vidhya/what-is-a-confusion-matrix-d1c0f8feda5
実装の参考：Rukshani Somarathna, &quot;Generation of a concatenated Confusion Matrix in cross-validation&quot;, Medium,
https://medium.com/analytics-vidhya/generation-of-a-concatenated-confusion-matrix-in-cross-validation-912485c4a972


# Page. 4

![Page Image](https://bcdn.docswell.com/page/VEP6DVLQ78.jpg)

成果物について
•
ある時系列で記録された気候の数値から、別時系列におけるオゾンレベルの高低を分類する
学習器（モデル）を作成した。
• 正解率：Cross Validation（CV） = 80.2%、 スコア：Leaders Board（LB） = 82.1％
• コンペにおける成績順位 ５位（111人中）
• 習得の期間：７日（22時間）
• 試作品（精度が出るまで）：３日 （８時間）
• 現在の成績まで：１日（４時間）


# Page. 5

![Page Image](https://bcdn.docswell.com/page/27V31ZQPJQ.jpg)

発表の流れについて
1. 時系列データについて
2. 今回の時系列データと問題点について
3. 作成スケジュール
4. 開発環境
5. 作製したモデルについて（モデルの種類、評価）
6. 苦労、実践したこと
7. 今回の振返りと今後について


# Page. 6

![Page Image](https://bcdn.docswell.com/page/5JG324WQEL.jpg)

１．時系列データ（Time Series）について
• ある対象について、時間軸に沿って記録された連続的なデータ
•
実例として、
➢ 株価や年間の売上
➢ ヘルスケアデータ
➢ 気温、気圧
などが挙げられる。
• 時系列データの利用先は
➢ 予測（Forecasting）
➢ 分類（Classification）
の２つである
図-1 時系列データの例※
北川源四郎、「4-4 時系列データ解析」、東京大学 数理・情報教育研究センター、2020、
http://www.mi.u-tokyo.ac.jp/consortium2/pdf/4-4_literacy_level_note.pdfから引用


# Page. 7

![Page Image](https://bcdn.docswell.com/page/47Q5PG3WEP.jpg)

２．今回の時系列データと問題点について（１）
• 出典
➢ 引用
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個、目的変数１個）
➢ 1267（行）×73（列）
日付
データ型 date
数
1
各時刻、最大及 各時刻、最大及 各種Hp面での
び平均風速
び平均気温
気候データ
雷雨になる
可能性の指数
float
float
float
26
float
26
14
嵐の強さ
（指数）
float
1
海面気圧の前日
からの変化
海面気圧
float
1
float
1
オゾンレベル
降水量
bit
float
1
1
1


# Page. 8

![Page Image](https://bcdn.docswell.com/page/KE49Y511J1.jpg)

２．今回の時系列データと問題点について（２）
• 問題点（１/２）
欠損値がある。 ← 時系列データは連続であるのが前提なため、補間処理が必要
図-２ 欠損値のあるデータ（上）、平均値で補間されたデータ（下）
図-３ データ全体における欠損値の割合（最大９％程度）


# Page. 9

![Page Image](https://bcdn.docswell.com/page/L71K6WG5EG.jpg)

２．今回の時系列データと問題点について（-３）
• 他の欠損値補間について
図-4.2 LOCF（Last Observation Carried Forward）法
図-4.1 元データ
図-4.3 中央値代入


# Page. 10

![Page Image](https://bcdn.docswell.com/page/G7WDW6KWE2.jpg)

２．今回の時系列データと問題点について（-４）
• 他の欠損値補間について
図-4.4 線形補間法
図-4.1 元データ
図-4.5 スプライン補間


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JZG5YZ273.jpg)

２．今回の時系列データと問題点について（-5）
• 他の欠損値補間について
図-4.6 移動平均補間
図-4.1 元データ
図-4.7 カルマン平滑化補間


# Page. 12

![Page Image](https://bcdn.docswell.com/page/YE6Y9D86JV.jpg)

２．今回の時系列データと問題点について（３）
• 問題点（２/２）
➢ 目的変数の分布に大きな偏りがある。 ← オーバーサンプリング（Over Sampling）を施す。
必ず学習データに施すこと、（検証データに施さない‼）
偏りの大きなデータで機械学習を実施することの問題
• 数の多い属性（Majority）を予測するモデルが作られる。
• さらに、Majorityを予測するだけで「見た目は」高い精度
が得られてしまう。（汎化性能が低い）
図-３ 目的変数における偏り
オーバーサンプリングについて ⇔ アンダーサンプリング
• 数の少ない属性（Minor）をMajorityと同様の数となるよう
水増しする手法である。
• 今回は手始めに基本的な手法である、ランダムオーバー
サンプリング（Random Over Sampling）を採用している。
• Random Over Samplingは、Minorからランダムにデータを
選択し、コピーしてサンプル数を増やす手法。過学習を
起こしやすいが、高速に動作する。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GE5GN395E4.jpg)

４．開発環境
ハードウェア
• Google Colab（無課金、T4GPU）× ２ （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
ソフトウェア
• Python
3.10
• Tensorflow
2.15
• Anaconda3
➢ Python
3.11
✓ matplot lib
✓ numpy
✓ Pandas
✓ Scikit-learn
✓ imbalanced-learn
✓ LightGBM
➢R
4.3.2
3.5
1.21
2.0
1.4
0.12
3.3


# Page. 14

![Page Image](https://bcdn.docswell.com/page/972Y5Z2G7R.jpg)

５．作製したモデルについて
（モデルの種類、評価）
•
本課題に対し、深層学習（DNN：Deep Neural Network)、サポートベクターマシン（SVC：Support
Vector Machine Classifier）及び勾配ブースティング法（Gradient Boosting Method）の３つでモデ
ルを作成した。
•
評価指標として、検証データでの正解率（ACC：Accuracy）、層化K交差検証（K=5）での正解率の
平均（Cross-Validation Accuracy）、コンペサイトの採点で出された正解率（Leader Board）及び順
位を記載している。
DNN
ACC
CV
LB
順位
演算時間
SVC
0.846
0.802
0.818
５位
１２０ (Sec)
GBM
0.900
0.880
0.786
12位
CNN
0.950
0.890
0.776
22位
１ (Sec)
１ (Sec)
0.990
0.985
0.709
4.5 (Hour)


# Page. 15

![Page Image](https://bcdn.docswell.com/page/DJYGKRYGJM.jpg)

５．作製したモデルについて
（モデルの種類、評価）
DNN
SVC
GBM
＊ 縦軸：実際の値、横軸：予測値


# Page. 16

![Page Image](https://bcdn.docswell.com/page/V7NGRDP8E8.jpg)

６．苦労、実践したこと
•
時系列の予測（Forecasting）に関する情報は多いが、分類（Classification）に関する情報
は少ない。
← 類似案件（時系列分類）の記事を参考にする。
Kaggleの「Credit Card Fraud Detection」（クレジットカードの不正検知）
← &quot;Time-Series Classification&quot;で英語圏のサイトを探索する
英語圏は優良な文献も多いが、情報量が多いので上図に取捨選択しなければならない。
• 欠損値の補間（実装ミスが起こりにくく適切な方法）
← Rとそのライブラリで、欠損値の分布や割合を可視化し、補間手法を検討した。
• 目的変数が大きく偏ったデータを分類するときに使える方法について
← Pythonのライブラリ&quot;Imbalanced-learn&quot;やTensorflowの&quot;dataset&quot;ライブラリで対応。


# Page. 17

![Page Image](https://bcdn.docswell.com/page/YJ9WMG3XJ3.jpg)

７．今後の施策（改良点）
• 欠損値の補間について
→ 今回、補間の手法に平均値代入を使った。この方法は基本的なものだが、応用統計学の
分野からは、例えば多重代入法などの、より高精度な補間方法が考案及び実装されてい
る。モデルが出来上がったら、こちらを導入して結果がどう変わっていくか検証していきたい。
• オーバーサンプリングの方法について
→ 今回のオーバーサンプリングはMinorに属するデータをコピーするという、一番単純な方
法だった。この方法は前述のとおり過学習しやすい欠点がある。そして、検証データでは高
い正解率であるモデルほど、反対にコンペでの正答率が低くなっていた。ここから考えられ
るのは、与データに対して過学習をしており汎化性能が低くなっているということである。な
ので、Minorからデータを合成するSMOTE（Synthetic Minority Over-sampling TEchnique）の
導入から考えている。
オーバーサンプリングの手法をランダムサンプリングからSMOTEに変えて分類（SVC）したが、結果はほぼ変わらず


# Page. 18

![Page Image](https://bcdn.docswell.com/page/GJ8NLVM9ED.jpg)

ご清聴ありがとうございました


# Page. 19

![Page Image](https://bcdn.docswell.com/page/LJLPL53MER.jpg)

参考にした情報源
公式情報
• R 公式ドキュメント（英）
・・・
• Tensorflow公式リファレンス（日、英）
・・・
• Scikit-learn公式ドキュメント（英）
・・・
• Imbalanced-leaning 公式ドキュメント（英） ・・・
https://www.r-project.org/
https://www.tensorflow.org/
https://scikit-learn.org/stable/user_guide.html
https://imbalanced-learn.org/stable/index.html
ブログなど
• Qiita（日）
• teratail（日）
• Stack Overflow（日、英）
• Kaggle（英）
• Analytics Vidhya（英）
• Medium（英）
• GitHub（日、英）
・・・
・・・
・・・
・・・
・・・
・・・
・・・
https://qiita.com/
https://teratail.com/
https://stackoverflow.com/
https://www.kaggle.com/
https://www.analyticsvidhya.com/blog/
https://medium.com/
https://github.com


