首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用多级在R中编写列的虚拟代码

用多级在R中编写列的虚拟代码
EN

Data Science用户
提问于 2016-05-02 11:27:55
回答 1查看 4.1K关注 0票数 6

我有一个因变量来衡量净收入。影响这一结果的主要预测因素之一是“产品”,即卖给客户的产品。我随机抽样的数据集包含140万个条目。

产品被指定为特定的分类值。我觉得用虚拟变量来表示产品是合适的,但是有4481个等级的产品。我不知道如何在R中编码这么多级别。

model.matrix(~ product, data=salesdata)返回一个错误。(需要38.4GB内存)

有人能指导我如何对这些分类变量进行编码吗?

独立的:产品代码(数量,但作为质量处理,因为价值是名义的)

EN

回答 1

Data Science用户

回答已采纳

发布于 2016-05-03 03:52:02

您可以使用稀疏矩阵或特性散列。

稀疏矩阵

我认为使用稀疏矩阵是唯一的选择。我怀疑这行代码会起作用。这使用了矩阵包。

代码语言:javascript
复制
sparseProducts <- sparse.model.matrix(~ product, data=salesdata)

以我为例:

代码语言:javascript
复制
sparseDiagonalMatrix <- sparse.model.matrix(~., data.frame(V1 = as.factor(seq(1, 10))))

每一列代表一个不同的因素,这将产生:

代码语言:javascript
复制
1  1 . . . . . . . . .
2  1 1 . . . . . . . .
3  1 . 1 . . . . . . .
4  1 . . 1 . . . . . .
5  1 . . . 1 . . . . .
6  1 . . . . 1 . . . .
7  1 . . . . . 1 . . .
8  1 . . . . . . 1 . .
9  1 . . . . . . . 1 .
10 1 . . . . . . . . 1

> class(sparseDiagonalMatrix)
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"

或者,您可以删除拦截,并让所有的零表示为1类。

代码语言:javascript
复制
sparseDiagonalMatrix <- sparse.model.matrix(~., data.frame(V1 = as.factor(seq(1, 10))))[, -1, drop=FALSE]

10 x 9 sparse Matrix of class "dgCMatrix"
V12 V13 V14 V15 V16 V17 V18 V19 V110
1    .   .   .   .   .   .   .   .    .
2    1   .   .   .   .   .   .   .    .
3    .   1   .   .   .   .   .   .    .
4    .   .   1   .   .   .   .   .    .
5    .   .   .   1   .   .   .   .    .
6    .   .   .   .   1   .   .   .    .
7    .   .   .   .   .   1   .   .    .
8    .   .   .   .   .   .   1   .    .
9    .   .   .   .   .   .   .   1    .
10   .   .   .   .   .   .   .   .    1

> class(sparseDiagonalMatrix)
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"

不过,您将需要一个支持稀疏矩阵的软件包来衡量净收入。幸运的是,大多数现代主流包都支持稀疏矩阵。

特性散列

以下是对R中的特性散列的一个很好的解释(以及其他技术),这也是一种替代方法,当您有数十万或数百万多个级别时,它特别有用。

https://amunategui.github.io/feature-hashing/

票数 3
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/11543

复制
相关文章

相似问题

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