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

我尝试手动实现一个归一化函数,而不是使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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