小编cbu*_*ton的帖子

如何使用category_encoder包获取二进制编码的原始值

我有一个数据集,其中包含 100 多个国家/地区。我想将这些包含在 XGBoost 模型中以进行分类预测。我知道 One Hot Encoding 是解决这个问题的首选过程,但我宁愿做一些不会增加维数太多并且能够适应新值的事情,所以我正在尝试使用该category_encoders包进行二进制分类。http://contrib.scikit-learn.org/categorical-encoding/binary.html

使用这种编码帮助我的模型摆脱了使用基本的单热编码的问题,但是编码后如何恢复到原始标签?

我知道该inverse_transform方法,但该方法适用于整个数据框。我需要一种可以输入二进制或整数值并返回原始值的方法。

以下是一些示例数据:https://towardsdatascience.com/smarter-ways-to-encode-categorical-data-for-machine-learning-part-1-of-3-6dca2f71b159

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

6
推荐指数
1
解决办法
1050
查看次数

为什么2----1 = 3?

我最近在使用python(v3.6.8)和pandas(v0.23.4)时遇到了一个错误,在这些错误中我试图减去日期偏移量。但是,我不小心输入了两个--符号,结果却添加了日期偏移量。我做了更多的实验,发现它2--1会回来的3。这是有道理的,因为您可以将其解释为2-(-1),但您可以走得更远,将一串负数串在一起2----1将返回3。我也在R中复制了此代码,它的作用相同。谁能帮助我了解这里的情况?

python

1
推荐指数
1
解决办法
109
查看次数