profiling - R中的回归树
问题描述
我正在从头开始在 R 中编写 CART,我几乎完成了。不过我的效率有问题:我的代码的瓶颈是下面的过程。
best_split2 <- function(dataset){
sse2 <- matrix(nrow=dim(dataset)[1], ncol=length((dataset))-1)
for(i in 1:(length(dataset)-1)){
for(l in 1:dim(dataset)[[1]]){
splits <- split_test3(dataset[[i]][l], i, dataset)
sse2[l,][i] <- cost_func3(splits)
}
}
sse_min2 <- min(sse2)
mins <- which(sse2 == sse_min2, arr.ind = TRUE)[1,]
index1 <- unname(mins[2])
index2 <- unname(mins[1])
split_val2 <- dataset[[index1]][index2]
splits2 <- split_test3(split_val2, index1, dataset)
return(list(sse = sse_min2, index = index2, split_val = split_val2, splits = splits2, left = NULL, right = NULL))
}
在 best_split2 中,我正在搜索数据集中的最佳拆分变量。考虑到 split_test3 和 cost_func3 函数是最佳编写的,而且它们非常快。您对如何优化此功能有任何提示吗?
谢谢!
解决方案
推荐阅读
- javascript - 如何在 OpenLayers 中重叠或相同几何体的情况下选择哪个要素叠加
- python - 使用 python-chess 从 PGN 文件中提取移动作为字符串
- reactjs - 部署在 Heroku 上的 ExpressJS API 出现 500 内部服务器错误
- excel - 类型不匹配 - 范围和数字
- javascript - 当对象是 JSON 对象与 Array 对象时,为什么 [For.. in] 循环中使用的变量返回不同的值?
- python - 在 python 中复制 F# map join
- c# - Unity C# 函数 Application.CanStreamedLevelBeLoaded(String string) 有什么作用?
- python - index() 函数不起作用,较长的函数也无法找到包含最大/最小数的行号
- c - CMake:未评估目标属性中的生成器表达式
- angular - 尝试更新云 Firestore 中的字段