【发布时间】:2018-09-20 19:40:26
【问题描述】:
我正在编写一个 R 脚本,它在运行时会给出因变量的预测值。我所有的变量都被分类(如图所示)并分配了一个数字,类的总数是101。(每个类是歌曲名称)。
所以我有一个训练数据集,其中包含像 {(2,5,6,1)82, (2,5,6,1)45, (2,5,3,1)34, ... }。我在 R studio 中使用 linear svm 训练了这个数据集,对于给定 (x,y,z,w) 的某些值,它给出了正确的答案。但是即使像 (2,5,6,1)X 这样的记录存在于训练数据集中,为什么它不能预测值 82 或 45?我很困惑,因为它忽略了这些术语并显示了全新的输出 23。
training_set = dataset;
library(e1071)
classifier = svm(formula = Song ~ .,
data = training_set,
type = 'C-classification',
kernel = 'linear')
y_pred = predict(classifier, data.frame(Emotion = 2, Pact = 5, Mact = 6, Session = 1)).
我想要的是最接近我的答案。 我可以做些什么来实现这些目标?
- 获得至少 10 个最接近的结果,而不是 R 中的 1 个。
- 线性 svm 模型在这里做得好吗?
- 如何在训练数据集中获得值 82,45,如果没有条目,则找到最接近的条目。 (有没有不考虑简单欧几里得距离的模型)?
【问题讨论】:
标签: r machine-learning svm