【发布时间】:2021-02-09 02:05:39
【问题描述】:
我想了解如何在管道中应用逆变换,而不是直接使用StandardScaler 函数。
我使用的代码如下:
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
categoric = X.select_dtypes(['object']).columns
numeric = X.select_dtypes(['int']).columns
tf = ColumnTransformer([('onehot', OneHotEncoder(), categoric),
('scaler', StandardScaler(), numeric)])
X_preprocessed = tf.fit_transform(X)
model = KMeans(n_clusters=2, random_state=24)
model.fit(X_preprocessed)
在获得给定模型的输出(在本例中为 KMeans)后,我如何才能取回任何 X 数据帧的 numeric 值的原始比例?
我知道 StandardScaler 有一种方法 (.inverse_transformation) 可以做到这一点,但我的问题是在使用带有 ColumnTransformer 的管道时出现的。
P.S.:这样做的目的是解释模型的质心。
【问题讨论】:
-
是否可以在原始管道中添加一个额外的空步骤以便能够使用 inverse_transform?
标签: python scikit-learn pipeline