На этом шаге мы рассмотрим особенности подготовки данных, в частности, ее нормализацию.
Было бы проблематично передать в нейронную сеть значения, имеющие разные диапазоны. Она, конечно, сможет автоматически адаптироваться к разнородным данным, однако это усложнит обучение. На практике к таким данным принято применять нормализацию: для каждого признака во входных данных (столбца в матрице входных данных) из каждого значения вычитается среднее по этому признаку, а разность делится на стандартное отклонение. В результате признак центрируется по нулевому значению и имеет стандартное отклонение, равное единице. Такую нормализацию легко выполнить с помощью NumPy.
mean = train_data.mean(axis=0) train_data -= mean std = train_data.std(axis=0) train_data /= std test_data -= mean test_data /= std
Обратите внимание, что величины, используемые для нормализации контрольных данных, вычисляются с использованием обучающих данных. Никогда не следует использовать в работе какие-либо значения, вычисленные по контрольным данным, даже для таких простых шагов, как нормализация.
На следующем шаге мы рассмотрим конструирование модели.