问题标签 [one-hot-encoding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 类别的one-hot编码
我有一个类似这样的列表:
逗号在类别之间分开的地方,例如。意见和期刊是两个独立的类别。真正的列表要大得多,并且有更多可能的类别。我想使用 one-hot 编码来转换列表,以便它可以用于机器学习。例如,从该列表中,我想生成一个包含以下数据的稀疏矩阵:
理想情况下,我想使用scikit-learn 的一个热门编码器,因为我认为这将是最有效的。
回应@nbrayns评论:
这个想法是将类别列表从文本转换为向量 wherby,如果它属于该类别,它将被分配 1,否则为 0。对于上面的示例,标题将是:
python - 如何在张量流中只预测一个类
如果您只想预测一个类。然后首先你需要以这样一种方式标记你的向量,可能将所有这些向量标记为“一个”,它具有基本事实 5 和“零”到那些基本事实不是 5 的向量。我如何使用 puthon 在 tensorflow 中实现这一点
python - 如何解释 Spark OneHotEncoder 的结果
我从 Spark 文档中阅读了 OHE 条目,
One-hot 编码将一列标签索引映射到一列二进制向量,最多只有一个单值。这种编码允许期望连续特征的算法(例如逻辑回归)使用分类特征。
但遗憾的是,他们没有对 OHE 结果给出完整的解释。所以运行给定的代码:
并得到了结果:
我如何解释 OHE(最后一列)的结果?
r - Xgboost - 如果整数只有 0 和 1,我们是否必须将它们转换为因子
我在数据框中有很多列是标志“0”和“1”。当我导入数据框时,它们属于“整数”类。
0 表示不存在,1 表示存在于所有列中。
我需要将它们转换为因子吗?[因子将成为 1 和 2 级,而目前它们几乎是相似的 0 和 1,尽管是整数]
我计划稍后使用 xgboost 来构建预测模型。Xgboost 仅适用于数字列,因此如果我将列转换为因子,那么我需要对它们进行一次热编码以将它们转换为数字。
(附带问题:如果我们进行一次热编码以消除共线性,我们是否总是需要删除一列?)
python - 重组 Pandas 中的数据以进行 One-Hot 编码?
经过多年的潜伏和阅读帖子,这是我第一次提出 Stack Overflow 问题。
我一直在使用如下所示的无标题 CSV 数据集:
每个数据集的大小范围从 ~30KB 到 ~100MB。
现在,就值的数量而言,每个条目的长度都不同。当我使用 Pandas 读取 CSV 文件时,它一直在为我对齐条目——但不是以我想要的方式。
假设第二个条目是两者中较短的一个。Pandas 一直在用 NaN 填充该行的其余部分,因此它与其他条目的长度相同。
问题是,这会抛出get_dummies
我迄今为止尝试使用的功能。“是”和“否”值适用于同一属性。通过“抛出”,我的意思是它一直将每一列值视为相同的属性(例如,Yes 和 NaN,当它应该是 Yes 和 No 进行比较时)。
关于我能做什么的任何建议?或许可以加个头球?我想要的基本上是这样的:
由此:
文件本身看起来像这样:
我不喜欢熊猫或任何东西;在经历了一百万零五个兔子洞的搜索查询后,我绝望地问了这个问题。这是我第一次涉足数据处理和 Python。如果我做错了什么,请告诉我。
r - 在 R 中使用 XGBoost 进行基于回归的模型
我正在尝试XGBoost
用作gbm
.
我得到的分数很奇怪,所以我在想我的代码可能做错了什么。
我的数据包含几个因子变量,所有其他数字。
响应变量是表示房价的连续变量。
我知道为了使用XGBoost
,我需要使用One Hot Enconding。我正在使用以下代码这样做:
之后,我将数据拆分回测试和训练集:
然后建立一个模型,并打印 RMSE 和 Rsquared:
问题是我非常偏离 RMSE 和 Rsxquare:
这与我在使用 GBM 时得到的结果相去甚远。
我在想我做错了什么,我最好的猜测可能是我不熟悉的 One Hot Encoding 阶段,所以使用谷歌搜索的代码来调整我的数据。
有人可以指出我做错了什么以及如何“修复”它吗?
更新:
查看@Codutie 答案后,我的代码有一些错误:
xgb.DMatrix
产生:
train.data
是数据框,它有 1453 行。标签SalePrice
还包含 1453 个值(无缺失值)
谢谢
python - Gettin TensorFlow 使用分布式二进制表示
我知道如何在 TensorFlow 中使用 one_hot 向量创建 rnn:
但是我不确定当我的输入向量有多个 1 时该怎么做,例如。它可能是 11011 作为每次 1 个输入。所以:[[11011],[00111],...]
如果我只提供这个向量,就像我有我的 one-hot 表示一样,会有问题吗?那我应该如何制定上述内容?我觉得我不应该使用 tf.one_hot 函数...不确定如何在没有 one_hot 的情况下创建 rnn_inputs (200 x 5 x 2) 的形状。
(使用 TF 1.0)
python-2.7 - scikit-learn:具有列表值的列的一种热编码
我正在尝试对如下数据帧进行编码:
ABC
2 'Hello' ['we', are', 'good']
1 'All' ['hello', 'world']
现在如您所见,我可以标记第二列的字符串值,但我无法弄清楚如何对具有字符串值列表且列表长度不同的第三列进行编码。即使我 onehotencode 这个我会得到一个数组,我不知道如何在编码后与其他列的数组元素合并。请推荐一些好的技术
python - 使用python解释onehotencoder
我是 scikit-learn 库的新手,一直在尝试使用它来预测股票价格。我正在浏览它的文档并被困在他们解释的部分OneHotEncoder()
。这是他们使用的代码:
有人可以逐步向我解释这里发生了什么吗?我很清楚 One hot 编码器是如何工作的,但我无法弄清楚这段代码是如何工作的。任何帮助表示赞赏。谢谢!
tensorflow - 混合 one_hot 和浮点输入
我正在尝试训练分类(one_hot)动作(呼叫/折叠/提升)和时间的时间序列的 LSTM 层数据模型。例如 3 轮的时间序列,其中玩家 2x 跟注然后弃牌。
call/fold/raise 的分类数组无法由第一层(LSTM)处理,并且由于非分类时间,我不能使用简单的嵌入层。
第一层 - model.add(LSTM(500, return_sequences=True, input_shape=(3, 2)))
我试图改变 input_shape,但对我没有任何作用。任何想法如何表示 one_hot 并在一次输入中浮动?