【发布时间】:2016-01-05 17:40:41
【问题描述】:
我一直在尝试使用 R Statistical 软件来构建 Takagi Sugeno 模糊系统。使用 R 包“frbs”,我已经按照演示文件中的示例成功设置了 FIS 的大部分组件。不幸的是,我遇到了一个问题: validate.params(object, newdata) 中的错误: 请检查您的 num.labels 参数 我一直在尝试预测一些价值,但我不知道这个脚本有什么问题。当我评论最后一行时,一切似乎都很好,但只有一个情节正在绘制。
# rm(list=ls()) # not generally appreciated
library(frbs)
varinp.mf <- matrix(c( 5, -1, 0.8493, NA, NA, 5, 1, 0.8493, NA, NA,
5, -1, 0.8493, NA, NA, 5, 1, 0.8493, NA, NA),
nrow = 5, byrow = FALSE)
num.fvalinput <- matrix(c(2,2), nrow=1)
x1 <- c("a1","a2")
x2 <- c("b1","b2")
names.varinput <- c(x1, x2)
range.data <- matrix(c(-1.5,1.5, -1.5, 1.5), nrow=2)
type.defuz <- "5"
type.tnorm <- "MIN"
type.snorm <- "MAX"
type.implication.func <- "MIN"
name <- "Przykład"
newdata <- matrix(c(-0.6, 0.3), ncol = 2, byrow = TRUE)
colnames.var <- c("x1", "x2")
type.model <- "TSK"
func.tsk <- matrix(c(1, 1, 1,
2, 1, 0,
1, -2, -1,
-1, 0.5, -2),
nrow = 4, byrow = TRUE)
rule <- matrix(c("A1","and","B1","->",
"A1","and","B2","->",
"A2","and","B1","->",
"A2","and","B2","->"),
nrow = 4, byrow = TRUE)
object <- frbs.gen( range.data, num.fvalinput, names.varinput,
num.fvaloutput, varout.mf=NULL, names.varoutput, rule,
varinp.mf, type.model, type.defuz, type.tnorm, type.snorm,
func.tsk, colnames.var, type.implication.func)
plotMF(object)
res <- predict(object, newdata)$predicted.val
【问题讨论】:
-
为什么标记为 MATLAB?
-
希望 MATLAB 标记中的人知道问题所在
-
因为它不是用 MATLAB 编写的,所以这行不通。我已经删除了标签。
-
@Garbaczyk 你不能假设 MATLAB 标签中的任何人也是
R程序员。这就像用 Python 和 Microsoft VBA 标记例如一个问题......是的,将两者配对有点荒谬,对吧?这里也一样。除非您的问题专门针对这两种语言,否则您不能用相互冲突的语言标记问题。您的问题仅涉及R。 -
在使用带有命名参数的配对列表向函数提供参数时,通常有助于使用 R 函数进行调试。因此,您可能首先不使用
object <- frbs.gen( range.data, num.fvalinput, names.varinput, ...调用的位置匹配。您还应该发布整个错误消息并指出哪个函数引发了错误。我编辑了您的问题以评论顶部的破坏性代码。留在里面时,这往往会惹恼人们。
标签: r rstudio fuzzy-logic