在R中使用稀疏矩阵作为ranger包的输入

3

概述

为了避免内存问题,我使用“matrix”包将文档术语矩阵转换为稀疏矩阵,以下是代码:

library(matrix)
documentTermMatrixFrame <- Matrix(documentTermMatrixFrame, sparse = TRUE)

但是,当我尝试将这个矩阵作为“ranger”包的ranger()函数的输入使用以下代码:

library(ranger)
trainSet <- documentTermMatrixFrame[1:750,]
testSet <- documentTermMatrixFrame[751:999,]
fit <- ranger(trainingColumnNames, data=trainSet,write.forest=TRUE)

我遇到了错误:
Error in as.data.frame.default(data) : 
cannot coerce class "structure("dgCMatrix", package = "Matrix")" to a data.frame

数据集

这是我正在使用的数据集样本。

  
 
  <html>
    <table style="width:100%">
  <tr>
    <th>nitemid</th>
    <th>sUnSpsc</th> 
    <th>productDescription</th>
  </tr>
      <tr>
    <td>7460893</td>
    <td>26121609Network cable </td> 
    <td>Category 6A, Advanced MaTriX, 4-pair, 23 AWG, U/UTP copper cable, Plenum (CMP) Rated, White, 1000ft/305m ""</td>
  </tr>
       <tr>
    <td>7460456</td>
    <td>26121709Network cable </td> 
    <td>Shielded marine MUD-resistant armored copper cable, category 7 S/FTP, low smoke zero halogen (LSZH), 4-pair, conductors are 22 AWG construction with foamed PE insulation, twisted in pairs</td>
  </tr>
       <tr>
    <td>7460856</td>
    <td>26121890Inter connect cable </td> 
    <td>1 PC. = 100 M 2 X 1.5 QMM, 100M SPECIAL DESIGN TO UL CLASS 2 YELLOW TPE OIL-RESISTANT AS-INTERFACE SHAPED CABLE</td>
  </tr>
</html>

在对数据集中的描述进行预处理,包括去除停用词、标点符号和词干提取等操作后,将创建文档-术语矩阵,这个矩阵将被转换为稀疏矩阵。
以下是数据集文档术语矩阵的样例。
terms
doc   advance  category ..... ..... ....... ....... ....... twist
 1      1         1                                           0
 2      0         1                                           1
 3      0         0                                           0

问题

如何将稀疏矩阵作为ranger()函数的输入?

请问有人能帮忙吗?

提前致谢。

2个回答

3
自从版本0.7.2以来,像Matrix包中的稀疏矩阵现在可以传递给ranger,请参见此处的讨论here。扩展到线程中所说的内容,稀疏矩阵现在也受到CRAN版本的支持,并且不需要额外的参数,就像最初的GitHub版本一样。

0

目前不支持此选项。Ranger调用了一些C++例程,因此您无法通过R将稀疏矩阵传递给它(只需检查Ranger的github),您需要重写Ranger本身。唯一的选择是将稀疏矩阵转换为密集矩阵并转换为数据框。如果这会导致内存问题,则根本没有简单的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接