データの前処理

データ前処理とは

データ前処理は、生データをクリーニングおよび変換して、解析とモデル化に適したデータに整えるタスクです。生データには多くの場合、欠損データ、外れ値、およびフォーマットの問題などのその他の不整合が含まれています。前処理の手順には、データクリーニング、データ正規化、およびデータ変換があります。データ前処理の目的は、下流工程の解析およびモデル化の精度と効率性の両方を向上させることです。

MATLAB® には、入力データを前処理して、統計モデリング、機械学習アルゴリズム、および他のデータ駆動型アプリケーションに適したデータに整えるためのアプリや関数が用意されています。

図 1 は、解析において誤った結果につながる可能性のある欠損値と外れ値が含まれる生データを示しています。図 2 は、欠損データの補完、外れ値の除去、および平滑化の 3 種類の異なるデータ前処理手法を適用した後の同じデータを示しています。データ品質が改善されたことで、振幅、周波数、および周期性の性質などの属性がはっきりと示されています。

欠損値と外れ値を含む生データセットの MATLAB プロット。

図 1. 欠損値と外れ値を含む生データの MATLAB プロット。

欠損データの補完や外れ値の除去など、データ前処理の手法を使用した平滑化の前と後のデータを示す MATLAB プロット。

図 2. 元のデータと MATLAB で関数 smoothdata の適用により前処理されたデータ。

データ前処理の手法

データ前処理の手法は、データクリーニング、データ変換、および構造演算の 3 つの主要なカテゴリにグループ分けすることができます。これらの手順はどの順番でも行うことができ、反復して行うこともできます。

データクリーニング

データクリーニングは、以下のような手法を使用してデータセットの異常に対処するプロセスです。

  • 外れ値の管理: 外れ値を特定して除去するか、または統計的な推定値に置き換えます。
  • 欠損データの補完: 欠損していたり無効になっていたりするデータ点を特定して、内挿値に置き換えます。
  • 平滑化: 移動平均、線形回帰、およびより専門的なフィルタリング手法などの技術を使用して、ノイズをフィルタ処理で除去します。
MATLAB でプロットされた、欠損値がある太陽放射照度の生入力データの時間プロット。

図 3. 欠損値を含む、太陽放射照度の生データセットの時系列プロット。

生データセットの欠損値を補完した後の太陽放射照度データの MATLAB プロット。

図 4. MATLAB で関数 fillmissing を使用して欠損値を補完するよう前処理された太陽放射照度のデータ。

データ変換

データ変換は、以下の演算を使用してデータセットを望ましいフォーマットに変更するプロセスです。

  • 正規化および再スケーリング: さまざまなスケールのデータセットを均一のスケールに標準化します
  • トレンド除去: 多項式トレンドを除去して、データセットの変動の可視性を高めます
トレンド除去のデータ前処理手法を使用して生データのトレンドを特定し、トレンドバイアスを排除した MATLAB プロット。

図 5. 生データ、そのトレンド、および MATLAB で関数 detrend を使用してトレンドバイアスを排除するよう前処理されたバージョン。

構造演算

構造演算は多くの場合、データセットの結合、再編、および分類に使用され、以下を含みます。

  • 連結: 共通のキー変数を使用して行により 2 つの table または timetable を結合します
  • スタックおよびスタック解除: 多次元配列の形状を変更して、table のデータを統合または再分散することで解析を容易にします
  • グループ化およびビン化: データセットを再編して、有益な洞察を抽出します
  • ピボットテーブルの計算: 大規模な表形式データセットをサブテーブルに細分化して、的を絞った情報を得ます

データ前処理およびデータ型

データ前処理の手順は、データ型に応じて異なる場合があります。以下は、さまざまなデータ型で利用可能な 3 種類のデータ前処理手法の例です。

時系列データ 表形式データ 画像データ
欠損値の除去、フィルター処理、平滑化、および異なる時間ステップでのタイムスタンプ付きデータの同期など、さまざまなデータクリーニングと前処理のタスクを実行できます。 table のデータが乱雑な場合は、欠損値を補完したり除去したりして table をクリーニングし、行や変数を別の順番に並べ替えることができます。 データ前処理は、AI などの画像を扱うアプリケーションで役立ちます。画像をサイズ変更またはトリミングしたり、ディープラーニング モデル用の学習データ量を増やしたりすることで、データを前処理することが可能です。

 

 

 

 

 

