我有一个数据帧,其中包含两列。一列包含文本。该列的每一行都包含三个不同类别(技能、资格和经验)的某种数据类型,另一列是它们各自的类别标签。
数据帧快照:
如何使用e1071软件包中的svm?如何将文本数据列转换为某些分数?我考虑将文本列转换为文档-术语矩阵。还有其他方法吗?如何制作一个d-t-matrix?
数据帧快照:
如何使用e1071软件包中的svm?如何将文本数据列转换为某些分数?我考虑将文本列转换为文档-术语矩阵。还有其他方法吗?如何制作一个d-t-matrix?
# Create the document term matrix. If column name is v1
dtMatrix <- create_matrix(data["v1"])
# Configure the training data
container <- create_container(dtMatrix, data$label, trainSize=1:102, virgin=FALSE)
# train a SVM Model
model <- train_model(container, "SVM", kernel="linear", cost=1)
关于信息,RTextTools 用户使用 e1071 包内部进行模型训练。
更多细节,请参考 RTextTools 和 e1071 文档。
fit <- svm(x, y, kernel = "linear")
这里,
x = dtm
y = a vector of the corresponding labels
我也考虑过使用RTextTools。它的实现相对容易。然而,如果你的数据存在类别不平衡,它就没什么用了。它不允许你在容器中控制分层拆分。
container <- create_container(dtMatrix, data$label, trainSize=1:102, virgin=FALSE)
你不知道你的类别标签在 "trainSize=1:102" 参数中的比例会如何。 而且,它也没有得到维护。所以,我建议避免使用它。