OneHotEncoder导致标题丢失

我在使用泰坦尼克号数据集构建机器学习模型时,使用了OneHotEncoder来创建Embarked的虚拟变量,但在此过程中我的列标题丢失了。以下是数据集在处理前的样貌。

Pclass  Sex Age SibSp   Parch   Fare    Cabin   Embarked0   3   1   22.000000   1   0   7.2500  146 21   1   0   38.000000   1   0   71.2833 81  02   3   0   26.000000   0   0   7.9250  146 23   1   0   35.000000   1   0   53.1000 55  24   3   1   35.000000   0   0   8.0500  146 2... ... ... ... ... ... ... ... ...886 2   1   27.000000   0   0   13.0000 146 2887 1   0   19.000000   0   0   30.0000 30  2888 3   0   29.699118   1   2   23.4500 146 2889 1   1   26.000000   0   0   30.0000 60  0890 3   1   32.000000   0   0   7.7500  146 1

以下是使用的代码。

ct = ColumnTransformer([('encoder', OneHotEncoder(), [7])], remainder='passthrough')X = pd.DataFrame(ct.fit_transform(X))X

以下是处理后的数据集样貌。

0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  160   1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 3.0 1.0 22.000000   1.0 7.2500  146.01   0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 38.000000   1.0 71.2833 81.02   1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 3.0 0.0 26.000000   0.0 7.9250  146.03   1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 35.000000   1.0 53.1000 55.04   1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 3.0 1.0 35.000000   0.0 8.0500  146.0... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...886 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 2.0 1.0 27.000000   0.0 13.0000 146.0887 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 19.000000   0.0 30.0000 30.0888 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 3.0 0.0 29.699118   1.0 23.4500 146.0889 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 26.000000   0.0 30.0000 60.0890 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 3.0 1.0 32.000000   0.0 7.7500  146.0

回答:

你可以使用ColumnTransformerget_feature_names方法,前提是所有你的变换器都支持该方法,并且你已经在数据框上进行了训练。

ct = ColumnTransformer([('encoder', OneHotEncoder(), [7])], remainder='passthrough')X = pd.DataFrame(ct.fit_transform(X), columns=ct.get_feature_names())X

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注