形式概念分析(Formal Concept Analysis,FCA)是Wille提出的一種從形式背景進行數據分析和規則提取的強有力工具,形式概念分析建立在數學基礎之上,對組成本體的概念、屬性以及關係等用形式化的語境表述出來,然後根據語境,構造出概念格(concept lat-tice),即本體,從而清楚地表達出本體的結構。這種本體構建的過程是半自動化的,在概念的形成階段,需要領域專家的參與,識別出領域內的對象、屬性,構建其間的關係,在概念生成之後,可以構造語境,然後利用概念格的生成算法CLCA,自動產生本體。形式概念分析強調以人的認知為中心,提供了一種與傳統的、統計的數據分析和知識表示完全不同的方法,成為了人工智慧學科的重要研究對象,在機器學習、數據挖掘、信息檢索等領域得到了廣泛的套用。
基本介紹
- 中文名:形式概念分析
- 外文名:(Formal Concept Analysis
- 簡稱:FCA
- 提出者:Wille
- 定義:數據分析和規則提取的強有力工具
- 套用領域:機器學習、數據挖掘、信息檢索等
形式概念分析,套用實例,結束語,
形式概念分析
本體,從而清楚地表達出本體的結構。在形式概念分析中,概念的外延被理解為屬於這個概念的對象的集合,而內涵則被認為是所有這些對象所共有的特徵或屬性集,這實現了對概念的哲學理解的形式化。所有的概念連同它們之間的泛化/例化關係構成一個概念格。
概念格是FCA的核心數據結構。概念格的每個節點是一個概念,由外延和內涵組成。外延是概念所覆蓋的實例;而內涵是概念的描述,是該概念所覆蓋實例的共同特徵。概念格可以通過其Hasse圖生動簡潔地體現概念之間的泛化和例化關係。概念格結構模型是形式概念分析理論中的核心數據結構。其本質上描述了對象和特徵之間的聯繫,表明了概念之間的泛化與例化關係。這種概念格構建的過程是半自動化的。
套用實例
排序算法是數據結構學科經典的內容,其中內部排序現有的算法有很多種,究竟各有什麼特點呢?本文主要是對內排序的冒泡排序、交換排序、選擇排序、插入排序,希爾排序、基數排序、快速排序、歸併排序、堆排序九種算法為對象集,把算法的平均時間複雜度,最好時間複雜度,最差時間複雜度,穩定性,輔助空間為屬性集構建形式背景。
表1 形式背景
平均 時間 複雜度 | 最好 時間 複雜度 | 最壞 時間 複雜度 | 穩定 性 | 輔助 空間 | |
冒泡排序 | O(n) | O(n) | O(n) | 是 | O(1) |
交換排序 | O(n) | O(n) | O(n) | 否 | O(1) |
選擇排序 | O(n) | O(n) | O(n) | 否 | O(1) |
插入排序 | O(n) | O(n) | O(n) | 是 | O(1) |
希爾排序 | O(nlogn) | O(n) | O(n) | 否 | O(1) |
基數排序 | O(d(r+n)) | O(d(n+rd)) | O(d(r+n)) | 是 | O(n+rd) |
快速排序 | O(nlogn) | O(nlogn) | O(n) | 否 | O(nlogn) |
歸併排序 | O(nlogn) | O(nlogn) | O(nlogn) | 是 | O(n) |
堆排序 | O(nlogn) | O(nlogn) | O(nlogn) | 否 | O(1) |
註:基數排序的複雜度中,r代表關鍵字的基數,d代表長度,n代表關鍵字的個數
此形式背景為多值的,為了簡便,把平均時間複雜度,最好時間複雜度,最差時間複雜度為O(n)的算法認為其時間複雜度高,其餘的認為時間複雜度低。存儲空間為O(1)的算法認為其存儲空間小,其餘的認為存儲空間大。並且把時間複雜度低,算法穩定,存儲空間小用1表示,把時間複雜度高,算法不穩定,存儲空間大用0表示,簡化後的形式背景如表2。 表2 簡化的形式背景
平均 時間 複雜度 | 最好 時間 複雜度 | 最壞 時間 複雜度 | 穩定 性 | 輔助 空間 | |
冒泡排序 | 0 | 0 | 0 | 1 | 1 |
交換排序 | 0 | 0 | 0 | 0 | 1 |
選擇排序 | 0 | 0 | 0 | 0 | 1 |
插入排序 | 0 | 0 | 0 | 1 | 1 |
希爾排序 | 1 | 0 | 0 | 0 | 1 |
基數排序 | 1 | 1 | 1 | 1 | 0 |
快速排序 | 1 | 1 | 0 | 0 | 0 |
歸併排序 | 1 | 1 | 1 | 1 | 0 |
堆排序 | 1 | 1 | 1 | 0 | 1 |
可以依據基於約簡意義的概念格構造方法對其進行簡約。把屬性值相同的對象進行合併。通過觀察,可以看出冒泡排序和插入排序可以合併,交換排序和選擇排序可以合併,基數排序和歸併排序可以合併。約簡後的形式背景如表3。
表3 約簡後的形式背景
平均 時間 複雜度 | 最好 時間 複雜度 | 最壞 時間 複雜度 | 穩定 性 | 輔助 空間 | |
冒泡排序/ 插入排序 | 0 | 0 | 0 | 1 | 1 |
交換排序/ 選擇排序 | 0 | 0 | 0 | 0 | 1 |
希爾排序 | 1 | 0 | 0 | 0 | 1 |
基數排序/ 歸併排序 | 1 | 1 | 1 | 1 | 0 |
快速排序 | 1 | 1 | 0 | 0 | 0 |
堆排序 | 1 | 1 | 1 | 0 | 1 |
把對象的屬性值為1的作為默認值。把簡約後的形式背景變為單值的形式背景。並用1,2,3,4,5依次代表各屬性,用a,b,c,d,e,f依次代表個對象。則有對象集{a,b,c,d,e,f},屬性集{1,2,3,4,5},單值形式背景如表4。
表4 單值形式背景
1 | 2 | 3 | 4 | 5 | |
a | × | × | |||
b | × | ||||
c | × | × | |||
d | × | × | × | × | |
e | × | × | |||
f | × | × | × | × |
為了方便構造形式背景的概念格,將單值形式背景轉換為帶有父子關係(繼承關係)的單值形式背景,也就是基於屬性個數比較的排序。例如,表4中對象b有1個屬性,屬性個數最少,將其放在第一位。對象a,c,e有兩個屬性,放在第二位。對象d,f有四個屬性,放在最後兩位。這樣由表4得到的帶有父子關係的單值形式背景如表5所示。
表5 帶有父子關係的單值形式背景
1 | 2 | 3 | 4 | 5 | |
b | × | ||||
e | × | × | |||
a | × | × | |||
c | × | × | |||
f | × | × | × | × | |
d | × | × | × | × |
利用此表通過Chein算法生成概念格,其概念格如圖1所示。
圖1 排序算法的概念格
通過該概念格,可以發現一些規律:
(1)If1 Then 2
1代表算法的平均時間複雜度,2代表算法的最好時間複雜度。也就是說算法的平均時間複雜度低的時候,它的最好時間複雜度一般也是低的。這和實際意義是相符的,因為算法的最好時間複雜度一般都小於或等於算法的平均時間複雜度,當它的平均時間複雜低的時候,它的最好時間複雜度必然也是低的。
(2)If3 Then1, 2
3代表最壞時間複雜度,該規則說明當算法的最壞時間複雜低的時候,它的最好時間複雜度和平均時間複雜度也是低的。這是因為一個算法的平均時間複雜度和最好時間複雜度都是小於或等於它的最壞時間複雜度的,當最壞時間複雜度低的時候,它的平均時間複雜度和最好時間複雜度也必然是低的。
(3)If4 Then 2
4代表算法的穩定性。該規則表明,當算法是穩定的時候,它的最好時間複雜度是低的。
結束語
排序算法是數據結構的重要內容,也對編程人員有著重要作用,選擇一個合適的算法能提高程式的運行效率。形式概念分析是獲得飛速發展的一種分析數據的工具。本文將形式概念分析引入到排序算法的研究,構建9種算法的概念格,從而全面的分析它們的特徵和關係,能幫助大家更好的理解和運用這些算法。