如何对新实例进行预处理以进行分类,使特征编码与 Scikit-learn 的模型相同?

2023-12-27

我正在使用数据多类分类创建模型,该模型有 6 个特征。我正在使用 LabelEncoder 使用下面的代码预处理数据。

#Encodes the data for each column.
def pre_process_data(self):
    self.encode_column('feedback_rating')
    self.encode_column('location')
    self.encode_column('condition_id')
    self.encode_column('auction_length')
    self.encode_column('model')
    self.encode_column('gb') 

#Gets the column using the column name, transforms the column data and resets
#the column
def encode_column(self, name):
    le = preprocessing.LabelEncoder()
    current_column = np.array(self.X_df[name]).tolist()
    self.X_df[name] = le.fit_transform(current_column)

当我想要预测一个新实例时,我需要转换新实例的数据,以便特征与模型中的特征匹配相同的编码。有没有一种简单的方法可以实现这一目标?

另外,如果我想保留模型并检索它,那么是否有一种简单的方法来保存编码格式,以便使用它来转换检索到的模型上的新实例?


当我想要预测一个新实例时,我需要转换新实例的数据,以便特征与模型中的特征匹配相同的编码。有没有一种简单的方法可以实现这一目标?

如果不完全确定您的分类“管道”如何运作,但您可以使用适合您的LabelEncoder一些新数据的方法 -le将转换新数据,前提是标签是训练集中存在的标签。

from sklearn import preprocessing
le = preprocessing.LabelEncoder()

# training data
train_x = [0,1,2,6,'true','false']
le.fit_transform(train_x)
# array([0, 1, 1, 2, 4, 3])

# transform some new data
new_x = [0,0,0,2,2,2,'false']
le.transform(new_x)
# array([0, 0, 0, 1, 1, 1, 3])

# transform data with a new feature
bad_x = [0,2,6,'new_word']
le.transform(bad_x)
# ValueError: y contains new labels: ['0' 'new_word']

另外,如果我想保留模型并检索它,那么是否有一种简单的方法来保存编码格式,以便使用它来转换检索到的模型上的新实例?

您可以像这样保存模型/模型的一部分:

import cPickle as pickle
from sklearn.externals import joblib
from sklearn import preprocessing

le = preprocessing.LabelEncoder()
train_x = [0,1,2,6,'true','false']
le.fit_transform(train_x)

# Save your encoding
joblib.dump(le, '/path/to/save/model')
# OR
pickle.dump(le, open( '/path/to/model', "wb" ) )

# Load those encodings
le = joblib.load('/path/to/save/model') 
# OR
le = pickle.load( open( '/path/to/model', "rb" ) )

# Then use as normal
new_x = [0,0,0,2,2,2,'false']
le.transform(new_x)
# array([0, 0, 0, 1, 1, 1, 3])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对新实例进行预处理以进行分类,使特征编码与 Scikit-learn 的模型相同? 的相关文章

