2016-12-15 12 views
3

Я пытаюсь внедрить нейронную сеть, которая предсказывает фондовый рынок на питоне. На входе у меня есть массив 2d numpy, и я хочу нормализовать данные. Я пробовал с этим кодом, но я не это, это лучший выбор для этого типа задач.Как нормализовать ввод нейронной сети, предсказывающей фондовый рынок [python]

def normData(data): 
    #data_scaled = preprocessing.scale(data) 
    data = scale(data, axis=0, with_mean=True, with_std=True, copy=True) 
    return data 

Вы знаете какой-либо другой процесс нормализации, который мог бы лучше соответствовать этой задаче и ее реализации на python? Спасибо

UPDATE: Теперь перед нормализацией я transfrom в ndarray перечислить, но печать

print data.mean(axis=0) 

среднее является путь далеко от 0. Его что-то вроде 4. Любые идеи?

ответ

3

Я лично использовал бы стандартный скалярный модуль scikit-learn. Это позволяет вам выбрать среднее и стандартное отклонение, которое вы хотите, и очень быстро.

from sklearn.preprocessing import StandardScaler 

# Load data and split into testing and training data 

scale = StandardScaler(with_mean=0, with_std=1) 
scale.fit(training_data, training_label) 
new_training_data = scale.transform(training_data) 
new_testing_data = scale.transform(testing_data) 

Ссылка на документацию:

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html

+0

Спасибо, я пытался, но это дает мне некоторые предупреждения. Я обновил (а) вопрос в их числе – Pino

+0

мои данные содержат 6 различных функций. – Pino

+1

Две возможные причины ошибочного значения: я считаю, что масштабирование данных выполняется для каждого класса. Если вы по какой-то причине не хотите этого делать, удалите метки из исходного фитинга. Кроме того, масштабирование, применяемое к данным тестирования, представляет собой научное преобразование с некоторой ошибкой. Возможно, это источник вашей ошибки. Однако это относится только к тестовым данным. –