【问题标题】:Confusion matrix is too big, other approaches to interpret SVM results?混淆矩阵太大,其他解释 SVM 结果的方法?
【发布时间】:2014-01-21 13:00:22
【问题描述】:

我正在尝试了解 R 和 SVM (e1071) 的可能性。但是混淆矩阵的结果太大了,无法显示。

出于测试目的,我使用来自 Yahoo Finance 的 Yahoo stock 数据集。
我的 R 命令集如下所示:

> library(e1071)
> yahooData <- read.csv(file="../StockData/yahoo/yahoo-full.csv")
> yahooData[1,]
        Date  Open  High   Low Close   Volume Adj.Close
1 2014-01-17 40.12 40.44 39.47 40.01 19262500     40.01
> dim(yahooData)
[1] 4473    7
> yIndex <- 1:nrow(yahooData)
> yTestindex <- sample(yIndex, trunc(length(yIndex)/3))
> yTestset <- yahooData[yTestindex,]
> yTrainset <- yahooData[-yTestindex,]
> dim(yTestset)
[1] 1491    7
> dim(yTrainset)
[1] 2982    7
> 
> # svm
> ySVMmodel <- svm(Close ~ ., data = yTrainset)
> ySVMpred <- predict(ySVMmodel, yTestset[,-5])

我的SVM模型总结和预测是:

> summary(ySVMmodel)

Call:
svm(formula = Close ~ ., data = yTrainset)


Parameters:
   SVM-Type:  eps-regression 
 SVM-Kernel:  radial 
       cost:  1 
      gamma:  0.000223314 
    epsilon:  0.1 


Number of Support Vectors:  493

> summary(ySVMpred)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  12.55   20.96   31.93   49.84   43.55  401.10 

最后我想得到一个混淆矩阵来查看我的结果,但是矩阵太大了,我无法从中获取任何信息:

> table(pred = ySVMpred, true = yTestset[,5])

除了混淆矩阵之外,还有另一种查看预测值的方法吗?或者另一种缩小混淆矩阵以获得结果的方法?

【问题讨论】:

  • 为什么你需要一个混淆矩阵来解决具有连续结果的回归问题?我错过了什么吗?它通常对分类任务很有用。

标签: r csv svm yahoo-finance quantitative-finance


【解决方案1】:

混淆矩阵用于评估分类结果。您实际上是在使用 SVM 执行回归。适当的方法是查看可以学生化的残差(估计减去实际)。

根据我的经验,对于此类数据,获得模型拟合良好感觉的最佳方法是绘制预测时间序列与实际时间序列。

【讨论】:

  • 是的,谢谢,你是对的。在这一点上,我对分类和回归有一个普遍的误解。
猜你喜欢
  • 2018-09-18
  • 2018-11-20
  • 2012-10-31
  • 2019-09-14
  • 2017-11-03
  • 2020-07-06
  • 2014-06-11
  • 2019-05-25
  • 2023-01-12
相关资源
最近更新 更多