【问题标题】:Fuzzy Cyclic Triangular membership function模糊循环三角隶属函数
【发布时间】:2014-05-21 17:09:51
【问题描述】:

我对 R 中的模糊工具包非常陌生。我一直在尝试创建如图所示的模糊函数。

我正在使用这个函数将时间表示为四个变量的列表

  1. 早上
  2. 中午
  3. 晚上
  4. 午夜

对于任何给定的时间,所有四个变量都有一个特定的值。例如,当时间在凌晨 3:00 时,我们会有 早上=0.5,中午=0,晚上=0,午夜=0.5

这也是一个循环隶属函数。午夜变量环绕 0:00 和 24:00

如何使用模糊工具包在 R 中实现这一点。非常感谢您提前。

【问题讨论】:

  • 您需要澄清您的问题并描述您试图寻求帮助的内容。
  • 你好,马丁,谢谢。我正在构建一个基于神经网络的时间序列预测系统。我正在寻找有效的方式来表示时间。当我偶然发现一篇关于使用 ANN 改进气温预测的论文时。他们使用基于模糊的隶属函数,该函数由 4 个变量组成 1.Midnight 2.Morning 3. Noon 4. Evening。这些变量的值根据一天中的时间而变化。因此,如果我在早上 3:00 服用,我将有 1. Morning=0.5 2. Midnight=0.5 3. Noon=0 4. Evening=0 此外,如果您注意到午夜变量环绕 0:00 和 24:00 小时
  • 当你澄清一个问题时,你应该更新原始帖子而不是评论。仅供参考,我实际上对这个主题一无所知,我只是想帮助您使用堆栈溢出。

标签: r fuzzy-logic


【解决方案1】:

我想一个开始会是

FIS <- newFIS("daytest")
FIS <- addVar(FIS, "input", "daytime", 0:2400)
FIS <- addMF(FIS, "input", 1, triMF("Midnight", 0:2400, c(0,0,600,1)))
FIS <- addMF(FIS, "input", 1, triMF("Morning", 0:2400, c(0,600,1200,1)))
FIS <- addMF(FIS, "input", 1, triMF("Noon", 0:2400, c(600,1200,1800,1)))
FIS <- addMF(FIS, "input", 1, triMF("Evening", 0:2400, c(1200,1800,2400,1)))
FIS <- addMF(FIS, "input", 1, triMF("Mignight", 0:2400, c(1800,2400,2400,1)))


class(FIS)
plotMF(FIS, "input",1)

问题在于文档没有明确说明循环模型,因此它可能不太可能知道环绕时间以使两个午夜相同。但是通过偷看物体,看起来你可以稍微轻松地操纵它,这样你就可以做出任何你想要的形状。所以我尝试了这个

FIS$inputList[[1]]$membershipFunctionList[[1]]$mfVals <- 
    FIS$inputList[[1]]$membershipFunctionList[[1]]$mfVals+
    FIS$inputList[[1]]$membershipFunctionList[[5]]$mfVals
FIS$inputList[[1]]$membershipFunctionList[[1]]$mfType <- "wrapmf"
FIS$inputList[[1]]$membershipFunctionList[[5]]<-NULL

在这里,我手动组合了两个午夜值,更改了“类型”,因此它不会在任何时候意外尝试重置它或根据它认为它是三角形的事实做出任何错误假设,然后删除第二个午夜类别。不是它产生这个情节

您可以看到第一个和最后一个峰现在都是红色的(第二个没有单独的标签)。根据我所阅读的有限数量,这应该可行。

【讨论】:

  • 这太棒了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多