1. 程式人生 > >python對樣本進行歸一化處理

python對樣本進行歸一化處理

 資料歸一化處理是資料探勘中一項基本的工作,不同評價指標往往具有不同的量綱和量綱單位,這樣

的情況會影響到資料分析的結果,為了消除指標之間量綱的影響,需要進行資料標準化處理,以解決

資料指標之間的可比性。例如要求解距離(歐氏距離等),需要平方和操作,非常小的數貢獻很小,反之大的

數太大,這樣誤差很大。

 

下面用min-max標準化方法進行歸一化處理:

 

# 進行歸一化處理
def maxmin_norm(array):
    """
    :param array: 每行為一個樣本,每列為一個特徵,且只包含資料,沒有包含標籤
    :return:
    """
    maxcols = array.max(axis = 0)
    mincols = array.min(axis = 0)
    data_shape = array.shape
    data_rows, data_cols = data_shape
    t = np.empty((data_rows, data_cols))
    for i in range(data_cols):
        t[:, i] = (array[:, i] - mincols[i]) / (maxcols[i] - mincols[i])
    return t

array是樣本的特徵矩陣,t是歸一化後的矩陣