scikit-learn中KNN演算法資料歸一化的分裝
阿新 • • 發佈:2018-12-18
import numpy as np class StandardScaler: def __init__(self): """初始化""" """用符號和下劃線表示非使用者傳入的引數""" self.mean_ = None self.std_ = None def fit(self,X): """根據訓練資料獲得每一列的均值和方差""" """只處理2維的資料""" assert X.ndim == 2 self.mean_ = np.array([np.mean(X[:,i]) for i in X.shape[1]]) self.std_ = np.array([np.std(X[:,i]) for i in X.shape[1]]) return self def transform(self,X): """根據公式和求的均值方差求出資料歸一化的矩陣""" assert X.ndim == 2 assert self.mean_ and self.std_ is not None """建立一個和X大小,資料型別一樣的矩陣,用來存放歸一化後的資料""" resx = np.empty(shape = X.shape,dtype= float) for col in range(X.shape[1]): resx[:,col] = (X[:,col] - self.mean_[col]) /self.std_[col] return resx
只涉及到了均值方差的方法