【发布时间】:2018-09-04 22:38:14
【问题描述】:
我正在使用R 中的e1071 包中的支持向量机。这是我第一个使用 SVM 的项目。
我有一个数据集,其中包含约 1,000 名客户在 1 年内的订单历史记录,我想预测客户的购买情况。对于每一位客户,我都知道某件商品(大约 50 件)是否在某周(52 周,也就是 1 年)内被购买。
我的目标是预测每个客户下个月的购买情况。
我认为 1 个月前的购买比 10 个月前的购买对我的预测更有意义。
我现在的问题是如何让最近的数据产生更大的影响? svm 函数中有一个“权重”选项,但我不知道如何使用它。
谁能给我一个提示?将不胜感激!
这是我的代码
# Fit model using Support Vecctor Machines
# install.packages("e1071")
library(e1071)
response <- train[,5]; # purchases
formula <- response ~ .;
tuned.svm <- tune.svm(train, response, probability=TRUE,
gamma=10^(-6:-3), cost=10^(1:2));
gamma.k <- tuned.svm$best.parameter[[1]];
cost.k <- tuned.svm$best.parameter[[2]];
svm.model <- svm(formula, data = train,
type='eps-regression', probability=TRUE,
gamma=gamma.k, cost=cost.k);
svm.pred <- predict(svm.model, test, probability=TRUE);
旁注:我正在为每一位客户拟合模型。另外,由于我对客户 i 在第 k 周购买商品 j 的概率感兴趣,因此我将
probability=TRUE
【问题讨论】:
-
您能否提供更多有关您的数据集的详细信息,或许可以举一个前十行的示例?
-
@rwp 我在最初的帖子中添加了一个屏幕截图。