Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

データ クリーナー

列方向データの前処理と整理

R2022a 以降

説明

データ クリーナー アプリは、乱雑な列方向データを識別し、同時に複数のデータ変数をクリーニングして、クリーニング プロセスを反復および改良するための対話型ツールです。

このアプリを使用すると、以下のことができます。

  • MATLAB® ワークスペース内の列方向データにアクセスするか、ファイルから列方向データをインポートする。

  • 可視化、データ、概要の各ビューを使用してデータを探索する。

  • 変数の並べ替え、変数の名前変更、または変数の削除を行う。

  • timetable のデータの時間再調整、table 変数のスタックまたはスタック解除、欠損データの削除、外れ値データの削除、データの平滑化、またはデータの正規化を行う。

  • 以前に実行したクリーニング ステップを編集する。

  • クリーニングしたデータを MATLAB ワークスペースにエクスポートする、またはデータ クリーニングのコードをスクリプトまたは関数としてエクスポートする。

  • データ クリーナー アプリでは現在、table および timetable データのクリーニングのみがサポートされています。

  • 現在、データ クリーナー アプリで一度にクリーニングできる timetable は 1 つのみです。

Data Cleaner app

データ クリーナー アプリを開く

  • MATLAB ツールストリップ: [アプリ] タブの [MATLAB] で、アプリのアイコンをクリックします。

  • MATLAB コマンド プロンプト: 「dataCleaner」と入力します。

すべて展開する

データ クリーナー アプリを使用して、変数の削除、データの時間再調整、平滑化および正規化を行うことで、乱雑な timetable データを前処理および整理します。次に、クリーニングしたデータを MATLAB ワークスペースにエクスポートします。以下の手順に従って、乱雑な timetable データを前処理および整理できます。ただし、使用するデータに応じて異なる一連のクリーニング ステップが必要になることがある点に注意してください。

この例では、タイムスタンプ付きの自転車交通量データを前処理および整理する方法を示します。このデータ セットは、マサチューセッツ州ケンブリッジのブロードウェイ ストリートに設置されたセンサーから取得されたものです。ケンブリッジ市は、Cambridge Open Data サイトで完全なデータ セットを公開しています。

  1. データ クリーナー アプリで timetable を開く

    MATLAB ツールストリップまたは MATLAB コマンド ウィンドウを使用して、データ クリーナー アプリを開きます。

    コマンド ウィンドウで bikeData = readtimetable("BicycleCounts.csv") を使用して、タイムスタンプ付きの自転車交通量データを読み込みます。その後、データ クリーナー アプリで [インポート]、[ワークスペースからインポート] を選択して、timetable bikeData を指定します。あるいは、データ クリーナー アプリで [インポート]、[ファイルからインポート] を選択して、データをインポートします。

    timetable がアプリに読み込まれたら、[データ] タブで生データを確認し、[概要] タブでデータの概要を確認します。

    Summary tab with a data summary including timetable statistics and variable statistics

    [可視化] タブで timetable データを探索します。[変数] パネルで timetable 変数 TotalWestbound、および Eastbound を選択します。

    1 年の時系列と自転車交通量の間に相関があることがプロットで示されます。

  2. timetable からの変数の削除

    データ収集日がタイムスタンプに反映されているため、変数 Day には冗長なデータが含まれています。[変数] パネルを使用して timetable から Day を対話的に削除します。変数を削除するには、Day を右クリックし、[削除] を選択します。これで、[クリーニング ステップ] パネルに変数の削除がステップとして表示されます。

  3. timetable の時間再調整

    データの概要では、timetable 内の欠落しているタイムスタンプ値および重複しているタイムスタンプ値が示されます。timetable を並べ替え、固有の行時間を設定するには、アプリの [ホーム] タブの [クリーニング メソッド] セクションにある [timetable の時間再調整] をクリックします。選択方法として [入力の一意の行時間] を指定し、集計するために [総和] メソッドを使用します。クリーニング パラメーターを受け入れてクリーニング ステップを追加し、timetable を更新します。

    時間再調整パラメーターを受け入れると、更新されたデータの概要で、欠落しているタイムスタンプ値も重複しているタイムスタンプ値も存在せず、タイムスタンプが時系列順に並べ替えられていることがわかります。

    ご使用の timetable で時間再調整が不要な場合は、対話的に Timestamp または別の timetable 変数によって並べ替えることができます。[データ] タブの変数ヘッダー内の矢印 をクリックして、並べ替えオプションにアクセスします。

  4. データの平滑化

    自転車交通量が各週の特定の曜日に急増しているため、平滑化により、各週内のノイズを低減し、年を通した自転車交通量トレンドを把握しやすくすることができます。データを平滑化するには、[データの平滑化] クリーニング メソッドを使用します。平滑化法として [移動平均値] を選択し、平滑化の中央 7 日間ウィンドウを指定します。クリーニング パラメーターを受け入れてクリーニング ステップを追加し、timetable を更新します。

  5. データの正規化

    3 つの数値変数 TotalWestbound、および Eastbound のスケールが異なっているため、正規化を使用して標準偏差によってスケーリングします。データを正規化するには、[データの正規化] クリーニング メソッドを使用します。正規化方式として [スケール] を選択し、スケール タイプとして [標準偏差] を選択します。

    このクリーニング ステップのプレビューをより明確に表示するには、可視化の凡例にある元のデータをクリアします。クリーニング パラメーターを受け入れてクリーニング ステップを追加し、timetable を更新します。

    Visualization of normalized data and list of cleaning steps

  6. timetable のエクスポート

    [エクスポート]、[ワークスペースにエクスポート] を選択して、クリーニングした timetable を MATLAB ワークスペースにエクスポートします。

    あるいは、[エクスポート]、[スクリプトの生成] または [エクスポート]、[関数の生成] を選択して、timetable クリーニング コードをエクスポートします。

