我正在尝试使用xgboost算法进行训练。这个算法要求数据是数字的,我更相信,尤其是类dgCMatrix(在最后一点我可能错了)。
我将数据存储在一个分类的数据框中,也就是说,数据集的每一列都包含未排序的离散字符串,如“class1”,“class2”等。目前,我正在使用它:
sparseMatrix <- sparse.matrix.model(someColName ~.-1, data = myDataFrame)
(Tbh,我不确定“someColName~.-1”是如何工作的,但它似乎删除了一列,所以如果它没有意义,请忽略该部分代码。)
当我输入str(myDataFrame)时,所有数据都存储为字符数据而不是因素。
我的问题是我发布的专线需要很长时间。所以我的问题是,我将这些数据转换为数值数据/ dgCMatrix的最快方法是什么,以便它与xgboost兼容?我不认为它必然需要是一个稀疏矩阵,它只是作为一个稀疏矩阵,它是数值。将每个列首先转换为因子,转换为稀疏矩阵会更有效吗?任何帮助表示赞赏。谢谢!