我有一个数据集,其中包含 100 多个国家/地区。我想将这些包含在 XGBoost 模型中以进行分类预测。我知道 One Hot Encoding 是解决这个问题的首选过程,但我宁愿做一些不会增加维数太多并且能够适应新值的事情,所以我正在尝试使用该category_encoders包进行二进制分类。http://contrib.scikit-learn.org/categorical-encoding/binary.html
使用这种编码帮助我的模型摆脱了使用基本的单热编码的问题,但是编码后如何恢复到原始标签?
我知道该inverse_transform方法,但该方法适用于整个数据框。我需要一种可以输入二进制或整数值并返回原始值的方法。
import numpy as np
import pandas as pd
import category_encoders as ce
# make some data
df = pd.DataFrame({
'color':["a", "c", "a", "a", "b", "b"],
'outcome':[1, 2, 3, 2, 2, 2]})
# split into X and y
X = df.drop('outcome', axis = 1)
y = df.drop('color', axis = 1)
# instantiate an encoder - here we use Binary()
ce_binary = ce.BinaryEncoder(cols = …Run Code Online (Sandbox Code Playgroud) python machine-learning xgboost data-science one-hot-encoding
我最近在使用python(v3.6.8)和pandas(v0.23.4)时遇到了一个错误,在这些错误中我试图减去日期偏移量。但是,我不小心输入了两个--符号,结果却添加了日期偏移量。我做了更多的实验,发现它2--1会回来的3。这是有道理的,因为您可以将其解释为2-(-1),但您可以走得更远,将一串负数串在一起2----1将返回3。我也在R中复制了此代码,它的作用相同。谁能帮助我了解这里的情况?