パラメーター

すべて展開する

欠損データの削除

以下の値のいずれかを選択して、欠損値インジケーターを指定します。

インジケーターインジケーター パラメーター説明
標準インジケーターのみを使用該当なし

標準インジケーターのみを使用して欠損値を検出します。

標準の欠損値はデータ型によって異なります。

  • NaNdoublesingleduration および calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • {''} — 文字ベクトルの cell

非標準のインジケーターの指定Indicators単一引用符内に、欠損として扱う非標準インジケーター値をコンマ区切りでリストします。例: '–99, "N/A" '

以下のメソッドの値のいずれか、および必要に応じて追加のメソッド パラメーターを選択して、欠損データを処理する方法を指定します。

メソッドメソッド パラメーター説明
欠損を埋めるMax gap to fill欠損値を埋めます。この指定値よりも大きいデータのギャップは埋められません (正のスカラー)。Fill method パラメーターを参照してください。
Units欠損値を埋めます。ギャップ サイズの単位のタイプを指定します。
欠損の削除該当なし欠損エントリが入っているデータ行を削除します。

以下のメソッドの値のいずれか、および必要に応じて追加のメソッド パラメーターを選択して、欠損データを埋める方法を指定します。

メソッドメソッド パラメーター説明
定数値Constant value定数スカラー値を使用します。
前の値該当なし前の非欠損値を使用します。
次の値該当なし次の非欠損値を使用します。
最も近い値該当なしx 軸で定義される最も近い非欠損値を使用します。
線形内挿該当なし隣接する非欠損値の線形内挿を使用します。
スプライン内挿該当なし区分的 3 次スプライン内挿を使用します。
形状保持 3 次内挿 (PCHIP)該当なし形状維持区分的 3 次スプライン内挿を使用します。
修正 Akima 3 次内挿該当なし修正 Akima 3 次エルミート内挿を使用します。
移動中央値Moving window type現在の要素について移動ウィンドウをセンタリングするか、非対称的に配置します。
Window length移動ウィンドウの長さを指定します (正のスカラー)。
Right half window length (移動ウィンドウのタイプが [非対称] の場合)現在の要素の後のウィンドウ単位の数を指定して、ウィンドウの配置を定義します (正のスカラー)。
Units移動ウィンドウ単位のタイプを指定します。
移動平均値Moving window type現在の要素について移動ウィンドウをセンタリングするか、非対称的に配置します。
Window length移動ウィンドウの長さを指定します (正のスカラー)。
Right half window length (移動ウィンドウのタイプが [非対称] の場合)現在の要素の後のウィンドウ単位の数を指定して、ウィンドウの配置を定義します (正のスカラー)。
Units移動ウィンドウ単位のタイプを指定します。
k 最近傍法Num neighbor rows埋め込み値の平均に対する最近傍の数 (k) を指定します。
Distance functionデータの行間の距離を、ユークリッド距離またはスケーリングされたユークリッド距離として定義します。
外れ値データの削除

