意外的结果sklearn StandardScaler
Posted
技术标签:
【中文标题】意外的结果sklearn StandardScaler【英文标题】:Unexpected result 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')
【问题讨论】:
【参考方案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
这将产生如下:
【讨论】:
以上是关于意外的结果sklearn StandardScaler的主要内容,如果未能解决你的问题,请参考以下文章
使用 sklearn StandardScaler 意外获得不同的标准化数据
如何解释 sklearn.tree.tree_tree.value 属性的(意外)值?
sklearn NBClassifier 有一个意外的关键字参数“var_smoothing”
sklearn.cluster.KMeans 得到“TypeError:__init__() 得到了一个意外的关键字参数‘n_jobs’”