E-problem — 高速列車軸受の知能故障診断(中国研究生数学建模 E題)

AI/ML

概要

本リポジトリ「E-problem」は、2025年中国研究生数学建模竞赛のE題「高速列車軸承智能故障诊断」に対する解法の実装をまとめたものです。問題文(E题.pdf)を基に、振動信号の前処理、特徴抽出、機械学習モデルによる分類や故障判定の方針をPythonスクリプトで提示しています。実データそのものは含まれていない場合がありますが、与えられた課題に対してどのようにアプローチするか(時系列解析、 FFTや時域特徴量、モデル学習と評価など)を具体的なコードと説明で示しており、類似課題のプロトタイプ開発や教育用途に適したリポジトリです。

GitHub

リポジトリの統計情報

  • スター数: 30
  • フォーク数: 0
  • ウォッチャー数: 30
  • コミット数: 4
  • ファイル数: 8
  • メインの言語: Python

主な特徴

  • 高速列車用軸受の振動信号を想定した故障診断ワークフロー(前処理→特徴抽出→分類)。
  • Pythonスクリプトでアルゴリズム例を提供(時域・周波数領域の処理、簡易分類器)。
  • 問題文(E题.pdf)を同梱し、課題定義と評価指標を参照可能。
  • 学術コンペ向けのプロトタイプとして利用しやすい軽量構成。

技術的なポイント

このプロジェクトは、列車軸受の故障診断問題に対して典型的な信号処理と機械学習の組合せアプローチを示します。まずデータ前処理では、生データのノイズ除去や適切な窓処理、欠損値処理が前提になります。時域特徴量(平均、標準偏差、尖度、歪度、ルート平均二乗値など)を抽出し、周波数領域ではFFTによるスペクトル解析からピーク周波数やスペクトルエネルギー比を計算して特徴ベクトルに加えます。さらに短時間フーリエ変換(STFT)やウェーブレット変換を使えば非定常成分の検出性能が向上します。

モデル面では、教師あり分類(例えばSVM、ランダムフォレスト、LightGBMなど)を想定しつつ、データが少ない場面では交差検証やデータ拡張、特徴選択(LASSOや相関ベース選択)を組み合わせることが重要です。異常検知タスクであれば、ワン・クラスSVMや自己符号化器(autoencoder)を用いた正常系の学習と閾値判定が有効です。本リポジトリでは簡易的なスクリプト群でこれらの典型手法を示しており、評価指標として精度だけでなく、再現率・適合率・F1スコアや縦列混同行列、ROC/AUCを出力してモデル性能を多面的に評価する実装が推奨されています。

実務上の注意点としては、振動センサの設置位置や回転速度(RPM)の影響、挙動が時間経過で変わるドリフト、摩耗段階に応じたクラス不均衡があるため、時間依存性を考慮した時系列分割や階層的評価を行うことが望ましい点が挙げられます。また、説明可能性(feature importanceやSHAP)を導入すると保守現場での受容性が高まります。リポジトリのコードは教育的なプロトタイプとして整理されており、実データ投入時には前述の拡張(正規化ワークフロー、ハイパーパラメータチューニング、モデル保存・デプロイ用のパイプライン化)が必要です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • E题.pdf: 問題文(課題の要求、データ説明、評価基準など) — file
  • LICENSE: ライセンス情報 — file
  • README.md: リポジトリ概要と実行手順の説明 — file
  • 第一问.py: 問1に対応する解析スクリプト(前処理や基礎的特徴抽出) — file
  • 第三问(第三问看这个).py: 第三問に対するスクリプト(分類器や結果出力) — file
  • 其他脚本/補助ファイル(データ読み込み・可視化ユーティリティなど) — 他数ファイル
  • (注)データセット自体はリポジトリに含まれていない可能性があるため、実行時に外部データの配置やパス調整が必要です。

ファイルごとの簡単な説明:

  • 第一问.py: 振動信号の基本統計量と時域解析を行うスクリプト。前処理(フィルタリング、正規化) → 時域特徴量の抽出 → 結果の簡易可視化を実行します。
  • 第三问(第三问看这个).py: 抽出した特徴を用いた分類器(例えばSVMやランダムフォレスト)の学習・評価を行う内容。交差検証や評価指標の算出、混同行列の出力を含みます。
  • E题.pdf: コンペティションの課題文であり、データ構造や求められる提出物(モデルの要求や評価方法)を確認できます。実験設計を進める上で必読です。

実行上のヒント:

  • 必要なライブラリはREADMEに記載されている可能性があるため、まずREADMEを確認して環境(numpy, scipy, scikit-learn, matplotlib 等)を整備してください。
  • データの前処理順序(フィルタ→デシメーション→特徴抽出)を忠実に守ると再現性が高まります。
  • スクリプト内のハイパーパラメータは課題に応じて調整可能で、コメントに説明がある箇所を参考にしてください。

まとめ

教育・競技向けの良好な出発点。実データ適用時に前処理と評価設計の強化が必要。

リポジトリ情報:

READMEの抜粋:

E-problem

2025年中国研究生数学建模竞赛E题:高速列车轴承智能故障诊断 …