I read on several places about the
normalization of features in the machine learning method. But I normalize my training data row-wise as shown in the following code. I showed only two samples of training data. My question is that while performing the normalization on test data, should I choose the minimum and maximum value of each test sample to normalize each test data or should I uses minimum and maximum values from the training data?
As an explanation in first row -3 is one feature, -2 is second 0 is third and 3 is fifth feature. And second row is second sample comprising of 5 features from -4 to 2. Similar to all other machine learning algorithms each row correspons to one sample consisting of 5 features.
data = np.array([[-3,-2,0, 2,3],[-4,-1,0,3,2]]) print(data) print(data.shape) for i in range(len(data)): print("i: ",i) old_range = np.amax(data[i]) - np.amin(data[i]) new_range = 2 new_min = -1 data_norm = ((data[i] - np.amin(data[i])) / old_range)*new_range + new_min print(data_norm)
[-1. -0.66666667 0. 0.66666667 1. ] [-1. -0.14285714 0.14285714 1. 0.71428571]