データ前処理とは
データ前処理は、生データをクリーニングおよび変換して、解析とモデル化に適したデータに整えるタスクです。生データには多くの場合、欠損データ、外れ値、およびフォーマットの問題などのその他の不整合が含まれています。前処理の手順には、データクリーニング、データ正規化、およびデータ変換があります。データ前処理の目的は、下流工程の解析およびモデル化の精度と効率性の両方を向上させることです。
MATLAB® には、入力データを前処理して、統計モデリング、機械学習アルゴリズム、および他のデータ駆動型アプリケーションに適したデータに整えるためのアプリや関数が用意されています。
図 1 は、解析において誤った結果につながる可能性のある欠損値と外れ値が含まれる生データを示しています。図 2 は、欠損データの補完、外れ値の除去、および平滑化の 3 種類の異なるデータ前処理手法を適用した後の同じデータを示しています。データ品質が改善されたことで、振幅、周波数、および周期性の性質などの属性がはっきりと示されています。
データ前処理の手法
データ前処理の手法は、データクリーニング、データ変換、および構造演算の 3 つの主要なカテゴリにグループ分けすることができます。これらの手順はどの順番でも行うことができ、反復して行うこともできます。
データクリーニング
データクリーニングは、以下のような手法を使用してデータセットの異常に対処するプロセスです。
- 外れ値の管理: 外れ値を特定して除去するか、または統計的な推定値に置き換えます。
- 欠損データの補完: 欠損していたり無効になっていたりするデータ点を特定して、内挿値に置き換えます。
- 平滑化: 移動平均、線形回帰、およびより専門的なフィルタリング手法などの技術を使用して、ノイズをフィルタ処理で除去します。
データ変換
データ変換は、以下の演算を使用してデータセットを望ましいフォーマットに変更するプロセスです。
- 正規化および再スケーリング: さまざまなスケールのデータセットを均一のスケールに標準化します
- トレンド除去: 多項式トレンドを除去して、データセットの変動の可視性を高めます
構造演算
構造演算は多くの場合、データセットの結合、再編、および分類に使用され、以下を含みます。
- 連結: 共通のキー変数を使用して行により 2 つの table または timetable を結合します
- スタックおよびスタック解除: 多次元配列の形状を変更して、table のデータを統合または再分散することで解析を容易にします
- グループ化およびビン化: データセットを再編して、有益な洞察を抽出します
- ピボットテーブルの計算: 大規模な表形式データセットをサブテーブルに細分化して、的を絞った情報を得ます
データ前処理およびデータ型
データ前処理の手順は、データ型に応じて異なる場合があります。以下は、さまざまなデータ型で利用可能な 3 種類のデータ前処理手法の例です。
時系列データ | 表形式データ | 画像データ |
欠損値の除去、フィルター処理、平滑化、および異なる時間ステップでのタイムスタンプ付きデータの同期など、さまざまなデータクリーニングと前処理のタスクを実行できます。 | table のデータが乱雑な場合は、欠損値を補完したり除去したりして table をクリーニングし、行や変数を別の順番に並べ替えることができます。 | データ前処理は、AI などの画像を扱うアプリケーションで役立ちます。画像をサイズ変更またはトリミングしたり、ディープラーニング モデル用の学習データ量を増やしたりすることで、データを前処理することが可能です。 |
|
|
|
タイムスタンプ付きデータの前処理と探索 | table 内の乱雑および欠損データの整理 | ディープラーニング向け画像の前処理 |
MATLAB によるデータ前処理
適切な前処理手法は、常に容易に選択できるわけではありません。MATLAB に用意されている対話型の機能 (アプリやライブ エディター タスク) や高水準関数により、さまざまな手法を試してデータにとって適切な手法を簡単に決定できます。異なる構成で繰り返し実行し、最適な設定を選択すると、より詳細な解析のためのデータの準備に役立ちます。
対話型の機能
データ クリーナー アプリはスタンドアロンの対話型ツールであり、コードを記述することなく時系列データを前処理できます。図 6 は、データをインポートしてクリーニングする方法、欠損データを補完する方法、外れ値を除去する方法を示しています。その後、より詳細な解析のために、変更されたデータを MATLAB ワークスペースに保存することができます。また、MATLAB コードを自動的に生成することで、手順を文書化して後で再現できます。
ライブ エディター タスクは、シンプルなポイント アンド クリック インターフェイスであり、スクリプトに直接追加して特定の操作のセットを実行することができます。これらのタスクを対話的に構成して、さまざまな設定で繰り返し行うことで、用途に最適な構成を特定することができます。データ クリーナー アプリと同様に、MATLAB コードを自動的に生成して作業を再現することもできます。
[欠損データの削除]、[外れ値データの削除]、[データの正規化] など一連のライブ エディター タスクの使用により、各手順でデータを可視化することで対話的にデータを前処理できます。
MATLAB 関数の使用
MATLAB には、データ前処理などの、数学、科学、および工学計算向けに数千もの一般的な高水準の組み込み関数が用意されています。
生データセットを MATLAB で可視化することで、探索を開始できます。図 9 は、欠損値と外れ値を含む生データを示しています。このデータセットは、典型的な一日に得られた太陽放射照度を捉えています。厳しい気象条件では無線テレメトリの送信が妨げられるため、欠陥のある生データが生成される場合があります。
以下は、図 9 で示した生の太陽放射照度データセットに対し、MATLAB で適用した 5 つの一般的なデータ前処理手法です。
データ前処理の手法 | MATLAB プロット |
---|---|
外れ値の除去: テレメトリデータ内の異常は、外れ値として示されます。外れ値は、 |
|
欠損データの補完: 通信の損失は、テレメトリにおける欠損データの原因となります。 |
|
データの平滑化: ノイズを含む太陽放射照度データは、 |
|
データの正規化: 関数 |
|
グループ化:
|
|
データは乱雑な場合がありますが、データ前処理の手法をデータ品質の改善やより詳細な解析のためのデータ準備に役立てることができます。詳細については、以下のリソースをご覧ください。