【发布时间】:2021-07-31 01:42:51
【问题描述】:
我正在尝试建立一个关于房价的模型 - 高级回归技术数据集 (1460, 80)。它具有 37 个数值特征和 43 个分类特征。
我想先缩放数值特征。 One_hot_encode 分类特征。 我正在使用 MinMax 缩放器和 Column 转换器。
缩放数据后,DataFrame 不保留列名
这是我的代码
columns_transform_sc=make_column_transformer((MinMaxScaler(),['MSSubClass',
'LotFrontage',
'LotArea',
'OverallQual',
'OverallCond',
'YearBuilt',
'YearRemodAdd',
'MasVnrArea',
'BsmtFinSF1',
'BsmtFinSF2',
'BsmtUnfSF',
'TotalBsmtSF',
'1stFlrSF',
'2ndFlrSF',
'LowQualFinSF',
'GrLivArea',
'BsmtFullBath',
'BsmtHalfBath',
'FullBath',
'HalfBath',
'BedroomAbvGr',
'KitchenAbvGr',
'TotRmsAbvGrd',
'Fireplaces',
'GarageYrBlt',
'GarageCars',
'GarageArea',
'WoodDeckSF',
'OpenPorchSF',
'EnclosedPorch',
'3SsnPorch',
'ScreenPorch',
'PoolArea',
'MiscVal',
'MoSold',
'YrSold']),remainder="passthrough")
sc_df=columns_transform_sc.fit_transform(x_train)
我将原始数据帧的(x_train) 列用于缩放数据帧(sc_df)。
sc_df=pd.DataFrame(sc_df,index=x_train.index,columns=x_train.columns)
我面临的问题是列转换器将所有已转换的列移到前面并将直通列移回,我不能使用 x_train.columns 替换 sc_df.columns
所有类别功能都已移回。有没有办法保留获取列名的列名
还有 我应该先编码分类特征(one_hot_encode 或 label_encode),然后缩放(标准化或规范化)整个事物(编码数据)还是缩放然后编码
【问题讨论】:
标签: python pandas scikit-learn transform minmax