タイムスタンプ付きデータの前処理と探索 table 内の乱雑および欠損データの整理 ディープラーニング向け画像の前処理

MATLAB によるデータ前処理

適切な前処理手法は、常に容易に選択できるわけではありません。MATLAB に用意されている対話型の機能 (アプリやライブ エディター タスク) や高水準関数により、さまざまな手法を試してデータにとって適切な手法を簡単に決定できます。異なる構成で繰り返し実行し、最適な設定を選択すると、より詳細な解析のためのデータの準備に役立ちます。

対話型の機能

データ クリーナー アプリはスタンドアロンの対話型ツールであり、コードを記述することなく時系列データを前処理できます。図 6 は、データをインポートしてクリーニングする方法、欠損データを補完する方法、外れ値を除去する方法を示しています。その後、より詳細な解析のために、変更されたデータを MATLAB ワークスペースに保存することができます。また、MATLAB コードを自動的に生成することで、手順を文書化して後で再現できます。

図 6. MATLAB のデータ クリーナー アプリを使用した時系列データの探索およびクリーニング。

ライブ エディター タスクは、シンプルなポイント アンド クリック インターフェイスであり、スクリプトに直接追加して特定の操作のセットを実行することができます。これらのタスクを対話的に構成して、さまざまな設定で繰り返し行うことで、用途に最適な構成を特定することができます。データ クリーナー アプリと同様に、MATLAB コードを自動的に生成して作業を再現することもできます。

[欠損データの削除][外れ値データの削除][データの正規化] など一連のライブ エディター タスクの使用により、各手順でデータを可視化することで対話的にデータを前処理できます。

利用可能な一連のライブタスクを示す MATLAB の [データ前処理] ツールバーのスクリーンショット。

図 7. 一連のライブタスクが配された MATLAB の [データ前処理] ツールバー。

[外れ値データの削除] タスクのスクリーンショット。入力データを A、クリーニング方法を線形内挿による外れ値の補完、検出方法を中央値に設定。2 つの補完された外れ値を示す結果のプロット。

図 8. 外れ値を中央値のしきい値で検出し、線形内挿で補完する [外れ値データの削除] ライブ エディター タスク。

MATLAB 関数の使用

MATLAB には、データ前処理などの、数学、科学、および工学計算向けに数千もの一般的な高水準の組み込み関数が用意されています。

生データセットを MATLAB で可視化することで、探索を開始できます。図 9 は、欠損値と外れ値を含む生データを示しています。このデータセットは、典型的な一日に得られた太陽放射照度を捉えています。厳しい気象条件では無線テレメトリの送信が妨げられるため、欠陥のある生データが生成される場合があります。

欠損値と外れ値が強調表示された太陽放射照度の入力生データの MATLAB 2D プロット。

図 9. 欠損値と外れ値を特定した太陽放射照度の入力生データの時系列プロット。

以下は、図 9 で示した生の太陽放射照度データセットに対し、MATLAB で適用した 5 つの一般的なデータ前処理手法です。

データ前処理の手法 MATLAB プロット

外れ値の除去:

テレメトリデータ内の異常は、外れ値として示されます。外れ値は、filloutliers を使用して除去します。どの値が外れ値かを決定するために使用する手法や、外れ値のデータ点を置き換える値を推定するための補完手法を指定できます。

 

 

欠損データの補完:

通信の損失は、テレメトリにおける欠損データの原因となります。fillmissing を使用して、データセット内の NULL 値を推定値に置き換えます。内挿手法や移動ウィンドウをベースとした手法を指定して、欠損値を推定することができます。

 

 

データの平滑化:

ノイズを含む太陽放射照度データは、smoothdata を使用して除去します。データに最適な平滑化手法を選択および指定できます。

 

 

データの正規化:

関数 normalize を使用すると、このデータセットでは、ピーク太陽放射照度の 50% を超える量を午前 8 時から午後 4 時の間に得ていることが簡単に確認できます。

 

 

グループ化:

retime を使用して太陽放射照度のデータを 4 時間間隔でグループ化し、それらの時間範囲における平均太陽放射照度を特定します。

 

 

データは乱雑な場合がありますが、データ前処理の手法をデータ品質の改善やより詳細な解析のためのデータ準備に役立てることができます。詳細については、以下のリソースをご覧ください。

参考: データクリーニング, MATLAB によるデータ解析, MATLAB グラフィックス