R語言實現模糊邏輯推理模型

2021-03-02 R語言交流中心

模糊邏輯推理是以模糊集合論為基礎描述工具,對以一般集合論為基礎描述工具的數理邏輯進行擴展,從而建立了模糊推理理論。是不確定推理的一種。在人工智慧技術開發中有重大意義。今天我們就給大家介紹下在R語言中如何實現模糊推理理論模型。首先我們需要安裝R包FuzzyR。

install.packages("FuzzyR")install.packages("shiny")

 

然後我們看下此包中推理模型所提供的隸屬函數:

對於這些隸屬函數的調用,我們需要用到函數genmf(mf.type,mf.params)生成模型,然後通過evalmf對輸入的數據進行轉化。我們直接看一個示例:

 

my<- genmf('gaussmf', c(1, 3))x <- seq(1, 10, by = 0.1)y <- evalmf(x, my)plot(x, y, type = 'l')title("An example gaussian membershipfunction")

上面就是基礎的隸屬函數以及規則,那麼我們自己在R中構建一個由規則、隸屬函數等組成的模糊系統時,就開發了一個模糊推理系統,這在R中稱為fis。為了能夠恰當地考慮隸屬函數,我們把所有東西都放在fis中。在這裡需要用到函數newfis:

我們直接看下實例:

在建完fis後,我們需要對這個系統添加變量和對應的隸屬函數。需要用到函數addmf(fis, varType, varIndex, mfName, mfType, mfParams)或者addvar(fis, varType, varName, varBounds, method = NULL, params =NULL)。我們直接看下實例:

 

fis <- addvar(fis, 'input', 'service',c(0, 10))fis <- addmf(fis, 'input', 1, 'poor','gaussmf', c(3, 0))fis <- addmf(fis, 'input', 1, 'median','gaussmf', c(3, 6))fis <- addmf(fis, 'input', 1, 'power','gaussmf', c(6, 10))plotmf(fis, 'input', 1, main = 'Membershipfunction plots')

當然,此包也可以進行多變量的fis構建,我們直接看下實例:

 

fis <- addvar(fis, 'input', 'age', c(0, 70))fis <- addmf(fis, 'input', 2, 'young','gaussmf', c(30, 0))fis <- addmf(fis, 'input', 2, 'medianage', 'gaussmf', c(30, 60))fis <- addmf(fis, 'input', 2, 'old','gaussmf', c(60, 70))plotmf(fis, 'input', 2, main = 'Membershipfunction plots')

另外此包為了更方便fis的構建提供了隸屬函數的批量導入那就需要用到另一個函數addrule,它可以直接為fis添加隸屬函數的參數。我們直接看下包自帶的實例:tripper一個主要用於舉例目的的函數,它創建一個具有兩個輸入(服務和食品)、輸出變量(tip)及其成員函數的fis。

fis <- tipper()ruleList <- rbind(c(1,1,1,1,2),c(2,0,2,1,1), c(3,2,3,1,2))fis <- addrule(fis, ruleList)plotmf(fis, "input", 1)

此處ruleList的描述:第一列是指第一個輸入變量在索引1處的隸屬函數。第二列是指第二個輸入變量在索引2處的隸屬度函數。第三列是第一個輸出變量在索引3處的隸屬函數。第四列是要應用於規則的權重。第五列指的是規則的先行詞的模糊運算符(在本例中,它表示「OR」)。

 

接下來我們看下此包在輸出中的相關功能,首先是一個fis詳細信息的輸出showfis(fis)。此函數可以將fis的所有參數列出並列印在屏幕上。此外還可以對輸入輸出變量進行三維可視化展示:

 

此包並沒有設置mf的修改或者刪除函數,那麼如果要對已經構建的fis進行修改時,那麼就涉及到對fis中各變量的調用。我們直接看下實例:

fis$input[[1]]$mf[[1]]$type <-"trimf"plotmf(fis, "input", 1)

最後我們看下,如何進行可視化的交互式操作,那麼就需要用到shiny這個包。我們直接看下實例:

 library(shiny)showGUI(fis)

歡迎學習交流!