以下のメソッドの値のいずれかを選択して、外れ値データを処理する方法を指定します。

メソッド説明
外れ値の埋め込み外れ値を埋めます。Fill method パラメーターを参照してください。
外れ値の削除外れ値が入っているデータ行を削除します。

以下のメソッドの値のいずれかを選択して、外れ値データを置き換える埋め込みメソッドを指定します。

メソッド説明
定数値指定した定数スカラー値を使用します。
中心値find メソッドで求めた中心値を使用します。
しきい値までクリップfind メソッドで求めた下限しきい値よりも小さい要素の下限しきい値を使用します。find メソッドで求めた上限しきい値よりも大きい要素の上限しきい値を使用します。
前の値前の非外れ値を使用します。
次の値次の非外れ値を使用します。
最も近い値最も近い非外れ値を使用します。
線形内挿隣接する非外れ値の線形内挿を使用します。
スプライン内挿区分的 3 次スプライン内挿を使用します。
形状保持 3 次内挿 (PCHIP)形状維持区分的 3 次スプライン内挿を使用します。
修正 Akima 3 次内挿修正 Akima 3 次エルミート内挿を使用します。

以下のメソッドの値のいずれか、および追加のメソッド パラメーターを選択して、外れ値データを特定する検出メソッドを指定します。

メソッドメソッド パラメーター説明
中央値Threshold factor外れ値は、スケーリングされた中央絶対偏差 (MAD) の指定したしきい値を超えて中央値から離れている要素と定義されます。入力データ A の場合、スケーリングされた MAD は c*median(abs(A-median(A))) と定義されます。ここで、c=-1/(sqrt(2)*erfcinv(3/2)) です。
平均値Threshold factor外れ値は、標準偏差の指定したしきい値を超えて平均値から離れている要素と定義されます。このメソッドは [中央値] より高速ですが、ロバスト性は低下します。
四分位数Threshold factor外れ値は、上位四分位数 (75%) から上に、または下位四分位数 (25%) から下に、四分位範囲の指定したしきい値を超えて離れている要素と定義されます。このメソッドは、入力データが正規分布でない場合に便利です。
GrubbsThreshold factor外れ値の検出にグラブス検定を使用します。これにより、仮説検定に基づいて反復ごとに 1 つの外れ値が除去されます。このメソッドは、入力データが正規分布していることを前提としています。
一般化極値スチューデント化偏差 (GESD)Threshold factor外れ値に対して一般化 ESD 検定を使用して、外れ値を検出します。この反復メソッドは [Grubbs] に似ていますが、複数の外れ値が相互にマスキングしている場合に、より効果的に機能します。
移動中央値Threshold factor外れ値は、指定したウィンドウでの局所中央値から、スケーリングされた局所 MAD の指定したしきい値を超えて離れている要素と定義されます。
Moving window type現在の要素について移動ウィンドウをセンタリングするか、非対称的に配置します。
Window length移動ウィンドウの長さを指定します (正のスカラー)。
Right half window length (移動ウィンドウのタイプが [非対称] の場合)現在の要素の後のウィンドウ単位の数を指定して、ウィンドウの配置を定義します (正のスカラー)。
Units移動ウィンドウ単位のタイプを指定します。
移動平均値Threshold factor外れ値は、指定したウィンドウでの局所平均値から、局所標準偏差の指定したしきい値を超えて離れている要素と定義されます。
Moving window type現在の要素について移動ウィンドウをセンタリングするか、非対称的に配置します。
Window length移動ウィンドウの長さを指定します (正のスカラー)。
Right half window length (移動ウィンドウのタイプが [非対称] の場合)現在の要素の後のウィンドウ単位の数を指定して、ウィンドウの配置を定義します (正のスカラー)。
Units移動ウィンドウ単位のタイプを指定します。
百分位数Lower threshold外れ値は、上限および下限しきい値により指定される百分位数範囲外の要素として定義されます。
Upper threshold外れ値は、上限および下限しきい値により指定される百分位数範囲外の要素として定義されます。
データの正規化

以下のメソッドの値のいずれか、および必要に応じて追加のメソッド パラメーターを選択して、データを正規化するメソッドを指定します。

