MATLAB - 資料歸一化



Matlab 是一種強大的語言,它允許你使用它進行大量的解決問題、資料分析、矩陣和向量運算以及科學計算等工作。

Matlab 有豐富的庫和軟體資源,可以簡化你的工作。在這裡,我們將討論 Matlab 中的資料歸一化。

歸一化處理指的是組織資料。我們將學習如何在 Matlab 中進行資料歸一化,也就是組織資料。

歸一化是資料分析中最常見的步驟,它將資料集的值縮放到特定範圍,通常在 0 到 1 之間。在 Matlab 中,可以使用 `normalize` 函式對資料集進行歸一化。`normalize` 函式具有多種選項,包括範圍和可執行的歸一化型別。

語法

N = normalize(X)
N = normalize(X,dim)
N = normalize(___,method)
N = normalize(___,method,methodtype)

讓我們用描述和示例來理解每個語法。

N = normalize(X)

此函式將返回 X 的 z 分數資料,中心值為 0,標準差為 1。

Z 分數衡量的是資料點與平均值的標準差數。

Z 分數的公式為:

$$\mathrm{Z=\frac{(x\: -\:\mu )}{\sigma }}$$

其中 x = 觀測值或資料點。

$\mathrm{\mu}$ 是平均值

$\mathrm{\sigma}$ 是標準差。

對於 `normalize` 方法,輸入 X 可以是向量、矩陣、多維陣列或表格。

以下是 `normalize` 函式根據輸入進行操作的方式:

  • 如果給定的輸入 X 是向量,則 `normalize` 函式將對 X 中的所有向量進行操作。
  • 如果給定的輸入 X 是矩陣,則 `normalize` 函式將分別對 X 中的每一列進行操作。
  • 如果給定的輸入 X 是多維陣列,則 `normalize` 函式將首先對 X 的第一個大小不等於 1 的維度進行操作。
  • 如果給定的輸入 X 是表格或時間表,則 `normalize` 函式將分別對 X 的每個變數進行操作。

讓我們看幾個使用 `normalize(X)` 函式的例子。

示例 1

在下面的示例中,我們將使用 X 作為向量

X = 1:10;
N = normalize(X)

在 Matlab 中執行後,輸出如下:

>> X = 1:10;
N = normalize(X)

N =

   -1.4863   -1.1560   -0.8257   -0.4954   -0.1651    0.1651    0.4954    0.8257    1.1560    1.4863

>> 

示例 2

在下面的示例中,我們將使用 X 作為矩陣。

X = magic(3)

N = normalize(X)

在 Matlab 中執行後,輸出如下:

>> X = magic(3)

N = normalize(X)

X =

     8     1     6
     3     5     7
     4     9     2


N =

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

N = normalize(X,dim)

在上面的語法中,`dim` 是矩陣 X 的維度。根據給定的維度,`normalize` 函式將對該維度進行操作。例如,如果給定的維度是 2,則 `normalize` 函式將對每一行進行操作。

示例

X = magic(3)

N = normalize(X, 2)

在 Matlab 中執行後,輸出如下:

>> X = magic(3)

N = normalize(X, 2)

X =

     8     1     6
     3     5     7
     4     9     2

N =

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

>>

N = normalize(___,method)

在此語法中,歸一化將根據給定的方法進行操作。可以使用的方法包括 center、scale、norm、range 和 zscore。

示例

在此示例中,我們將使用向量作為 X,並將方法設定為 `scale`。

X = 1:5;
N = normalize(X,"scale")

在 Matlab 中執行後,輸出為

>> X = 1:5;
N = normalize(X,"scale")

N =

    0.6325    1.2649    1.8974    2.5298    3.1623

讓我們嘗試使用 range 方法進行相同的示例

>> X = 1:5;
N = normalize(X,"range")

N =

   0    0.2500    0.5000    0.7500    1.0000

>>

N = normalize(___,method,methodtype)

在這裡,`normalize` 函式將根據給定的 method 和 methodtype 進行操作。

以下是 method 和 methodtype 的組合。

方法 方法型別 描述
zscore std (預設) 獲取 z 分數值。將資料中心設定為平均值為 0,並將資料縮放為標準差為 1。
robust 計算 z 分數值,資料中心設定為平均值為 0,並將資料縮放為中位數絕對偏差為 1。
norm 正數值標量(預設為 2) 使用 p 範數作為歸一化因子,其中 p 是正整數。
Inf 使用 p 範數作為歸一化因子,其中 p 為無窮大。
scale std (預設) 將資料縮放為標準差為 1。
mad 在縮放資料的同時,將中位數絕對偏差設定為 1。
first 使用資料的第一個元素進行縮放。
iqr 使用四分位距範圍縮放資料
數值陣列 使用數值陣列縮放資料。
表格 使用表格變數縮放資料。
range 2 元素行向量(預設為 [0 1]) 將資料的範圍重新縮放為 [a b],其中 a < b。
center "mean" (預設) 將資料中心設定為平均值為 0。
"median" 將資料中心設定為平均值為 0。
數值陣列 使用數值陣列作為資料中心。
表格 使用表格變數作為資料中心。

示例 1

在此示例中,我們將使用 `norm` 方法和正整數作為 methodtype。

X = 1:5;
N = normalize(X,"norm",2)

在 Matlab 命令視窗中執行上述程式碼後,輸出如下:

>> X = 1:5;
N = normalize(X,"norm",2)

N =

    0.1348    0.2697    0.4045    0.5394    0.6742

>> 

示例 2

在此示例中,我們將使用 `center` 作為方法,並將 `mean` 作為 methodtype。

X = 1:5;
N = normalize(X,"center","mean")

在 Matlab 命令視窗中執行後,輸出如下:

>> X = 1:5;
N = normalize(X,"center","mean")

N =

    -2    -1     0     1     2

>> 
廣告
© . All rights reserved.