python - 数据集标准化
问题描述
我尝试使用MinMaxScaller
(from sklearn.preprocessing
) 来规范化训练数据。然后创建一个经过训练的文件并保存为“XXX.h5”。
我试图创建一个可以读取“XXX.h5”并使用经过训练的模型的预测程序。我需要缩放输入数据然后反向缩放输出数据。
有没有办法不再次使用训练数据来缩放输入数据?
- 我需要再次阅读培训文件以获得规模:
df=pd.read_excel('data.xls')
x=np.array(df['x'])
y=np.array(df['y'])
x_scaler=MinMaxScaler()
y_scaler=MinMaxScaler()
x=x_scaler.fit_transform(x)
y=y_scaler.fit_transform(y)
- 然后缩放输入“x”以进行预测:
preds= model.predict(x_scaler.transform(input_x))
- 反转比例以获得输出:
preds=y_scaler.inverse_transform( preds)
基于上述,即使我不需要训练模型,我也总是需要训练数据。这是真的吗?
解决方案
一种可能的方法是保存 Scaler 的参数。
Sklearns MinMaxScaler 具有 .getparams 和 .setparams 两种方法,您应该能够使用它们获取参数、保存它们、重新加载它们并使用它们来设置缩放器。
这将需要保存和加载附加文件,但在样本量较大的情况下可能更可取。
推荐阅读
- php - 如何从其他 php 文件中回显?
- http - CORS 允许 * 但仍然在 POST 请求中收到 403
- excel - 如何从 Access 文件中查询 Excel VBA 中的日期
- php - Laravel 错误从数据库获取最后 5 行的问题
- reactjs - Highcharts 不会在值更改时重新加载或重新渲染图表
- splunk - Splunk Dashboard - 评估案例和范围图结果之间的区别
- java - 如何获取 BMP 格式图像的 Base64 字符串
- mongodb - 使用 ansible 或 shell 脚本自动将分片添加到 mongodb 中的集群
- elasticsearch - Elasticsearch 想要检索所有节点的内存百分比
- c# - 如何在 .Net 5 项目中将 Sentry 连接到 NLog