标准化缩放
标准化缩放会将数值特征变换为均值为 0、方差为 1。在本练习中,您将使用 sklearn 中的 StandardScaler() 进行标准化缩放。首先,您将只选择需要缩放的相关列,这一步结合了对数值列的过滤以及对列含义的了解。该过滤已为您提供,并将通过正则表达式来完成,从而支持部分字符串匹配。然后,您将使用 fit_transform() 来变换这些相关列。
pandas 模块已在您的工作区以 pd 提供,示例 DataFrame 已加载为 df。此外,hour 列已转换为 datetime,并且可使用来自 sklearn.preprocessing 的 StandardScaler。
本练习是课程的一部分
用 Python 预测 CTR 的机器学习实战
练习说明
- 选择数值列,并使用
.select_dtypes()结合给定的filter_cols进行过滤。 - 对相关列应用标准化缩放:先创建
StandardScaler(),再使用.fit_transform()。 - 使用
.var()输出新变换后各列的方差。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Get non-categorical columns, with a filter
num_df = df.____(include=['int', 'float'])
filter_cols = ['click', 'banner_pos', 'device_type',
'search_engine_type', 'product_type', 'advertiser_type']
new_df = num_df[num_df.columns[~num_df.columns.____(filter_cols)]]
num_cols = new_df.____
# Transform columns using StandardScaler
scaler = ____()
df[num_cols] = scaler.____(df[____])
# Print mean and variance of transformed columns
print(df[num_cols].mean())
print(df[num_cols].____)