在缩放或规范化值之后,将更改图形Python Sklearn pandas

时间:2018-08-03 08:53:13

标签: python python-3.x pandas scikit-learn

我正在尝试使用sklearn.preprocessing.MinMaxScaler()缩放或标准化训练数据集的输入。标准化输入后,我知道了非常奇怪的输出图。它不像标准化之前的输入。请看一下这个问题:有关熊猫列标准化的参考:https://stackoverflow.com/a/26415620/4948889

def normalize_data(df):
    cols = list(df_stock.columns.values)
    x = df.values #returns a numpy array
    min_max_scaler = sklearn.preprocessing.MinMaxScaler()
    x_scaled = min_max_scaler.fit_transform(x)
    df = pd.DataFrame(x_scaled)
    df.columns = cols
    return df
df_stock = df.copy()
cols = list(df_stock.columns.values)
print('df_stock.columns.values = ', cols)
df_stock_norm = df_stock.copy()
df_stock_norm = normalize_data(df_stock_norm)

请参见输入数据框的前后图。 之前:

plt.figure(figsize=(15, 5));
plt.subplot(1,2,1);
plt.plot(df.open.values[:20], color='red', label='open')
plt.plot(df.close.values[:20], color='green', label='close')
plt.plot(df.low.values[:20], color='blue', label='low')
plt.plot(df.high.values[:20], color='black', label='high')
plt.title('stock price')
plt.xlabel('time [days]')
plt.ylabel('price')
plt.legend(loc='best')
plt.show()

输出:
before input

之后:

  plt.figure(figsize=(15, 5));
    plt.plot(df_stock_norm.open.values[:20], color='red', label='open')
    plt.plot(df_stock_norm.close.values[:20], color='green', label='low')
    plt.plot(df_stock_norm.low.values[:20], color='blue', label='low')
    plt.plot(df_stock_norm.high.values[:20], color='black', label='high')
    plt.title('stock')
    plt.xlabel('time [days]')
    plt.ylabel('normalized price')
    plt.legend(loc='best')
    plt.show()

输出:
enter image description here

说明:
请在两个图表上看到高值和低值。即使在归一化之后,它们也应该是奇怪且不同的。

请让我知道我误会了。
已编辑:

将此作为sample dataset进行测试

0 个答案:

没有答案