2016-12-15 44 views
3

我想实现一个预测股市在python中的神经网络。在输入中我有一个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

意思错误的两个可能原因:我认为数据缩放是基于每个类别的。如果您出于某种原因不想这样做,请从初始配件中取出标签。此外,应用于测试数据的缩放比例是具有一定误差的学习转换。这可能是你错误的根源。这仅适用于测试数据。 –