【问题标题】:Unexpected result sklearn StandardScaler意外的结果sklearn StandardScaler
【发布时间】:2021-05-11 23:00:46
【问题描述】:

我尝试使用以下代码测试一些 Scaler。 我希望得到像蓝色分布一样的结果,但会按比例缩放。 我得到的是橙色的。 有人可以帮帮我吗?

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler


x1=np.random.normal(loc=21,scale=0.2,size=(100,1))
x2=np.random.normal(loc=1000,scale=550,size=(100,1))

data=np.concatenate((x1,x2),axis=1)

df=pd.DataFrame(data,columns=['x1','x2'])

fig1, axs=plt.subplots(nrows=1, ncols=2)
axs[0].hist(df['x1'])
axs[1].hist(df['x2'])

scaler = StandardScaler()
scaler.fit(df)
df_trans=scaler.transform(df)

fig2, axs=plt.subplots(nrows=1,ncols=2)
axs[0].hist(df_trans[0],color='orange')
axs[1].hist(df_trans[1],color='orange')

【问题讨论】:

    标签: python pandas matplotlib scikit-learn


    【解决方案1】:

    使用df_trans[0],您不会选择整个列。您应该将它们更改为:

    axs[0].hist(df_trans[:,0],color='orange') # all rows, first column
    axs[1].hist(df_trans[:,1],color='orange') # all rows, second column
    

    这将产生如下:

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2017-12-27
      • 2017-12-24
      • 2018-09-24
      • 2019-10-20
      • 2022-01-12
      • 2019-02-17
      • 2017-05-31
      • 2018-11-01
      相关资源
      最近更新 更多