【发布时间】:2022-01-11 00:21:46
【问题描述】:
我无法理解为什么我会得到这个错误的管道输出。
管道代码:
my_pipeline = Pipeline(steps=[
('imputer', SimpleImputer(strategy='median')),
('std_scaler', StandardScaler())
])
真实数据:
real = [[0.02498, 0.0, 1.89, 0.0, 0.518, 6.54, 59.7, 6.2669, 1.0, 422.0, 15.9, 389.96, 8.65]]
我想要的管道输出:
want = [[-0.44228927, -0.4898311 , -1.37640684, -0.27288841, -0.34321545, 0.36524574, -0.33092752, 1.20235683, -1.0016859 , 0.05733231, -1.21003475, 0.38110555, -0.57309194]]
但运行以下代码后:
getting = my_pipeline.fit_transform(real)
我得到:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
【问题讨论】:
-
问题在于
real的形状为(1, 13),因此被认为是 13 个特征上的 1 个样本,而不是 1 个特征上的 13 个样本。要解决此问题,您可以将real转换为numpy数组并将其转置:my_pipeline.fit_transform(np.transpose(np.array(real)))。
标签: python scikit-learn data-preprocessing