「Nishika:航空機ターボエンジンの残存耐用時間(RUL)予測コンペ」Public/Private:6th解法振り返り

今回のコンペはターボエンジンのシミュレーションデータを使って、RULとよばれるエンジンの残存耐用時間を予測するというものでした。

カテゴリ変数がなく、数値データのみによるものなので、データ(コンペそのもの)の理解に時間を割かれました。データ内容などについては、コンペを参照してください。

https://www.nishika.com/competitions/17/summary

 

 

1.解法

提出結果のうち、LightgbmとTabnetのアンサンブルモデルがPrivate:6thとなりました。Public:6thはその結果とNNのアンサンブルモデルです。

 

2.特徴量

・基本的に['○○_mean_prev3']の特徴量を使いました。

-lightgbmのfeature_importanceで['○○_mean_prev3']が上位に上がっていたため

・グラフ特徴が似ているものをまとめました。

-チュートリアル内にある、cycleごとの各データに関するグラフ

https://www.nishika.com/competitions/17/topics/120

・○○_eff,○○_flowをそれぞれ乗算して、その解を乗算し、cmapssとして特徴量作成

・ファン→低圧縮→高圧縮→燃焼(タービン)→排気のプロセスにおける、二者間の温度差の表現

・ファン→低圧縮→高圧縮→燃焼(タービン)→排気のプロセスにおける、二者間の圧力差の表現

・各データの移動平均

・各データの最大最小の差

その他

・ストールマージン(SmFan,SmLPC,SmHPC)T48,hs間の乗除

・hs,cycleの除算

・LPT_eff,LPT_flow,HPT_effの乗算

 

 

3.モデル

Lightgbm、Tabnet(MinMaxScaling)

※Tabnetのデータには移動平均のデータは入れていないです。

 

 

4.アンサンブル

予測結果に応じて加重平均

 

 

5.スコア改善にうまく働かなかったもの

○特徴量

・空気流入量と流出量の表現

W21=ファンからの流量(pps)、W22=LPCからの流出(lbm/s)と単位が違ったので、どうしても有機的な特徴量にできませんでした。

・EPR = P50/P24(タービン出口の圧力とコンプレッサー入り口の圧力の比が、推力と関係をもつ)

参考)航空実用事典

・ストールマージンの文脈から、ファンとコアの作動ラインをそれぞれ特徴量としてつくり、ストールマージンで除算。

・ジェットターボエンジンの推力の公式に無理やり当てはめて特徴量を作成(燃料流量(Wf)とかを使いたかったです)

・SmLPCのデータをもとに、k-mean法で分割。

・eigs@MATLABさんがディスカッション内で記載されていたことを参考に、tranデータのうちcycle1でのRULが100ではないもののみをモデルに入れ、他のモデルとアンサンブルしましたが、スコア改善にはなりませんでした。

参考)https://www.nishika.com/competitions/17/topics/129

○モデル

LightgbmとTabnetのアンサンブル結果とNNを加重平均したものが、Public6thでしたが、Privateではshakeしてしまいました。  

 

6.できなかったこと

W31(HPTクーラントブリード(lbm/s)),W32(LPTクーラントブリード(lbm/s))などクーラントブリードのデータがあったので、エキスパンダーサイクルの資料をもとに使ってみたかったのですが、できませんでした。

参考)https://www.mhi.co.jp/technology/review/pdf/484/484040.pdf

 

 

7.やらなかったこと

pseudo labeling

 

 

8.感想

今回のコンペはテーブルデータとはいいつつ、センサーなどの数値データによるもので、久しぶりのテーブルデータと飛びついたものの、ターボファンエンジンについてwikipediaや企業のサイト、論文をもとに勉強するなどドメイン知識の蓄積に力を注いだコンペでした。

参考)

エンジンの仕組み|航空エンジン|Honda

ジェットエンジン - Wikipedia

前提知識はありませんでしたが、ドメイン知識を蓄えながらセンサーデータの過去コンペを参照したりしながら、楽しみながらチャレンジすることができました。

最初は特徴量をガシガシ作りながら、途中からTabnetやNNのモデルを試したりなど、前々からやりたいと思っていたことを実装できる程度にはできたことが収穫だったと思います。ならべくRobustな予測をと思いましたが、結果的にはTabnet単独のsubmitがPrivateで私のsubmitの中では最良のスコアになったようです。

とにかく、コツコツ毎日submitし続けて、途中からは5位入賞を目標に頑張っていましたが、結果はPublic,Privateとも6位とshakeなしの結果となりました。これに懲りずに、また他のコンペもチャレンジしていきたいと思います。

最後に、コンペを開いてくださったNishikaの運営事務局の方、Twitterで毎日のsub結果をいいねしてくださった方、ひろしまQuestのコミュニティ「sunaba」slackで一人もくもく会を投稿していたのを見守ってくださっていた皆様に御礼を申し上げます。