关于用sklearn给处理标签,独热编码问题

  统计/机器学习 深度学习 数据预处理 TensorFlow    浏览次数:944        分享
0

请问大家,我的要预测的标签有10个 A   B  。。。 J ,我把这10个独热以后,我的数据集(大约1000)里的yi去自动匹配这10个标签,顺便说一下可能可能yi   可能只有其中9个。但是我还是希望标签是十个,因为以后新加进去的数据可能包含之前没出现的那一类。 用sklearn怎么做?

 

curiositychen   2022-04-22 22:21



   1个回答 
2

你在LabelEncoding和OneHotEncoding阶段输入的label就按照A到J完整地输入进行,这样应该能够解决你说的问题。

import pandas as pd
import numpy as np
# 假设现在有一个数据框
df = pd.DataFrame()
df['label'] = ['A', 'F', 'C', 'F']
df['value'] = [1, 2, 3, 4]
# 完整的label
given_labels = ['A', 'B','C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

from sklearn.preprocessing import OneHotEncoder, LabelEncoder
# 按完整的label建设Label Encoder
le = LabelEncoder()
le.fit(given_labels)
# transform的时候按照实际数据
df['label'] = le.transform(df['label'])
# 按完整的label建设OH Encoder
ohe = OneHotEncoder(categorical_features=[0], n_values=len(given_labels))
# 按实际数据进行转化
new_array = ohe.fit_transform(df)


SofaSofa数据科学社区DS面试题库 DS面经

简Cheng   2022-04-23 10:36



  相关讨论

sklearn里生成的onehot或者multi-hot,可以直接给tensorflow 用吗?

tensorflow一定要用gpu吗?

关于tensorflow2的一点问题

目标约束

标准化训练数据后,测试与线上部署的数据如何进行标准化?

关于卷积神经网络通道内容的问题

训练时的数据集问题

Tensorflow多层神经网络训练最后输出的值都一样的,找不到是什么原因?

sklearn onehotencoder的具体用法

关于sklearn独热的问题,想把两类编成一个独热

  随便看看

把tf.Tensor转换为numpy array

两个凸函数相加,还是凸函数吗?

numpy里的无穷大np.inf到底是多大呢?

行数很多的pandas DataFrame如何在jupyter中完整显示?

pandas报错: 'DataFrame' object has no attribute 'unique'