相關焦點

  • Houdini中的智能推理:模糊邏輯
    1965年,加州大學伯克利分校電子工程系主任Lotfi Zadeh教授發表了著名的論文《Fuzzy sets》,後被譽為「模糊邏輯之父」。我們首先來看模糊邏輯的定義:「基於隸屬度而非二值邏輯中清晰隸屬關係的知識表達的一組數學原理」。該定義較為抽象,下面我用大白話做個簡單解釋。在我們的世界中,存在兩種集合,一種是清晰集,一種是模糊集。
  • MIT、DeepMind發布CLEVRER數據集,推動視頻理解的因果邏輯推理
    在靜態圖像和視頻上提出的各種數據集的推動下,複雜視覺推理問題已經在人工智慧和計算機視覺領域得到了廣泛研究。然而,大多數視頻推理數據集的側重點是從複雜的視覺和語言輸入中進行模式識別,而不是基於因果結構。儘管這些數據集涵蓋了視覺的複雜性和多樣性,但推理過程背後的基本邏輯、時間和因果結構卻很少被探索。
  • 傳統邏輯、模糊邏輯與量子邏輯:它們的關係與應用
    具體深入地討論這個問題,這需要傳統邏輯數學、模糊邏輯數學與量子邏輯數學的邏輯方程式的論證與闡述。這裡,我們儘量用通俗的語言來簡單介紹這三者之間的基本關係。要簡單解釋這三者之間的基本關係,自然首先需要了解這傳統邏輯的基本規律及與模糊邏輯與量子邏輯最基本的不同點。
  • 【因果推理】李文釗丨因果推理中的潛在結果模型:起源、邏輯與意蘊
    由此可見,潛在結果模型挑戰了因果推理的正統觀點,發展了哲學中反事實框架思想,通過借鑑統計學中潛在結果和隨機的概念,建構了因果推理的新路徑。這一新路徑是關於如何進行因果推理的基礎性研究,使得觀察研究和實驗研究在統一理論框架之下思考,為社會科學的因果推理建立了堅實的理論基礎。通過對因果關係研究的歷程回顧,對潛在結果模型的理論來源的分析,可以更好地理解潛在結果模型的核心主張和內在邏輯。
  • 從Bengio演講發散開來:探討邏輯推理與機器學習
    、有規劃的、可推理以及可以語言表達的系統。Bengio 在 AAAI 2020 的演講報告中提出,人的認知系統包含兩個子系統:System1(直覺系統),實現的是快速、無意識、非語言的認知,這也是現有的深度神經網絡所實現的。他認為,未來的深度神經網絡應當能夠實現 System2(邏輯分析系統),實現的是有意識的、有邏輯的、有規劃的、可推理以及可以語言表達的系統。
  • onnx實現對pytorch模型推理加速
    ONNX Runtime是適用於Linux,Windows和Mac上ONNX格式的機器學習模型的高性能推理引擎。對於硬體供應商來說,也可以簡化神經網絡計算的複雜度,實現優化算法。3.torch.nn.Module.load_state_dict:使用反序列化狀態字典加載model's參數字典保存加載模型2種方式,在保存模型進行推理時,只需要保存訓練過的模型的學習參數即可,一個常見的PyTorch約定是使用.pt或.pth文件擴展名保存模型。
  • 鋰離子電池組監控系統研究與實現 — 模糊故障診斷
    考慮電池在使用中出現的故障現象、故障原因的複雜性,這些故障難以用準確的數學模型表述,也無法用準確的判斷依據來診斷。因此,我們需要引入模糊理論,以模糊數學與模糊診斷原理為基礎,給出一種電池故障模糊診斷方法。
  • 基於單片機的模糊控制系統
    這些特點使得建立這一類過程的精確數學模型的難度很大,或甚至 根本辦不到。 模糊控制是基於規則的智能控制方式,它不依賴於被控對象的精確數學模型,特別適合對具有多輸入一多輸出的強耦合性、參數的時變性、嚴 重非線性與不確定性的複雜系統或過程的控制,且控制方法簡單,魯棒性好[1][2]。
  • 模糊PID(fuzzy PID)仿真舉例
    但學習了解還是很有必要的,matlab/simulink有專門的模糊控制的庫,足以說明其重要性,本文通過簡單的simulink模糊PID控制為例,對matlab模糊控制進行介紹。模糊控制  之所以稱為模糊,意思就是你的輸入或對應的輸出並不具體,具有模糊性。模糊控制器的構成主要包括輸入模糊化,模糊推理,去模糊化三個主要環節。
  • 有效推理原則—數理邏輯
    邏輯是探索、闡述和確立有效推理原則的學科,最早由古希臘學者亞里斯多德創建的。用數學的方法研究關於推理、證明等問題的學科就叫做數理邏輯。也叫做符號邏輯。利用計算的方法來代替人們思維中的邏輯推理過程,這種想法早在十七世紀就有人提出過。布萊尼茨就曾經射向果能不能創造一種「通用的科學語言」,可以把推理過程象數學一樣利用公式來進行計算,從而得出正確的結論。
  • R語言邏輯回歸分析
    如何進行邏輯回歸分析邏輯回歸是當y=f(x),而y為分類變量的時候的邏輯曲線擬合的方法。
  • UC伯克利大學胡戎航博士論文公布:視覺與語言推理的結構化模型
    視覺 - 語言任務(如基於圖像回答問題或按照自然語言指令在視覺環境中導航)需要對圖像和文本兩種模態的數據進行聯合建模和推理。視覺和語言聯合推理方面已經取得了很大進步,但通常使用的是在更大的數據集和更多計算資源幫助下訓練的神經方法。視覺 - 語言任務的解決是否只是堆參數堆數據那麼簡單?如果不是,如何構建更好的推理模型,既能提高數據效率又具備不錯的泛化性能呢?
  • 124頁,UC伯克利大學胡戎航博士論文公布:視覺與語言推理的結構化模型
    視覺和語言聯合推理方面已經取得了很大進步,但通常使用的是在更大的數據集和更多計算資源幫助下訓練的神經方法。 視覺 - 語言任務的解決是否只是堆參數堆數據那麼簡單?如果不是,如何構建更好的推理模型,既能提高數據效率又具備不錯的泛化性能呢?UC 伯克利胡戎航的博士論文就是關於這個主題:
  • 神經網絡與邏輯推理相結合的NLR框架
    用戶認知推理的過程可以表示成邏輯表達式的形式,如(a∨b)∧¬c-->v(其中∨表示或,∧表示與,¬表示非)表達的含義是如果用戶喜歡a或者b,同時不喜歡c,那麼他有可能喜歡v。從把推薦當作一個認知推理任務的角度來說,我們希望推薦模型能夠發現和歸納數據中存在的邏輯關係。那麼如何讓模型具備更好的推理能力呢?
  • 基於模糊控制的恆流源
    模糊控制是以模糊集合理論、模糊語言變量及模糊推理為基礎的一種智能控制。模糊控制對數學模型的依賴性弱,不需要建立過程的精確數學模型,並具有良好的魯棒性和適應性。模糊控制系統的原理如圖2所示。其次根據專家經驗劃分各變量的模糊子集並確定各子集的隸屬函數,其中模糊子集的劃分要使相鄰子集隸屬函數相交點處隸屬度為0.2~0.5左右。最後建立模糊控制規則,即根據輸入量的模糊子集確定輸出量的模糊子集。2.2.1 選擇模糊系統的結構及其邏輯算法模糊控制器選用採樣電壓的偏差e和偏差變化率ec作為輸入量,因此該模糊控制器為二維模糊控制器。
  • R語言做深度學習
    閱讀本文,你可以獲得:R語言做深度學習工作環境創建R語言快速實現神經網絡模型R語言做深度學習的資料深度學習的應用場景感謝RStudio公司開發的keras包,使得R語言可以利用keras深度學習框架來做深度學習,具有簡潔,易學,好用等特性。什麼是Keras?
  • R語言實現數據離散化方法總結
    適應性,有些分類模型適合用離散化數據做為數據指標,比如決策樹雖然支持輸入連續型變量,但決策樹模型本身會先將連續型變量轉化為離散型變量,做邏輯回歸時,也通常會先把連續型特徵變量離散化,變成0或1。魯棒性,數據離散化會讓特徵變化不是特別明顯,特別是對於降低異常數據幹擾。穩定性,犧牲了數據的微小變化,但保證了模型的穩定性。
  • ——憑邏輯推理勝出的語言大師
    「憑邏輯推理勝出的語言大師」就是理性者的另外一個標籤,我們來看看到底是怎麼回事?和理想主義者一樣, 這種性格類型的人會使用抽象的語言與他人進行交流,而另一方面,他們又像技藝者一樣,是一個不折不扣的實用主義者 。 在交流的過程中,我們必須使用文字來傳遞信息 。 為了實現目標,我們不得不藉助工具的力量 。 因此,這兩個方面——文字和工具的使用——自然也就成了人格發展當中最根本的基礎要素 。
  • 「因果推理」李文釗|因果推理中的科學模型
    為了解決選擇性偏差問題,赫克曼沒有像統計學一樣試圖通過隨機實驗而使得樣本選擇對於幹預結果沒有影響,而是求助於科學研究,去發現導致選擇性偏差的真實原因,對偏差進行估計,並且將這一選擇性偏差模型化,形成了有關選擇的模型和結果的模型的兩個模型。這種將選擇與結果分別建立模型,並且強調他們之間內在邏輯關係構成了因果推理的結構計量經濟學路徑,也即因果推理中科學模型的核心思想。
  • 從prolog到LTN,AI的邏輯推理能力1
    然後,順藤摸瓜,果然,神經網絡+邏輯編程,學術界的研究也有了初步的成果,例如Logic Tensor Networks 、Neural Logic Machines 等等。本文整理了邏輯編程、prolog語言快速入門、LTN的核心思想,分享給大家。