【问题标题】:MinMaxScaler not scaling correctlyMinMaxScaler 无法正确缩放
【发布时间】:2019-05-18 02:02:50
【问题描述】:

我正在使用从 Lynda.com 下载的 sklearn MinMaxScaler 代码来扩展我的数据集以获取预测代码。特征游侠应该是(0,1),但我注意到在我的试验数据中有些列大于 1。我相信这导致我的预测代码不正确。有人可以帮忙吗? Belo 是我正在使用的代码...

import pandas as pd
from sklearn.preproMinmaxcessing import MinMaxScaler

# Load training data set from CSV file
training_data_df = pd.read_csv("10596_data_training.csv")

# Load testing data set from CSV file
test_data_df = pd.read_csv("10596_data_test.csv")

# Load the trial data set from CSV file
trial_data_df = pd.read_csv("day05.csv")

# Data needs to be scaled to a small range like 0 to 1 for the neural
# network to work well.
scaler = MinMaxScaler(feature_range=(0, 1))

# Scale both the training inputs and outputs
scaled_training = scaler.fit_transform(training_data_df)
scaled_testing = scaler.transform(test_data_df)
scaled_trial = scaler.transform(trial_data_df)

# Print out the adjustment that the scaler applied to the total_earnings column of data
print("Note: total_hours values were scaled by multiplying by {:.10f} and     adding {:.6f}".format(scaler.scale_[40], scaler.min_[40]))

# Create new pandas DataFrame objects from the scaled data
scaled_training_df = pd.DataFrame(scaled_training,      columns=training_data_df.columns.values)
scaled_testing_df = pd.DataFrame(scaled_testing,     columns=test_data_df.columns.values)
scaled_trial_df = pd.DataFrame(scaled_trial, columns=trial_data_df.columns.values)

# Save scaled data dataframes to new CSV files
scaled_training_df.to_csv("10596_data_training_scaled.csv", index=False)
scaled_testing_df.to_csv("10596_data_test_scaled.csv", index=False)
scaled_trial_df.to_csv("day05_scaled.csv", index=False)

【问题讨论】:

    标签: python scikit-learn keras


    【解决方案1】:

    您正在对数据子集“训练”您的 MinMaxScaler,然后转换不同的子集。 MinMaxScaler 只是减去训练集的最小值,然后除以最大值。如果试验集的值大于训练集的最大值或小于训练集的最小值,则您的值将超出 [0,1] 范围。这是意料之中的,也是可以接受的。

    【讨论】:

    • 要将数据从 0 重新缩放到 1 范围,0 值是否可以接受?例如:预测=预测+0.00000,预测=预测/0.0045372051
    • 当然——你首先要进行缩放的唯一原因是因为许多 ML 算法不能很好地处理差异很大的缩放。一般来说,零值数据点没有什么特别之处。
    猜你喜欢
    • 2018-06-22
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多