问题标签 [dictvectorizer]

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.

0 投票
2 回答
502 浏览

python - 如何对每列具有多个值的特征进行编码?需要 MultiDictVectorizer?

我正在对 sklearn 中的一些功能进行矢量化处理,但遇到了问题。如果您的数据可以被编码为每个项目的一个字典键,则 DictVectorizer 效果很好。如果您的项目可以具有同一列的两个或多个值怎么办?例如, DictVectorizer 在这样的项目上工作正常:

但是像这样的东西,每列有多个值呢?

one-hot-encoding 的策略仍然可以应用,你只需要两个 a 列…… a=b 和 a=c。据我所知,不存在这样的矢量化器!在这种情况下应该怎么做?我需要创建自己的 MultiDictVectorizer 吗?

在发布之前,我在这里的一篇博文中写过这个。

0 投票
1 回答
645 浏览

python - 如何使用 Scikit Learn dictvectorizer 从 Python 中的密集数据帧中获取编码数据帧?

我有一个数据框如下:

从这里我想创建一个编码数据集(for fastFM),如下所示:

我需要一个dictvectorizerfromsklearn吗?如果是,那么有没有办法将原始数据帧转换为字典,可以将其提供给字典,而字典dictvectorizer又会给我编码的数据集,如图所示?

0 投票
1 回答
671 浏览

python - 将 DictVectorizer 转换为 TfIdfVectorizer

我需要将我拥有的这种格式的一些数据转换为术语文档矩阵: http: //pastebin.com/u1A7v1CV

本质上,每一行代表一个文档,表示为 word_label_id 和频率。每个 word_label_id 对应的单词在不同的文件中。

我想将其转换为术语文档矩阵,以便我可以对数据进行矢量化并对其进行聚类。

我已经设法将数据转换为字典并使用 DictVectorizer 来获得一次性编码的稀疏表示,因为有人建议我通过以下方式执行此操作:

这是输出的样子:

我不知道这意味着什么以及如何解释它。这是否等同于您TfIdfVectorizer在 scikit-learn 中得到的稀疏矩阵?

我在这个数据集上的下一步应该是特征选择和 k-means 聚类。我只是不知道如何使用DictVectorizerdata字典来继续。

0 投票
1 回答
1653 浏览

python - 使用 DictVectorizer 的 sklearn 管道中的分类变量

我想应用一个带有数字和分类变量的管道,如下所示

我为数字创建索引

& 用于分类变量

然后我创建一个管道

我明白了

我知道我必须在管道中应用 encoder.fit() 但不明白如何应用它或者我们讨厌使用preprocessing.OneHotEncoder()但我们需要再次将字符串转换为浮点数

如何改进它?

0 投票
1 回答
129 浏览

nlp - ngram向量化-如果发现语料库中不存在的新令牌,我该怎么办

我正在为词袋模型构建自定义 ngram 矢量化器。我很奇怪——如果在对短文本进行矢量化时我发现了新的标记,而该标记在语料库词汇表中不存在,我该怎么办。应该跳过还是什么?

0 投票
1 回答
228 浏览

python - 管道中的分类变量:维度不匹配

我尝试使用分类变量构建管道

转换分类变量

管道

这是正确的。但是当我尝试拟合新数据集时出现错误。例如

看到类 Cat(TransformerMixin) 中的问题。如何改进它?

0 投票
3 回答
3859 浏览

python - 如何在sklearn中编码分类特征?

我有一个包含 41 个特征的数据集 [从 0 到 40 列],其中 7 个是分类的。该分类集分为两个子集:

  • 字符串类型的子集(列特征 1、2、3)
  • int 类型的子集,二进制形式 0 或 1(列特征 6、11、20、21)

此外,列特征 1、2 和 3(字符串类型)分别具有基数 3、66 和 11。在这种情况下,我必须对它们进行编码以使用支持向量机算法。这是我拥有的代码:

我不知道是否更好地使用DictVectorizer()OneHotEncoder()[出于我上面公开的原因],并且主要以哪种方式将它们[在代码方面]与X我拥有的矩阵一起使用。或者我应该简单地为字符串类型子集中的每个基数分配一个数字(因为它们具有高基数,因此我的特征空间将呈指数增长)?

编辑 关于 int 类型的子集,我想最好的选择是保持列特征不变(不要将它们传递给任何编码器)对于具有高基数的字符串类型的子集,问题仍然存在。

0 投票
0 回答
590 浏览

python-3.x - 将 pd.get_dummies() 和 DictVectorizer() 与分类变量一起使用时的不同结果

当我尝试在pipeline. pd.get_dummies()是一个了不起的工具,但我们不能在pipeline. 所以我不得不使用DictVectorizer(). 我这样做如下(玩具示例)

然后我建立管道

有用。与之比较pd.get_dummies()

但问题是,在实际数据集上使用的结果pd.get_dummies()DictVectorizer()截然不同。真实数据集没有 NAN 也没有空卖。它有两个变量 1) y - 数字和 2) 字符串 'gender' (f -962, m - 140)。
和 R^2 为pd.get_dummies() 0.025946526223095123

R^2 表示DictVectorizer() 0.00170802695618677 问题不取决于样本量,因为我做了

结果是一样的

可能是什么原因?谢谢你的帮助

0 投票
1 回答
879 浏览

python - 为什么 DictVectorizer 会改变特征的数量?

我有一个 324 行和 35 列的数据集。我把它分成训练和测试数据:

这似乎工作正常,我的 X_train 和 X_test 都有 34 个功能。我使用 DictVectorizer 应用了一些进一步的转换,因为我有分类变量。

现在,当我将 X_train 与 X_test 进行比较时,前者有 46 个特征,而后者只有 44 个。发生这种情况的可能原因是什么?

0 投票
1 回答
1736 浏览

python - 在传递给 SVM 分类器之前将字符串数据转换为浮点数

我有一个数据集如下:

另一个是:

我正在执行以下操作:

但我想知道如何X_data在我做之前将其转换为浮动clf.fit()?我可以DictVectorizer在这种情况下使用吗?如果是,那么我该如何使用它?

另外,我正在通过X_datay_data通过train_test_split找出预测准确性,但它会正确拆分吗?就像在from中取正确Label的一样?IDX_datay_data

更新:

有人可以告诉我我是否正确执行以下操作吗?