メソッドメソッド パラメーター説明
Z スコアZ-score type

[標準偏差] を指定して、平均が 0、標準偏差が 1 となるようにセンタリングおよびスケーリング。

[中央絶対偏差] を指定して、中央値が 0、中央絶対偏差が 1 となるようにセンタリングおよびスケーリング。

ノルムP-Normp ノルム (正のスカラー、または無限大ノルムの場合 Inf) でデータをスケーリング。
範囲Left limit左と右の範囲制限のあるデータの範囲を [a b] の形式の区間 (ただし、a < b) に再スケーリング
Right limit左と右の範囲制限のあるデータの範囲を [a b] の形式の区間 (ただし、a < b) に再スケーリング
中央値 IQR該当なし中央値が 0、四分位数間範囲が 1 となるようにデータをセンタリングおよびスケーリング。
CenterCenter Type

[平均値] を指定して、入力データから平均値を減算して平均が 0 となるようにセンタリング。

[中央値] を指定して、入力データから中央値を減算して中央値が 0 となるようにセンタリング。

[数値スカラー] を指定して、指定した数値だけ中央をシフト。

スケールScale type

[標準偏差] を指定して、標準偏差でデータをスケーリング。

[中央絶対偏差] を指定して、中央絶対偏差でデータをスケーリング。

[最初の要素] を指定して、データの最初の要素でデータをスケーリング。

[四分位数間範囲] を指定して、四分位数間範囲でデータをスケーリング。

[数値スカラー] を指定して、指定した数値因子 (正のスカラー) で除算することでデータをスケーリング。

センタリングとスケーリングCenter Type

[平均値] を指定して、入力データから平均値を減算して平均が 0 となるようにセンタリング。

[中央値] を指定して、入力データから中央値を減算して中央値が 0 となるようにセンタリング。

[数値スカラー] を指定して、指定した数値だけ中央をシフト。

Scale type

[標準偏差] を指定して、標準偏差でデータをスケーリング。

[中央絶対偏差] を指定して、中央絶対偏差でデータをスケーリング。

[最初の要素] を指定して、データの最初の要素でデータをスケーリング。

[四分位数間範囲] を指定して、四分位数間範囲でデータをスケーリング。

[数値スカラー] を指定して、指定した数値因子 (正のスカラー) で除算することでデータをスケーリング。

データの平滑化

以下のメソッドの値のいずれかを選択して、ノイズの多いデータの平滑化メソッドを指定します。

メソッド説明
移動平均値

移動平均値を使用します。このメソッドは、データの周期的なトレンドを低減するのに便利です。

移動中央値移動中央値を使用します。このメソッドは、外れ値が存在する場合にデータの周期的なトレンドを低減するのに便利です。
ガウス フィルターガウス加重移動平均値を使用します。
局所線形回帰 (Lowess)線形回帰を使用します。このメソッドは計算量が多くなる場合がありますが、不連続点は少なくなります。
局所二次回帰 (Loess)2 次回帰を使用します。このメソッドは局所線形回帰より計算量がやや多くなります。
ロバストな Lowessロバスト線形回帰を使用します。このメソッドは、計算量の多い局所線形回帰のバージョンですが、外れ値に対してよりロバストになります。
ロバストな Loessロバスト 2 次回帰を使用します。このメソッドは、計算量の多い局所二次回帰のバージョンですが、外れ値に対してよりロバストになります。
Savitzky-Golay 多項式フィルターSavitzky-Golay 多項式フィルターを使用します。指定された多項式の次数に従って平滑化し、各ウィンドウで近似します。このメソッドは、データが急速に変動する場合に他のメソッドより効果的です。

以下のパラメーターの値のいずれか、および追加のパラメーター オプションを選択して、データ平滑化のオプションを指定します。

パラメーターパラメーター オプション説明
平滑化係数Smoothing factor平滑化の量 (正のスカラー) を指定します。
移動ウィンドウMoving window type現在の要素について移動ウィンドウをセンタリングするか、非対称的に配置します。
Window length移動ウィンドウの長さを指定します (正のスカラー)。
Right half window length (移動ウィンドウのタイプが [非対称] の場合)現在の要素の後のウィンドウ単位の数を指定して、ウィンドウの配置を定義します (正のスカラー)。
Units移動ウィンドウ単位のタイプを指定します。
timetable の時間再調整

