如何导出 rStudio 分析详细信息

Posted

技术标签:

【中文标题】如何导出 rStudio 分析详细信息【英文标题】:How to export rStudio analysis detail 【发布时间】:2018-09-06 03:37:15 【问题描述】:

使用 Tim DAuria (https://www.youtube.com/watch?v=j1V2McKbkLo) 提供的代码处理文档分类模型,但无法弄清楚如何在“测试”数据上实际查看分类的详细分析。

我正在使用该模型帮助按类型对合同进行分类,并希望查看分配给不同合同的具体分类。例如,该模型将 15 个合同分配为“x”类型的合同。如何查看这 15 个文件名?下面的代码非常适合分类。仅供参考。

请帮忙!在这方面真的很新,我敢肯定我错过了一些明显的东西,但在网上找不到任何东西。

分类代码如下:

#int
libs <- c("tm", "plyr","class")
lapply(libs, require, character.only = TRUE)

#set options
options(stringsAsFactors = FALSE)

#set parameters
contract <- c("build construction", "other")
pathname <- ..Desktop/ML/ContractReview"

#clean text
cleanCorpus <- function(corpus) 
  corpus.tmp <- tm_map(corpus, removePunctuation)
  corpus.tmp <- tm_map(corpus.tmp, stripWhitespace)
  corpus.tmp <- tm_map(corpus.tmp, content_transformer(tolower))
  corpus.tmp <- tm_map(corpus.tmp, removeWords, stopwords("english"))
  corpus.tmp <- tm_map(corpus.tmp, stemDocument)
  return(corpus.tmp)


#build TDM

generateTDM <- function(contract, path) 
  c.dir <- sprintf ("%s/%s", path, contract)
  c.cor <- VCorpus(DirSource(directory = c.dir), readerControl = list(reader=readPlain))
  c.cor.cl <- cleanCorpus(c.cor)
  c.tdm <- TermDocumentMatrix(c.cor.cl)

  c.tdm <- removeSparseTerms(c.tdm, .07)
  result <- list(name = contract, tdm = c.tdm)


tdm <- lapply(contract, generateTDM, path = pathname)

# attach name

bindcontractToTDM <- function(tdm) 
  c.mat <-t(data.matrix(tdm[["tdm"]]))
  c.df <- as.data.frame(c.mat, stringsAsFactors = FALSE)

  c.df <- cbind(c.df, rep(tdm[["name"]], nrow(c.df)))
  colnames(c.df) [ncol(c.df)] <- "targetcontract"
  return(c.df)


contractTDM <- lapply(tdm, bindcontractToTDM)

#stack if you have more than one dataframe
tdm.stack <- do.call(rbind.fill, contractTDM)
tdm.stack[is.na(tdm.stack)] <-0

#hold-out
train.idx <- sample(nrow(tdm.stack), ceiling(nrow(tdm.stack)* 0.7))
test.idx <- (1:nrow(tdm.stack))[- train.idx]

#model - knn
tdm.contract <-tdm.stack[, "targetcontract"]
tdm.stack.nl <- tdm.stack[, !colnames(tdm.stack) %in% "targetcontract"]

knn.pred <- knn(tdm.stack.nl[train.idx, ], tdm.stack.nl[test.idx, ], tdm.contract[train.idx])

#accuracy

conf.mat <- table("predictions"= knn.pred, Actual = tdm.contract[test.idx])

(accuracy <- sum(diag(conf.mat)) / length(test.idx)*100)

【问题讨论】:

【参考方案1】:

您的问题的答案隐藏在 knn.pred 对象中,该对象存储测试用例的预测标签。

由于没有提供输入数据(我不认为它是由视频作者提供的?),我不确定您示例中合同类的详细信息。但是,您正在使用的 class 包中的 knn 函数的输出是算法为测试文档预测的带有标签的因子

(你会注意到

length(knn.pred)

等于 0.3 * nrow(tdm.stack) )。

如果您想查看/存储每个条目的预测标签和实际标签,那么您可以创建一个合适的数据框:

label_df <- cbind(label_pred = knn.pred, label_actual = tdm.contract[test.idx])

或者,您也可以选择包含 tdm.contract 的其余列(如果您想在该上下文中重新检查 tdm.stack 信息)

label_df <- cbind(label_pred = knn.pred, label_actual = tdm.contract[test.idx], tdm.stack.nl[test.idx,])

然后您可以过滤这些数据框中的任何一个,以查看您感兴趣的条目是如何被标记的。

或者,您可以选择使用不同包中的函数运行 k 最近邻算法,在这种情况下,输出可能会有所不同。

【讨论】:

非常感谢您提供此回复。真的很感激。

以上是关于如何导出 rStudio 分析详细信息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用详细信息分析 Rails 请求?

如何在突触分析工作区的日志分析工作区中获取错误详细信息日志

如何从谷歌分析中获取我的特定链接详细信息

Firebase 分析 - 如何在事件详细信息视图中查看所有用户属性

使用 boto3 和 python 将 AWS EC2 详细信息导出到 xlsx/csv

Amazon Redshift - 清理和分析详细信息