首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将标签转换回原始编码

将标签转换回原始编码
EN

Stack Overflow用户
提问于 2021-04-17 07:11:18
回答 1查看 360关注 0票数 1

我有一张这样的桌子:

代码语言:javascript
复制
           exterior_color interior_color  ... isTheftRecovered    price
0            Night Black        Unknown  ...                0  16995.0
1    Orca Black Metallic        Unknown  ...                0  17995.0
2        Brilliant Black        Unknown  ...                0   9995.0
3  Azores Green Metallic   Nougat Brown  ...                0  24495.0
4                  Black          Brown  ...                0  16990.0

代码:

代码语言:javascript
复制
from sklearn.preprocessing import LabelEncoder
from sklearn import tree
import pandas as pd
import numpy as np


data_frame = pd.read_csv()


le = LabelEncoder()


cols = ['exterior_color', 'interior_color', 'location', 'make', 'model', 'mileage', 'style', 'year', 'engine', 'accidentCount',
        'accidentCount', 'ownerCount', 'isCleanTitle', 'isFrameDamaged', 'isLemon', 'isSalvage', 'isTheftRecovered', 'price']


data_frame[cols] = data_frame[cols].apply(LabelEncoder().fit_transform)


exclude_price = data_frame[data_frame.columns.difference(['price'])]


clf = tree.DecisionTreeClassifier()
clf = clf.fit(exclude_price, data_frame.price)

my_data = ['Night Black', 'Unknown', 'Patchogue, NY', 'Audi', 'Q7', '5000', 'S-line 3.0T quattro',
           '2015', '2.0L Inline-4 Gas Turbocharged', '0', '5.0', '1', '1', '0', '0', '1']

new_data = le.fit_transform(my_data)

answer = clf.predict([new_data])

print(f"Car's price has been predicted ${answer[0]}")

这段代码将对数据进行标记编码,然后预测给定数据的价格,但我无法将标签转换回原始编码,并使用inverse_transform来显示实际价格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-17 07:44:53

通过以apply(LabelEncoder().fit_transform)方式编码,您将失去对编码器对象的访问权限。相反,您可以将它们保存在按列名键的encoder字典中:

代码语言:javascript
复制
from collections import defaultdict
encoder = defaultdict(LabelEncoder)

df[cols] = df[cols].apply(lambda x: encoder[x.name].fit_transform(x))

然后通过encoder['price']解码最终价格

代码语言:javascript
复制
decoded = encoder['price'].inverse_transform(answer)[0]
print(f"Car's price has been predicted as ${decoded:.2f}")

# Car's price has been predicted as $16995.00
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67135640

复制
相关文章

相似问题

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