ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

normalize

説明

N = normalize(A) は、中心が 0 で標準偏差が 1 の、A にあるデータのベクトル単位での z スコアを返します。

  • A がベクトルの場合、normalize はそのベクトル全体について演算する。

  • A が行列、table、または timetable の場合、normalize はデータの各列について個別に演算する。

  • A が多次元配列である場合、normalize は、サイズが 1 に等しくない最初の配列次元に沿って動作します。

N = normalize(A,dim) は次元 dim に沿った z スコアを返します。たとえば、normalize(A,2) は各行を正規化します。

N = normalize(___,method) は、前述の構文のいずれかの正規化方式を指定します。たとえば、normalize(A,'norm')A のデータをユークリッド ノルム (2 ノルム) により正規化します。

N = normalize(___,method,methodtype) は、与えられた method の正規化のタイプを指定します。たとえば、normalize(A,'norm',Inf)A のデータを無限大ノルムを使って正規化します。

N = normalize(___,'DataVariables',datavars) は、入力データが table または timetable 内にある場合に演算の対象とする変数を指定します。

すべて折りたたむ

z スコアを計算してベクトルと行列のデータを正規化します。

ベクトル v を作成して z スコアを計算し、平均が 0、標準偏差が 1 となるようデータを正規化します。

v = 1:5;
N = normalize(v)
N = 1×5

   -1.2649   -0.6325         0    0.6325    1.2649

行列 B を作成し、各列の z スコアを計算します。その後、各行を正規化します。

B = magic(3)
B = 3×3

     8     1     6
     3     5     7
     4     9     2

N1 = normalize(B)
N1 = 3×3

    1.1339   -1.0000    0.3780
   -0.7559         0    0.7559
   -0.3780    1.0000   -1.1339

N2 = normalize(B,2)
N2 = 3×3

    0.8321   -1.1094    0.2774
   -1.0000         0    1.0000
   -0.2774    1.1094   -0.8321

ベクトル A を標準偏差によりスケーリングします。

A = 1:5;
Ns = normalize(A,'scale')
Ns = 1×5

    0.6325    1.2649    1.8974    2.5298    3.1623

A をスケーリングして、その範囲が区間 [0,1] に収まるようにします。

Nr = normalize(A,'range')
Nr = 1×5

         0    0.2500    0.5000    0.7500    1.0000

ベクトル A を作成して、1 ノルムにより正規化します。

A = 1:5;
Np = normalize(A,'norm',1)
Np = 1×5

    0.0667    0.1333    0.2000    0.2667    0.3333

A のデータをセンタリングし、平均が 0 になるようにします。

Nc = normalize(A,'center','mean')
Nc = 1×5

    -2    -1     0     1     2

5 人の身長情報が含まれる table を作成します。

LastName = {'Sanchez';'Johnson';'Lee';'Diaz';'Brown'};
Height = [71;69;64;67;64];
T = table(LastName,Height)
T=5×2 table
    LastName     Height
    _________    ______

    'Sanchez'      71  
    'Johnson'      69  
    'Lee'          64  
    'Diaz'         67  
    'Brown'        64  

身長データを最高身長により正規化します。

N = normalize(T,'norm',Inf,'DataVariables','Height')
N=5×2 table
    LastName     Height 
    _________    _______

    'Sanchez'          1
    'Johnson'    0.97183
    'Lee'        0.90141
    'Diaz'       0.94366
    'Brown'      0.90141

入力引数

すべて折りたたむ

入力データ。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。

A が数値配列で、型が single である場合、出力の型も single になります。それ以外の場合、出力の型は double です。

normalizeANaN の値を無視します。

データ型: double | single | table | timetable
複素数のサポート: あり

演算の対象の次元。正の整数のスカラーとして指定します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

正規化方式。次のオプションのいずれかとして指定します。

方式

説明

'zscore'

平均が 0 で標準偏差が 1 の z スコア

'norm'

2 ノルム

'scale'

標準偏差によるスケーリング

'range'

データ範囲を [0,1] にスケーリング

'center'

平均が 0 となるようにデータをセンタリング

方式のタイプ。指定した方式に応じて、スカラー、2 要素行ベクトル、または文字ベクトルとして指定します。

方式

方式のタイプのオプション

説明

'zscore'

'std' (既定)

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

'robust'

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

'norm'

正の数値スカラー (既定値は 2)

p ノルム

Inf

無限大ノルム

'scale'

'std' (既定)

標準偏差によるスケーリング

'mad'

中央絶対偏差によるスケーリング

'first'

データの最初の要素によるスケーリング

数値スカラー

数値によるデータのスケーリング

'range'

2 要素の行ベクトル (既定値は [0 1])

[a b] の形式の区間 (ただし、a < b)

'center'

'mean'

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

'median'

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

数値スカラー

数値による中心のシフト

table 変数。'DataVariables' と、スカラー、ベクトル、cell 配列、または関数ハンドルのいずれかで構成される、コンマ区切りのペアとして指定します。'DataVariables' の値は、入力 table のどの列が操作対象となるかを示し、次のいずれかにできます。

  • 単一の table 変数名を指定する文字ベクトルまたはスカラー string

  • 各要素が table 変数名である、文字ベクトルの cell 配列または string 配列

  • table 変数インデックスのベクトル

  • 各要素が table 変数に対応する logical ベクトル。true の場合は対応する変数を含めて、false の場合は対応する変数を除外します。

  • 入力として table をとり、論理スカラーを返す関数ハンドル

例: 'Age'

例: {'Height','Weight'}

例: @isnumeric

データ型: char | string | cell | double | single | logical | function_handle

詳細

すべて折りたたむ

Z スコア

平均が μ で標準偏差が σ の確率変数 X では、値 x の z スコアは次のようになります。

平均が で標準偏差が S のサンプル データでは、データ点 x の z スコアは次のようになります。

z スコアは、標準偏差に基づいて平均からのデータ点の距離を測定します。標準化されたデータセットの平均は 0 で、標準偏差は 1 です。また、元のデータセットの形状プロパティ (同じ傾斜と尖度) は保持されます。

P ノルム

N 個の要素をもつベクトル v の p ノルムの一般的定義は次のとおりです。

vp=[k=1N|vk|p]1/p,

ここで、p は任意の正の実数値、Inf、または -Inf です。p の一般的な値をいくつか次に挙げます。

  • p が 1 の場合、結果の 1 ノルムはベクトル要素の絶対値の和となる。

  • p が 2 の場合、結果の 2 ノルムはベクトルの大きさすなわちユークリッド長を表します。

  • p が Inf の場合は、v=maxi(|v(i)|) になります。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

参考

| |

R2018a で導入