我想在R中进行大规模回归(线性/逻辑),具有许多(例如100k)特征,其中每个示例在特征空间中相对稀疏---例如,每个示例约1k非零特征.
似乎SparseM包slm应该这样做,但我很难从sparseMatrix格式转换为slm友好格式.
我有一个标签的数字向量y和{0,1}中的一个sparseMatrix特征X\.当我尝试
model <- slm(y ~ X)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error in model.frame.default(formula = y ~ X) :
invalid type (S4) for variable 'X'
Run Code Online (Sandbox Code Playgroud)
大概是因为slm想要一个SparseM物体而不是一个物体sparseMatrix.
是否有一种简单的方法来a)SparseM直接填充对象或b)将a转换sparseMatrix为SparseM对象?或许有更好/更简单的方法来做到这一点?
(我想我可以使用X和显式编码线性回归的解决方案y,但是slm工作会很好.)
我想在boost矩阵和矢量类型上执行逐元素函数,例如取每个元素的对数,取幂每个元素,应用特殊函数,如gamma和digamma等等(类似于matlab对这些函数的处理应用到矩阵和向量.)
我想编写一个帮助函数,对每个所需函数强制执行此操作就足够了,但这似乎很浪费.
同样,boost wiki提供了一些代码来矢量化标准函数,但这似乎相当复杂.
valarray已被建议,但我想避免在数据类型之间进行转换,因为我需要ublas数据类型用于其他操作(矩阵乘积,稀疏矩阵等)
任何帮助是极大的赞赏.