手动实现的归一化函数执行时间过长

我尝试手动实现一个归一化函数,而不是使用scikit-learn的函数。原因是我需要手动定义最大值和最小值参数,而scikit-learn不允许这种修改。

我成功地实现了这个函数,将值归一化到0到1之间。但运行时间非常长。

问题: 有没有其他高效的方法可以做到这一点?我怎样才能让它执行得更快?

以下是我的代码:

scaled_train_data = scale(train_data)def scale(data):    for index, row in data.iterrows():        X_std = (data.loc[index, "Close"] - 10) / (2000 - 10)        data.loc[index, "Close"] = X_std    return data

2000和10是我手动定义的属性,而不是数据集的最大值和最小值。

提前感谢你。


回答:

为什么要使用循环?你可以直接使用

train_data['close'] = (train_data['close'] - 10)/(2000 - 10) 

来利用向量化的numpy函数。当然,如果你更喜欢,你也可以将其放入一个函数中。

另外,如果你想将数据重新缩放到一个线性范围,你可以使用 http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html。这样做的好处是你可以保存它,然后以相同的方式重新缩放测试数据。

Related Posts

如何使用数据库训练智能聊机器人并将其添加到iOS应用中

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

什么是这个多项式朴素贝叶斯模型代码的预期结果

预期结果应该是什么 当我手动计算时,我得到 P(y=1…

如何查找神经网络的假阳性和假阴性率?

我有以下代码,它对神经网络运行得很好。我知道我需要使用…

如何使用 ‘for’ 循环获取文件夹中不同图像的类别。我已经有一个训练好的模型

我有一个训练好的模型,我想用这个模型来预测存储在一个文…

想要了解TensorFlow模型检查点文件的输入和输出列表及其形状 [duplicate]

这个问题已经有了答案: 从TensorFlow的.ck…

Keras目标维度不匹配

尝试进行一个单标签分类问题,其中num_classes…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注