基於屬性概括的基本思想就是首先利用關係數據庫查詢來收集與任務相關的數據並經過對任務相關的數據並經過對任務相關數據集中各屬性不一樣值個數的檢查完成數據泛化操做。算法
下面是《數據挖掘導論》原文提供的算法——AOI方法(基於屬性概括方法),我原本概念挺模糊的,但後來本身仍是思考了,發現這個算法能夠當作爲一個泛化表的程序。數據庫
(1)選擇數據表。ide
(2)獲取數據表中各屬性不一樣值的個數,爲下面操做作準備(其中應該運用了SQL中的groupby語句進行彙總).net
(3)對知足條件的屬性,進行泛化操做,並可進行刪減、整理工做。excel
(4)合併數據表,整理數據表。ip
(5)輸出,完成過程。ci
這裏還提到一個概念是泛化閾值,泛化閾值,據我理解是這樣的。泛化閾值是一個自定義的數值,是與屬性中不一樣值的個數做對比。若是泛化閾值比屬性不一樣值的個數要小,證實該屬性要進行泛化操做了。get
如:一個表的屬性名爲:「姓名」,它有700個不一樣取值,設泛化閾值是2。2<700,那麼該屬性要進行泛化操做。it
此外,還有一個概念叫概念層次樹。個人理解是這樣的。原表有本身原本的屬性。若是它要進行泛化操做。那麼進行操做後,要根據新數據與原數據的關係進行新的命名。此時,泛化的屬性名與原屬性名組成的關係,咱們稱之爲概念層次樹。數據挖掘
下面是書中說起的例子
例3.1 從一個大學數據庫的學生數據中挖掘出研究生的概念描述。所涉及的屬性包括:姓名、性別、專業、出生地、出生日期、居住地、電話和GPA。
第一步將相關學生的數據抽取出來。
獲得以下屬性
第二部進行分析處理。
(1) name,因爲name屬性擁有許多不一樣的取值且對它也沒定義合適的泛化操做。可被省掉。
(2) gender,因爲gender屬性僅包含兩個不一樣值,該屬性被保留無需進行泛化。
(3) major,該屬性已經定義一個概念層次樹,能夠進行泛化。設泛化閾值爲5,初始數據有25個不一樣取值。Major屬性能夠被泛化成指定概念(art&science、engineering、business)
(4) birth_place,該屬性擁有不一樣的取值,咱們須要對其進行泛化。着實行有必定的層次:city<provinve<country。咱們要根據實際狀況來泛化該屬性。若是country取值超過屬性泛化閾值時,此屬性應該被省略。所有都是一國的學生對此項目便無心義了。若是超過屬性的泛化閾值,則該屬性被泛化爲birth_country。
(5) birth_date, 設它有一個概念層次樹的存在。birth_date屬性能夠泛化成age;而後再到age_range。
(6) residence, 假設residence屬性是有number、street、residence_city、residence_province、residence_country屬性描述。Number和street屬性的不一樣值可能很是多。因此number和street屬性或被減掉,residence_city它僅包含四個不一樣取值。因此將residence屬性被泛化成residence_city
(7) phone#,與name屬性類似,減掉
(8) gpa,假設gpa存在一個概念層次樹。它將平均成績劃分爲若干組。如{3.75-4.0,3.5-3.75等},也能夠相應的描述爲:{excellent,good, …},所以該屬性應進行屬性的泛化操做。
所以得以下結果。