随机推荐

  • graphstudio 中可用的引脚在代码中不存在

    我正在使用网络摄像头的源过滤器 当我在 graphstudio 中使用过滤器时 它有两个输出引脚 然而 在代码中 对 IEnumPins gt next 的调用始终返回 S FALSE 我还寻找了另一个可以创建引脚的接口 但没有找到这样的东
  • PHP S3上传进度

    这种情况已经发生过很多次了 但我仍然有点困惑 很多答案只关注谈论上传进度条 而不是从 S3 上传获取实际的上传进度 我已经阅读了很多问题并找到了很多软件 但我仍然没有更深入地理解 S3 上传的基本问题 有没有一种方法可以上传到 S3 同时了
  • “TypeError:item.getAttachmentsAsync 不是函数”Outlook 加载项 office-js 与 Vue

    我一直在关注此链接中的教程 https learn microsoft com en us javascript api outlook office messageread view outlook js preview getAttac
  • 如何删除jquery添加的样式属性

    我正在使用具有一些自定义要求的 devExpress 表 更新 休息了一天 然后回去并使用 React Styling 正确完成了它 感谢您的建议 在屏幕截图中 我禁用了某些单元格 但是 用户希望除所选行之外的所有单元格看起来均已禁用 使用
  • 跟随 NavigationLink 并返回后 SwiftUI .toolbar 消失

    我已将 toolbar 添加到 NavigationView 的顶层 最终将用于选择列表中的项目 而无需使用滑动手势 向上按钮 向下按钮等 我还有一个 navigationBar 正在进行 用于访问帐户和设置的其他视图 在大多数情况下 它看
  • D3.js:结合缩放/画笔

    我目前在 Mike Bostock 的工作画笔和缩放 https bl ocks org mbostock 34f08d5e11952a80609169b7917d4172例如 尽管我没有在 svg 上覆盖矩形对象 而是将其附加到我的图表上
  • 在文本文件中求和整数的最快方法

    Question 假设您有一个大型 ASCII 文本文件 每行都有一个随机非负整数 每个整数的范围从 0 到 1 000 000 000 文件中有 100 000 000 行 读取文件并计算所有整数之和的最快方法是什么 限制 我们有 10M
  • 如何通过在最近使用的文本框中单击光标按钮来插入文本?

    我有一个带有多个文本框和一组按钮的表单 使用下面的 Javascript 我可以单击一个按钮并将文本插入到指定的框中之一 单击按钮时是否可以将文本插入到最近 活动的文本框中 目前我有这个 但它使用的是文本框的特定 ID 而不是最近使用 活动
  • 是否可以仅使用免费软件在 C# 中将文档转换为 PDF 或编辑 PDF?

    我有一个愚蠢的想法 即创建一个 docx 或 rtf 或 pdf 格式的模板 然后替换该文档中的文本以生成报告 这似乎是比使用付费报告软件更好的方法 嗯 我相信我现在已经尝试了几乎所有的方法 但我很惊讶用 pdf 做任何事都是不可能的 Tr
  • 可通过 Jetpack Compose 中输入的文本 OutlinedTextField 进行调整

    我有一个 OutlinedTextField 里面有 DropdownMenu 我希望在按下 DropdownMenu 列表内的项目后 该项目的值开始位于 OutlinedTextField 内 并根据文本的长度根据宽度进行调整 我怎样才能
  • 如何在.Net Core中启用nginx反向代理与gRPC配合使用?

    我遇到了一个问题 无法让 nginx 与 gRPC 一起正常工作 我正在使用 Net core 3 1 来提供支持 REST 和 gRPC 的 API 我正在使用下面的 docker 镜像 Net Core 3 1 aspnet 3 1 a
  • 连接 Google 表格中的两个范围

    tl dr 如何使两个范围作为一个函数的参数出现 例如 我想查看 E 列 中的每个单元格except E5 MY FUNCTION somehowjoin E1 E4 E6 E 背景我正在 Google Sheets 中编写项目跟踪器 例如
  • 在选择查询中插入子查询

    我有一个 组 表和一个 参与者 表 现在我需要为每个组插入一名参与者 我将如何自动化这个 INSERT INTO Participants Name FirstName GroupID VALUES GENERIC GENERIC Grou
  • Atom Editor Golang - 转到声明不起作用

    我已经完成了atom的全新安装并安装了go plus软件包 我无法使用的一个功能是 转到声明 这就是为什么我仍然停留在崇高的土地上 有谁知道这是否适用于 golang 我的项目似乎不需要 ctags 对于atom来说 最好的方法是什么 我尝
  • 如何删除两个 UICollectionView 列之间的边距

    我有 UICollectionView 我希望单元格之间没有间距 然而 尽管我尽了一切努力 我似乎 无法删除该空间 Code CGFloat collectionView UICollectionView collectionView la
  • java.lang.LinkageError:违反加载器约束

    今天是个好日子 我遇到过这样的链接错误问题 java lang LinkageError loader constraint violation when resolving method javax xml transform Trans
  • node.js + MySQL 和 JSON 结果 - 回调问题和对客户端没有响应

    我想使用 node js 查询 mySQL 数据库并将结果作为 JSON 返回以在移动应用程序中使用 不幸的是 我的请求有点超时 服务器在 2 分钟内没有执行任何操作 直到日志文件显示我的请求console log 声明 此外 回调不会返回
  • 自定义 jQuery 伪选择器接收未定义的参数

    我正在尝试向 jQuery 添加自定义伪选择器 目前使用的是 v1 8 0 基于我发现的一些不同的教程 我本质上是在尝试实现一个不区分大小写的 contains 选择器 我现在的化身看起来像这样 expr icontains functio
  • Flask-Admin 中的批量编辑

    我正在使用 Flask Admin 我希望能够从列表视图中一次更新许多字段 看来我正在寻找的是自定义操作 我能够让它发挥作用 但我怀疑不是以最好的方式 我想知道是否可以做得更多 烧瓶 我现在做什么 例如 如果我正在更新表中的所有行cars具
  • 如何对新实例进行预处理以进行分类,使特征编码与 Scikit-learn 的模型相同?

    我正在使用数据多类分类创建模型 该模型有 6 个特征 我正在使用 LabelEncoder 使用下面的代码预处理数据 Encodes the data for each column def pre process data self se