深度学习(六) 测试数据集归一化

对测试数据集如何归一化呢?

深度学习(六) 测试数据集归一化_第1张图片

所以要保存训练集的均值和方差。

在scikit-learn对于数据归一化封装了一个类Scaler.

深度学习(六) 测试数据集归一化_第2张图片

深度学习(六) 测试数据集归一化_第3张图片

深度学习(六) 测试数据集归一化_第4张图片

深度学习(六) 测试数据集归一化_第5张图片

深度学习(六) 测试数据集归一化_第6张图片

进行封装:

import numpy as np


class StandardScaler:

    def __init__(self):
        self.mean=None
        self.scale=None;

    def fit(self,X):
        """根据训练数据集X获得数据的均值和方差"""
        assert X.ndim == 2, "The dimension of X must be 2"
        self.mean=np.array([np.mean(X[:i]) for i in range(X.shape[1])])
        self.scale=np.array([np.std(X[:i]) for i in range(X.shape[1])])
        return self

    def tranfrom(self,X):
        """将X根据这个StandardScaler进行均值方差归一化处理"""
        assert X.ndim == 2, "The dimension of X must be 2"
        assert self.mean_ is not None and self.scale_ is not None, \
            "must fit before transform!"
        assert X.shape[1] == len(self.mean_), \
            "the feature number of X must be equal to mean_ and std_"

        resX=np.empty(shape=X.shape,dtype=float)
        for col in range(X.shape[1]):
            resX[:col]=(X[:,col]-self.mean_[col])/self.scale_[col]

        return resX

 

你可能感兴趣的:(深度学习,深度学习)