はじめに
データ分析初心者の私が、車両の振動データの分類にチャレンジしたAIコンテストに参加しました。コンテストに参加する前は、機械学習やデータ分析についてほとんど知識がありませんでした。しかし、このコンテストを通じて、データ分析の基礎から機械学習の応用まで学ぶことができました。この記事では、私のような初心者の方々に向けて、コンテスト参加の体験談をまとめたいと思います。
コンテストの概要
RapidMiner AI 2023 コンテストは、車両の振動データからどの車両が通過したのかを予測するモデルを作成し、その分類精度(正答率)を競うコンテストです。コンテストの詳細については、以下のリンクを参照してください。
https://www.rapidminer.jp/news/event/1546/
またコンテストの上位入賞者がどのように課題に取り組んでどのような発見があったのかなどを発表した動画が以下のサイトで公開されていますので、興味のある方は参照ください。
https://ksk-anl.smktg.jp/cc/0y1QTemdB
分析手法
主催者から提供された振動の時系列データ分析するために、次の指標を用いました。
基本的な統計指標
時系列データの平均値や分散などの基本的な統計指標を抽出しました。
車両の平均速度
提供されたデータには、車両がレールを一周する間の振動データが一定の時間間隔で保存されています。これを利用して、車両の平均速度を求めました。
自己相関関数
時系列データの自己相関関数を求めることで、データ間の相関関係を調べました。自己相関関数は、以下の文献などを参照して求めました。
https://www.jstage.jst.go.jp/article/jscej1969/1970/174/1970_174_11/_pdf
モデルの詳細
コンテストで使用したモデルについて詳しく説明します。
基本的な統計指標
RapidMinerの標準プロセスである「Extract Aggregates」を用いて、時刻歴データの以下の指標を求めます。
合計値、平均値、分散、最大・最小値、中央値、第一四分位数、尖度、歪度。
ここで、
第一四分位数(first quartile) とは、データを小さい順に並べたとき、初めから数えて25%の位置にある値のことを指します。
尖度(kurtosis) とは、確率分布の形状を表す指標であり、その値が大きければ鋭いピークと長く太い裾をもった分布であることを示します。
歪度(skewness) とは、分布の非対称性を表す指標であり、その値が大きければ左右非対称な分布であることを示します。
自己相関関数(ACF)
RapidMinerの「Autocorrelation / Autocovariance」プロセスを用いて、自己相関関数(ACF)を求めました。ACFは、「過去と現在のデータがどれだけ似ているか」を表す指標であり、時系列データの予測や分析に役立ちます。ラグというパラメータがあり、k=0の時、自分自身との比較となり、ACF=1となります。kが1以上の場合、ACFはk個の時間間隔だけ離れたデータとどれだけ似ているかを表します。
今回は、このモデルのパラメータであるラグの最大値(maximum lag)の値を調整して正答率の改善を試みました。
結果の解釈
コンテストでは、ACFのmaximum lag(k_max)を調整しながら16回試行し、k_max = 6のとき、90.4%の正答率を得ました。初期値としてデフォルトのk_max = 12を試行したのですが、k_maxを小さくする方がk_maxを大きくするよりも結果が改善しました。
今後の展望
データ分析の経験がほとんどなかった私でも、RapidMinerのわかりやすいインターフェースを用いることによって、効率よく予測モデルを改善することができました。車両の振動データのモデル化において、自己相関関数は有効なツールであることが確認できました。今後は車両のシミュレーション結果などを利用してモデルを改善し、より実践的な問題に応用できるようにしたいと考えています。