以下のメソッドの値のいずれか、および追加のメソッド パラメーターを選択して、時間再調整された行時間の選択方法を指定します。

メソッドメソッド パラメーター説明
タイム ステップTime step出力テーブル内の連続する等間隔の行時間の間の時間の長さを指定します (正のスカラー)。
Time step unitsタイム ステップの単位を指定します。
サンプル レートSample rate時間単位あたりの出力テーブル内のサンプル数を指定します (正のスカラー)。
Sample rate unitsサンプル レートの単位を指定します。

以下のメソッドの値のいずれかを選択して、時間再調整メソッドを指定します。

メソッド説明
欠損値で埋める欠損データ インジケーター (たとえば数値変数の場合は NaN) を使用します。
定数で埋める指定された定数値を使用します。既定値は 0 です。
前の値で埋める行時間のベクトルの末尾から開始して、入力 timetable 内で先行する最近傍からデータをコピーします。重複する行時間がある場合、重複の最後のものを使用します。
次の値で埋める行時間のベクトルの先頭から開始して、入力 timetable 内で後続の最近傍からデータをコピーします。重複する行時間がある場合、重複の最初のものを使用します。
最も近い値で埋める入力 timetable の最近傍からデータをコピーします。
線形内挿線形内挿を使用します。
スプライン内挿区分的 3 次スプライン内挿を使用します。
形状保持 3 次内挿 (PCHIP)形状維持区分的 3 次内挿を使用します。
修正 Akima 3 次内挿修正 Akima 3 次エルミート内挿を使用します。
総和各時間ビン内の値の合計を使用します。
平均値各時間ビン内の平均値を使用します。
総乗各時間ビン内の値の積を使用します。
最小値各時間ビン内の最小値を使用します。
最大値各時間ビン内の最大値を使用します。
値の数各時間ビン内の値の数を使用します。
ビンの最初の値各時間ビン内の最初の値を使用します。
ビンの最後の値各時間ビン内の最後の値を使用します。
カスタム関数ハンドルによって指定された関数を使用します。
スタック (table 変数)

結合する 1 つ以上の table 変数を選択します。

スタック解除 (table 変数)

新しい table 変数の名前が格納される table 変数を選択します。

複数の table 変数にスタック解除する table 変数を選択します。

行のグループを定義する 1 つ以上の table 変数を選択します。

以下の値のいずれかを選択して、データ値を単一値に集計する関数を指定します。

関数説明
総和各値グループの合計を使用します。
平均値各値グループの平均値を使用します。
中央値各値グループの中央値を使用します。
最頻値各値グループの最頻値を使用します。
最大値各値グループの最大値を使用します。
最小値各値グループの最小値を使用します。
First各値グループの最初の値を使用します。
固有各値グループ内の固有の値の数を使用します。
カウント各値グループ内の値の数を使用します。
カスタム関数ハンドルによって指定された関数を使用します。

ヒント

  • データ変数で対話的に並べ替えるには、[データ] タブの変数ヘッダー内の矢印 をクリックして、並べ替えオプションにアクセスします。[クリーニング ステップ] パネルに並べ替えがステップとして表示されます。

  • データの変数を対話的に名前変更するには、[変数] パネル内の変数名をダブルクリックします。[クリーニング ステップ] パネルに名前変更がステップとして表示されます。

  • データから変数を対話的に削除するには、[変数] パネル内の変数名を右クリックし、[削除] を選択します。[クリーニング ステップ] パネルに削除がステップとして表示されます。

  • 前に実行したクリーニング ステップを変更するには、次のいずれかの操作を実行します。

    • [クリーニング ステップ] パネルで特定のステップをクリックして、クリーニング パラメーターを表示または編集する。

    • [クリーニング ステップ] パネルで特定のステップを新しい場所にドラッグして、クリーニング ステップが実行される順序を変更する。

    • [クリーニング ステップ] パネルで特定のクリーニング ステップをクリアするか、特定のステップを右クリックして [下のステップを無効にする] を選択して、クリーニング ステップを無効にする。

  • 入力データまたはクリーニングされたデータのみを表示するには、[可視化] タブでプロットの凡例内の要素を選択またはクリアします。

バージョン履歴

R2022a で導入

すべて展開する