Keras/NN对输入应用不同的缩放/归一化

2024-09-28 01:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在我学习ML的过程中,我测试了一些神经网络,我发现我的输出似乎没有考虑到我的3个输入中的一个是非常重要的

我的数据集由4列(csv)组成:

  • 3是数字(包括输出)在1000到1500000之间

  • 1是一个介于0和100之间的数字,它是我的NN未考虑的数字

我使用scikit learn的MinMaxScaler以这种方式缩放数据集:

df = pd.read_csv('rawData.csv')
dataset = df.values

min_max_scaler = preprocessing.MinMaxScaler()
dataset = min_max_scaler.fit_transform(dataset)

X = dataset[:,0:3] # input
Y = dataset[:,3]   # output

我还使用另一种方法来缩放数据(当我想测试我的模型时):

min_test = np.min(runset)
max_test = np.max(runset)

normalized = (runset - min_test) / (max_test - min_test)

test = model.predict(normalized)

result = test * (max_test - min_test) + min_test

所以我的问题是:对于不同的输入,有没有可能并且建议使用不同的量表?如果有,我该怎么做


Tags: csv数据testdf过程np数字min
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:18

对你的问题的简短回答是另一个问题:我是否有关于我的数据集特征的重要性的先验知识

  • 如果是,我可以对数据进行缩放,使更重要的特征具有更大的方差/范围
  • 如果不是,我应该用平均值为0,标准差为1的方式来缩放我的数据。为什么?主要用于改善数值条件,消除初始权值的尺度依赖性问题,加快训练过程,降低陷入局部最优的风险

不要低估梯度下降方法对缩放的敏感性

最后,记住使用训练集中的统计数据(平均值和标准差)来标准化验证/测试集

相关问题 更多 >

    热门问题