繁体   English   中英

StandardScaler 返回全零

[英]StandardScaler returns all zeros

我正在尝试使用StandardScaler()转换我的字典,但它只给了我零。 如何解决?

from sklearn.preprocessing import StandardScaler
import pandas as pd

param ={
  "user_id": 22058,
  "signup_day": 24,
  "signup_month": 2,
  "signup_year": 2015,
  "purchase_day": 18,
  "purchase_month": 4,
  "purchase_year": 2015,
  "purchase_value": 34,
  "age": 39,
  "source_Ads": 0,
  "source_Direct": 0,
  "source_SEO": 1,
  "browser_Chrome": 1,
  "browser_FireFox": 0,
  "browser_IE": 0,
  "browser_Opera": 0,
  "browser_Safari": 0,
  "sex_F": 0,
  "sex_M": 1
}

new = (pd.Series(param, index=['user_id', 'signup_day', 'signup_month', 'signup_year', 'purchase_day', 'purchase_month', 'purchase_year', 'purchase_value', 'age', 'source_Ads', 'source_Direct', 'source_SEO', 'browser_Chrome', 'browser_FireFox','browser_IE', 'browser_Opera', 'browser_Safari', 'sex_F', 'sex_M'])).values.reshape(1,-1)
print(new)

scaler = StandardScaler()
X_new = scaler.fit_transform(new)
print(X_new)

结果:

new = [[22058 24 2 2015 18 4 2015 34 39 0 0 1 1 0 0 0 0 0 1]]

X_new =[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]

StandardScaler旨在缩放数据的列,这里每列只有一个值,因此每个值都设置为 0。每列使用多个值,您可能会得到预期的结果!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM