Main Content

データの正規化

ライブ エディターでデータをセンタリングおよびスケーリング

R2021b 以降

説明

[データの正規化] タスクでは、z スコアなどのセンタリングおよびスケーリング メソッドを選択して、データを対話的に正規化できます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。

このタスクを使用すると、次を行うことができます。

  • table や timetable などのワークスペース変数内のデータをセンタリングおよびスケーリングする方法をカスタマイズする。

  • 正規化されたデータと比較して入力データを可視化する。

  • 正規化の計算に使用されるセンタリング値とスケーリング値を返す。

関連する関数

[データの正規化] では、関数 normalize を使用するコードが生成されます。

Normalize Data task in the Live Editor

タスクを開く

[データの正規化] タスクを MATLAB エディターでライブ スクリプトに追加するには、以下を行います。

  • [ライブ エディター] タブで [タスク][データの正規化] を選択します。

  • スクリプトのコード ブロック内に、normalizerangescale などの関連キーワードを入力します。コマンドの補完候補から [データの正規化] を選択します。キーワードによっては、1 つ以上の対応するパラメーターがタスクで自動的に更新されます。

すべて展開する

ライブ エディターの [データの正規化] タスクを使用して、データ セットを対話的に正規化し、計算されたパラメーター値を返します。その後、そのパラメーターを再利用して同じ正規化を別のデータ セットに適用します。

2 つの変数 TemperatureWindSpeed をもつ timetable を作成します。次に、同じ変数をもち、サンプルを 1 年後に取得する 2 番目の timetable を作成します。

Time1 = (datetime(2019,1,1):days(1):datetime(2019,1,10))';
Temperature = randi([10 40],10,1);
WindSpeed = randi([0 20],10,1);
T1 = timetable(Temperature,WindSpeed,RowTimes=Time1)
T1=10×2 timetable
       Time        Temperature    WindSpeed
    ___________    ___________    _________

    01-Jan-2019        35             3    
    02-Jan-2019        38            20    
    03-Jan-2019        13            20    
    04-Jan-2019        38            10    
    05-Jan-2019        29            16    
    06-Jan-2019        13             2    
    07-Jan-2019        18             8    
    08-Jan-2019        26            19    
    09-Jan-2019        39            16    
    10-Jan-2019        39            20    

Time2 = (datetime(2020,1,1):days(1):datetime(2020,1,10))';
Temperature = randi([10 40],10,1);
WindSpeed = randi([0 20],10,1);
T2 = timetable(Temperature,WindSpeed,RowTimes=Time2)
T2=10×2 timetable
       Time        Temperature    WindSpeed
    ___________    ___________    _________

    01-Jan-2020        30            14    
    02-Jan-2020        11             0    
    03-Jan-2020        36             5    
    04-Jan-2020        38             0    
    05-Jan-2020        31             2    
    06-Jan-2020        33            17    
    07-Jan-2020        33            14    
    08-Jan-2020        22             6    
    09-Jan-2020        30            19    
    10-Jan-2020        15             0    

ライブ エディターで [データの正規化] タスクを開きます。最初の timetable を正規化するには、T1 を入力データとして選択し、サポートされているすべての変数を正規化します。

既定では、[データの正規化] タスクは正規化されたデータを返します。タスクの [メソッドとパラメーターの指定] セクションで [中心値とスケール値を返す] を選択して、正規化されたデータに加え、タスクが正規化の実行に使用するセンタリング パラメーター値とスケーリング パラメーター値を返します。

正規化された値、センタリング値、およびスケーリング値は、出力引数 newTablecenterValue、および scaleValue でそれぞれ表されます。

Live Task
% Normalize Data
[newTable,centerValue,scaleValue] = normalize(T1);

% Display results
figure
tiledlayout(2,1);
nexttile
plot(T1.Time,T1.Temperature,"SeriesIndex",6,"DisplayName","Input data")
legend
ylabel("Temperature")
xlabel("Time")

nexttile
plot(T1.Time,newTable.Temperature,"SeriesIndex",1,"LineWidth",1.5, ...
    "DisplayName","Normalized data")
legend
ylabel("Temperature")
xlabel("Time")

set(gcf,"NextPlot","New")

ライブ エディター タスクの出力引数を後続のコードで使用できます。関数 normalize で最初の正規化のパラメーター値を使用して 2 番目の timetable T2 を正規化します。この手法により、T2 のデータが必ず T1 と同じ方法でセンタリングおよびスケーリングされます。

T2_norm = normalize(T2,"center",centerValue,"scale",scaleValue)
T2_norm=10×2 timetable
       Time        Temperature    WindSpeed
    ___________    ___________    _________

    01-Jan-2020      0.11165      0.084441 
    02-Jan-2020      -1.6562       -1.8858 
    03-Jan-2020      0.66992       -1.1822 
    04-Jan-2020        0.856       -1.8858 
    05-Jan-2020       0.2047       -1.6044 
    06-Jan-2020      0.39078       0.50665 
    07-Jan-2020      0.39078      0.084441 
    08-Jan-2020      -0.6327       -1.0414 
    09-Jan-2020      0.11165       0.78812 
    10-Jan-2020       -1.284       -1.8858 

関連する例

パラメーター

すべて展開する

このタスクは、ベクトル、table、または timetable に含まれる入力データに対して実行されます。データは single 型または double 型にできます。

入力データが table または timetable の場合、single 型または double 型の変数をすべて削除するには、[サポートされているすべての変数] を選択します。single または double の変数のうち、削除する対象を選択するには、[指定された変数] を選択します。

データを正規化するためのメソッドおよび関連パラメーターを次のオプションのいずれかとして指定します。

メソッド

メソッド パラメーター

説明

Z-score

Standard deviation

平均が 0、標準偏差が 1 となるようなセンタリングとスケーリング。

Median absolute deviation

中央値が 0中央絶対偏差1 となるようなセンタリングとスケーリング。

Norm

正の数値スカラー (既定値は 2) または無限大ノルムの Inf

p ノルムでのデータのスケーリング。

Range

上限と下限の範囲制限 (既定では、下限は 0、上限は 1)

[a, b] の形式の区間 (ただし、a < b) へのデータ範囲の再スケーリング

Median IQR

該当なし

中央値が 0四分位数間範囲1 となるようにデータをセンタリングおよびスケーリング。

Center

Mean (既定)

平均が 0 となるようなセンタリング。

Median

中央値が 0 となるようなセンタリング。

Numeric scalar

指定した数値だけ中央をシフト。

From workspace

数値配列の値、または入力データで指定された table 変数に一致している変数名をもつ table の値を使用して中央をシフト。

Scale

Standard deviation (既定)

標準偏差でデータをスケーリング。

Median absolute deviation

中央絶対偏差でデータをスケーリング。

First element

データの最初の要素でデータをスケーリング。

Interquartile range

四分位数間範囲単位でデータをスケーリング。

数値スカラー (既定値は 1)

指定した数値で除算してデータをスケーリング。

From workspace

数値配列の値、または入力データで指定された table 変数と一致する変数名をもつ table の値を使用してデータをスケーリング。
Center and scaleメソッド パラメーター Center および Scale を参照指定したパラメーターを使用してデータをセンタリングおよびスケーリング。

詳細

すべて展開する

バージョン履歴

R2021b で導入

すべて展開する