分類是一種重要的資料探勘技術。分類的目的是根據資料集的特徵建構一個分類函數或分類模型(也常常稱作分類器),該模型能把未知類別的樣本映射到給定類別中的某一個。分類和迴歸都可以用於預測。和迴歸方法不同的是,分類的輸出是離散的類別值,而迴歸的輸出是連續或有序值。
建構模型的過程一般分為訓練和測試兩個階段。在建構模型之前,要求將資料集隨機分為訓練資料集和測試資料集。在訓練階段,使用訓練資料集,透過分析由屬性描述的資料庫元組來建構模型,假定每個元組屬於一個預先定義的類,由一個稱作類標號屬性的屬性來決定。訓練資料集中的單一元組也稱為訓練樣本,一個具體樣本的形式可為:(u1,u2,……un;c);其中ui表示屬性值,c表示類別。由於提供了每個訓練樣本的類別標號,因此該階段也稱為有指導的學習,通常,模型以分類規則、判定樹或數學公式的形式提供。在測試階段,使用測試資料集來評估模型的分類準確率,如果認為模型的準確率可以接受,就可以用該模型對其它資料元組進行分類。一般來說,測試階段的代價遠低於訓練階段。 (推薦學習:Python影片教學)
為了提高分類的準確性、有效性和可擴展性,在進行分類之前,通常要對資料進行預處理,包括:
(1) 資料清理。其目的是消除或減少資料噪聲,處理空缺值。
(2) 相關性分析。由於資料集中的許多屬性可能與分類任務不相關,若包含這些屬性將減慢和可能誤導學習過程。相關性分析的目的是刪除這些不相關或冗餘的屬性。
(3) 資料變換。資料可以概化到較高層概念。例如,連續值屬性「收入」的數值可以概化為離散值:低,中,高。又例如,標稱值屬性“市”可概化到高層概念“省”。此外,資料也可以規範化,規範化將給定屬性的值按比例縮放,落入較小的區間,比如[0,1]等。
分類演算法的種類及特性
分類模型的建構方法有決策樹、統計方法、機器學習方法、神經網路方法等。依大的方向分類主要有:決策樹,關聯規則,貝葉斯,神經網絡,規則學習,k-臨近法,遺傳演算法,粗集以及模糊邏輯技術。
決策樹(decision tree)分類演算法
決策樹是以實例為基礎的歸納學習演算法。它從一組無次序、無規則的元組中推理出決策樹表示形式的分類規則。它採用自頂向下的遞歸方式,在決策樹的內部結點進行屬性值的比較,並根據不同的屬性值從該結點向下分支,葉結點是要學習劃分的類別。從根到葉結點的一條路徑就對應一條合取規則,整個決策樹就對應一組析取表達式規則。 1986年Quinlan提出了著名的ID3演算法。在ID3演算法的基礎上,1993年Quinlan又提出了C4.5演算法。為了適應處理大規模資料集的需要,後來提出了若干改進的演算法,其中SLIQ (super-vised learning in quest)和SPRINT (scalable parallelizableinducTIon of decision trees)是比較有代表性的兩個演算法。
貝葉斯分類演算法
貝葉斯分類演算法是統計學的一種分類方法,它是一類利用機率統計知識進行分類的演算法。在許多場合,樸素貝葉斯(Naïve Bayes,NB)分類演算法可以與決策樹和神經網路分類演算法相媲美,該演算法能運用到大型資料庫中,而且方法簡單、分類準確率高、速度快。
由於貝葉斯定理假設一個屬性值對給定類別的影響獨立於其它屬性的值,而此假設在實際情況中經常是不成立的,因此其分類準確率可能會下降。為此,就衍生出許多降低獨立性假設的貝葉斯分類演算法,如TAN(tree augmented Bayes network)演算法。
更多Python相關技術文章,請造訪Python教學欄位學習!
以上是分類演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!