機器學習中的資料預處理方法 c 實現

2021-09-25 12:26:38 字數 1218 閱讀 2432

1.最小-最大規範化

最小-最大規範化對原始資料進行線性變換,變換到[0,1]區間(也可以是其他固定最小最大值的區間)

x[n] = (x[n] - min) / (max - min)

2. 標準化(standardization or mean removal and variance scaling)

變換後各維特徵有0均值,單位方差。也叫z-score規範化(零均值規範化)。計算方式是將特徵值減去均值,除以標準差。

x[n] = (x[n] - mean) / stdev

3. l2-normalization ( 人臉識別中會用到 )

normalization主要思想是對每個樣本計算其p-範數,然後對該樣本中每個元素除以該範數,這樣處理的結果是使得每個處理後樣本的p-範數(l1-norm,l2-norm)等於1。

p-範數的計算公式:||x||p = ( |x1|^p + |x2|^p +…+ |xn|^p )^1/p

該方法主要應用於文字分類和聚類中。例如,對於兩個tf-idf向量的l2-norm進行點積,就可以得到這兩個向量的余弦相似性。

**:

#include #include #include //

//常用的標準化方法:min-max標準化、 0均值歸一化、 l2規範化

enum normalizationflag ;

templatevoid normalization(_tp* src, int length, int normalizationflag=z_score)

} else if(normalizationflag == z_score)

mean = mean / length; //均值

_tp stdev = 0;

for (int i = 0; i < length; ++i)

stdev = stdev / (length - 1);

stdev = sqrt(stdev); //標準差

for (int i = 0; i < length; ++i)

} else if (normalizationflag == l2)

src_p = sqrt(src_p); //l2範數

for (int i = 0; i < length; ++i)

}}

機器學習 資料預處理

均值為0,標準差為1 from sklearn import preprocessing scaler preprocessing.standardscaler scaler.fit transform x 對原始資料進行線性變換,變換到 0,1 區間 也可以是其他固定最小最大值的區間 from s...

機器學習 資料預處理

1 連續資料特徵離散化的方法 由於lr 中模型表達能力有限,可以通過特徵離散化來提高非線性學習能力。主要方法 1 等距離散 取值範圍均勻劃分成n 等分,每份的間距相等。2 等頻離散 均勻分為n 等分,每份內包含的觀察點數相同 3 優化離散 3 1 卡方檢驗方法 統計樣本的實際觀測值與理論判斷值之間的...

機器學習python資料預處理

from pandas import read csv from sklearn.preprocessing import standardscaler from numpy import set printoptions from sklearn.preprocessing import minm...