- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如我有以下训练集。
name values
0 Tony 100
1 Smith 110
2 Sam 120
3 Shane 130
4 Sam 140
5 Ram 160
经过一次热编码就变成了
values 0 1 2 3 4
0 100 1 0 0 0 0
1 110 0 1 0 0 0
2 120 0 0 1 0 0
3 130 0 0 0 1 0
4 140 0 0 1 0 0
5 160 0 0 0 0 1
现在假设我在生产中有测试数据,Danny
在 name
中有一个新级别:
name values
0 Shane 200
1 Danny 210
2 Sam 220
3 Tony 180
4 Danny 150
经过一次热编码
values 0 1 2 3
0 200 1 0 0 0
1 210 0 1 0 0
2 220 0 0 1 0
3 180 0 0 0 1
4 150 0 1 0 0
基于上述情况,我有几个问题:
Tony
在训练集中是特征 0,但在测试中它是特征 3;它会影响训练模型对测试输入的预测吗?最佳答案
OneHotEncoder
针对这个问题有一个超参数:handle_unknown
handle_unknown{‘error’, ‘ignore’}, default=’error’Whether to raise anerror or ignore if an unknown categorical feature is present duringtransform (default is to raise). When this parameter is set to‘ignore’ and an unknown category is encountered during transform, theresulting one-hot encoded columns for this feature will be all zeros.In the inverse transform, an unknown category will be denoted as None.
如您所见,此超参数有两个不同的值。如果在你的测试中可以出现新类(比如你的例子 Danny),我建议使用值 ignore
:
enc = OneHotEncoder(handle_unknown='ignore')
模型将始终保持拟合数据的输入特征大小。例如,使用您提供的数据,如果您为 OneHotEncoder
安装训练数据,您将始终有 6 个输入。
并且,同样始终,此输入将具有与训练数据相同的类别。我的意思是,在你的数据中,特征 0 总是指 Tony,特征 1 指的是 Smith,..
如果你想将适配的 OneHotEncoder 转移到另一个脚本,你可以使用 joblib
库来完成。例如:
import joblib
enc = OneHotEncoder(handle_unknown='error')
enc.fit(data)
joblib.dump(enc, 'encoder.joblib')
然后,从另一个脚本加载:
enc = joblib.load('encoder.joblib')
最后,我想澄清一下这个过程以及你是如何进行 OneHotEncode 的,因为我认为它根本不清楚:
对于 OneHotEncoding,首先,您需要适合
到一个数据集(几乎总是训练数据)。你在这一步做什么?基本上你要告诉类(class)的人数、类次和顺序(在你的案例:你有 6 个类(class),顺序为:Tony, Smith, ..)
然后,您可以使用之前使用 transform
安装的 OneHotEncoder 转换任何数据。例如,您的测试结果将是:
Shane,有没有想过,它是第一个出现在你的测试数据中的类,它将保持特征 3(所以 1 将出现在特征 3 中并归零到其他特征),因为它是在训练数据的 fit
部分中定义的。
Danny,特征中没有任何 1,因为这个名字没有出现在训练数据中。正如我们在问题 1 中所说的,如果将超参数 handle_unknow
设置为 error
,您将获得一个错误,如果将其设置为 ignore
您将继续使用 0 的所有功能。
基本上,如您所见,您首先要适应一个数据,然后应用您学到的知识来转换另一个数据。您只需适应一次 OneHotEncoder
。
注意:您可以一步完成训练数据的拟合和转换:fit_transform
关于python - 火车验证和测试集中的一种热编码(生产数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66901180/
我对自定义 CSS 或在将图像作为 Logo 上传到页面时使用编码 block 有疑问。我正在为我的网站使用 squarespace,我需要帮助编码我的 Logo 以使其适合每个页面。一个选项是使用自
如 encoding/json 包文档中所述, Marshal traverses the value v recursively. If an encountered value implement
我必须做一些相当于Java中的iconv -f utf8 -t sjisMS $INPUT_FILE的事情。该命令在 Unix 中 我在java中没有找到任何带有sjisMS的编码。 Java中有Sh
从 PHP 5.3 迁移到 PHP 5.6 后,我遇到了编码问题。我的 MySQL 数据库是 latin1,我的 PHP 文件是 windows-1251。现在一切都显示为“ñëåäíèòå àäðå
我有一个 RScript文件(我们称之为 main.r ),它引用了另一个文件,使用以下代码: source("functions.R") 但是,当我运行 RScript 文件时,它提示以下错误:
我无法设法从 WSDL 创建 RPC/编码风格的代码 - 有谁知道哪个框架可以做到这一点? 带有 adb 和 xmlbeans 映射的 Axis2 无法正常工作(无法处理响应中的肥皂编码)直接使用 X
安装了最新版本的Node.Js()和npm包**(1.2.10)**当我运行 Express 命令来生成项目时,它向我抛出以下错误 buffer.js:240 switch (encoding &
JavaScript中有JSON编码/解码base64编码/解码函数吗? 最佳答案 是的,btoa() 和 atob() 在某些浏览器中可以工作: var enc = btoa("this is so
>>> unicode('восстановление информации', 'utf-16') Traceback (most recent call last): File "", line
我当然熟悉 java.net.URLEncoder 和 java.net.URLDecoder 类。但是,我只需要 HTML 样式的编码。 (我不想将 ' ' 替换为 '+' 等)。我不知道任何只做
有一个非常简单的 SSIS 包: OLE DB Source 通过 View 获取数据(数据库表 nvarchar 或 nchar 中的所有字符串列)。 派生列,用于格式化现有日期并将其添加到数据集(
我正在使用一个在 Node 中进行base64编码的软件,如下所示: const enc = new Buffer('test', 'base64') console.log(enc) 显示: 我正
我试图将带有日语字符的数据插入到 oracle 数据库中。事情是保存在数据库中的是一堆倒置的问号。我该如何解决这个问题 最佳答案 见 http://www.errcode.net/blogs/?p=6
当我在 java 中解压 zip 文件时,我发现文件名中出现了带有重音字符的奇怪行为。 西索: Add File user : L'equipe Technique -- Folder : spec
在网上冲浪我找到了 ExtJS 的 Ext.Gantt 插件,该扩展有一个特殊的编码。任何人都知道如何编码那样或其他复杂的形式。 Encoded Gantt Chart 最佳答案 它似乎被 Dean
我正在用C语言做一个编码任务,我进展顺利,直到读取符号并根据表格分配相应的代码的部分。我必须连接几个代码,直到它们的长度达到 32 位,为此我必须将它们写入一个文件中。这种写入文件的方法给我带来了很多
我有一个外部链接的 javascript 文件。在那个 javascript 里面,我有这个功能: function getMonthNumber(monthName){ monthName = mo
使用mechanize,我检索到一个网页的源页面,其中包含一些非ASCII字符,比如汉字。 代码如下: #using python2.6 from mechanize import Browser b
我有一个包含字母 ø 的文件。当我用这段代码 File.ReadLines(filePath) 读取它时,我得到了一个问号而不是它。 当我像这样添加编码时 File.ReadLines(filePat
如何翻译下面的字符串 H.P. Dembinski, B. K\'{e}gl, I.C. Mari\c{s}, M. Roth, D. Veberi\v{c} 进入 H. P. Dembinski,
我是一名优秀的程序员,十分优秀!