【问题标题】:Training SVM model using sparse Matrix使用稀疏矩阵训练 SVM 模型
【发布时间】:2016-10-25 01:58:45
【问题描述】:

我已使用 Matrix 包将数据帧 (10430 X 1415) 转换为稀疏矩阵。我将数据采样到训练数据和测试数据中。我想使用稀疏矩阵构建一个 SVM 模型('e1071')。任何人都可以帮助我得到结果。下面是我正在尝试的代码。

library('e1071')

svm.model<-svm(trainData[,"Target"] ~.,data= trainData,kernel='linear', scale=FALSE)

错误:“无法将类“结构(“dgCMatrix”,包=“矩阵”)”强制转换为数据帧”

另外请建议如何在 testData 上使用 predict 函数。

【问题讨论】:

    标签: r matrix machine-learning svm sparse-matrix


    【解决方案1】:

    要创建稀疏矩阵,您可以这样做:

    library(Matrix)
    library(SpareM)
    sMatrix <- Matrix(data=as.matrix(trainData), sparse=TRUE)
    

    然后你可以在你的 svm 模型上使用它

    svm.model <- svm(trainData[,"Target"] ~., data=sMatrix, kernel="linear")
    

    要进行预测,您应该确保您的火车数据具有正确的格式,然后您可以使用:

    predicted <- predict(svm.model, testData)
    

    【讨论】:

    • 收到此错误。 "as.data.frame.default(data) 中的错误:无法将类 "structure("dgCMatrix", package = "Matrix")" 强制转换为 data.frame"
    猜你喜欢
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2018-01-19
    • 1970-01-01
    • 2016-03-29
    • 2014-03-05
    • 2021-09-22
    相关资源
    最近更新 更多