首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对数据进行编码以进行补偿,然后进行解码

对数据进行编码以进行补偿,然后进行解码
EN

Stack Overflow用户
提问于 2019-12-17 16:59:42
回答 1查看 627关注 0票数 1

我用的是python,我有如下结构的数据,其中混合了类别和数字

代码语言:javascript
复制
subject_id hour_measure         urinecolor   blood pressure                  
3          1.00                 red         
           1.15                             high
4          2.00              yellow          low

我想使用热板法来估算它,但是我发现我应该把它编码成数字,然后再进行估算。

代码语言:javascript
复制
  from sklearn.preprocessing import OneHotEncoder
    enc = OneHotEncoder(handle_unknown='ignore')
   df= pd.read_csv('path')
    enc.fit(df)
    enc.transform(df)

当我尝试进行编码时,它会要求我先填充缺失值,那么在编码时如何处理缺失值呢?当我对分类数据进行编码时,补偿将为缺失的值生成值,那么如何在补偿后将其恢复为原始数据?有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-18 03:33:29

基本上,你需要使用一个scikit-learn管道:

代码语言:javascript
复制
import numpy as np

from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder

X = np.array(
    [['cat1', 'cat1'],
     ['cat2', np.nan],
     [np.nan, 'cat2']],
    dtype=object
)

encoder = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="missing"),
    OneHotEncoder(sparse=False)
)
print(encoder.fit_transform(X))
print(encoder[-1].categories_)
代码语言:javascript
复制
[[1. 0. 0. 1. 0. 0.]
 [0. 1. 0. 0. 0. 1.]
 [0. 0. 1. 0. 1. 0.]]
[array(['cat1', 'cat2', 'missing'], dtype=object), array(['cat1', 'cat2', 'missing'], dtype=object)]

在这里,缺少的值由一些np.nan值表示。它们首先被字符串'missing'替换。然后,每个类别将成为一个列。因此,“丢失”的信息将由编码后的列表示。

您可能不想从数据中删除此信息。如果需要,可以删除相应的列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59370700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档