關於機器學習中規則與統計方法的思考


      最近工作了一段時間,今天跟大家討論一下關於“規則與模型”的問題。
      大家肯定都知道,機器學習方法主要分兩類,一類是基於統計的方法,比如貝葉斯、KNN等,都是對數據的某種特征進行歸類計算得到數據划分的依據的;另一類是基於規則的方法,比如,語義規則,語法規則或者業務規則等等,這些規則主要是根據數據本身的特征人為地對分類細節進行限定,沒有什么太高深的理論,但是實用性很強。當然,我覺得還有第三種方法,就是基於統計與基於規則相結合的方法,比如關聯規則,apriori方法,或者決策樹方法。這些方法在分類或者求變量關系的時候本質上是基於規則分類,但是在訓練過程中卻是使用統計的方法的。比如apriori方法,該方法本身就是求規則的一種方法,但該方法訓練的時候是需要對各種關聯特征進行統計的。訓練完畢后尋找強關聯性的特征可以進行分類,因為我覺得找出哪些是強關聯哪些不是強關聯就是一個分類的過程。再比如決策樹,同樣的道理,決策樹本身得到的那棵樹就是一棵規則樹,但是在尋找樹的分裂屬性上,無論是ID3還是C4.5,都是基於統計方法的。我認為這種通過訓練出的規則進行統計分類的方法就是統計與規則相結合的方法。那么這三類方法哪些是比較有效的呢,或者說哪些是比較適合大部分數據的呢?
      我的個人理解是,沒有。我們在學校里寫paper,最主要的任務有三:第一,提高算法性能;第二,提高算法對數據的匹配度;第三,提高數據對算法的匹配度。舉個例子來說,我用SVM對新浪微博文本做情感分析,要么改進SVM核心算法,提高分類精度;要么對SVM選取特征的方法或空間構造的方法進行改進,提高分類精度;要么就是直接改進數據特征提取方式,提高數據對分類器的匹配度。但是,不管是哪一種方法,都要滿足最小泛化閾值。也就是說,對訓練數據之外的測試數據的分類准確度一定要滿足最低要求。我們把訓練數據和測試數據的概念擴大一下,如果我們把要訓練的某類數據作為訓練數據,把該類別之外的數據作為測試數據,情況就完全不一樣了。比如,我把微博數據作為訓練數據,把短信類短文本數據作為測試數據,雖然同樣都屬於短文本,但泛化值出奇的低。這是因為我們無論采用哪一種方法,數據都必須是封閉的,或者說是相對封閉的。我們用分類器或者基於統計的方法,其實主要就是為了提高泛化能力,因為統計一個詞的個數和一個數的個數的意義是一樣的。但是現在看來,好像基於統計的方法的泛化能力還是有限。
導致這種現象的原因是什么呢?我在剛開始學機器學習的時候就遇到一個很大的矛盾,既然SVM是最好的基於統計的分類方法,而基於統計的方法的目的就是為了提高泛化能力,為什么在使用SVM的時候還是需要去適應數據呢?在我理解,分類方法對數據適應的越多,規則成分就越多。我在最近做“技能詞識別”的時候使用了各種規則,嘗試了各種方法,然后我返現我犯了兩個個錯誤,第一SVM是一種思想,不是一種具體的方法。思想本身無法使用,只有把它應用到實踐才有價值;第二就是數據挖掘,或者機器學習的核心的重點永遠是數據和思想的問題,沒有方法的問題。因為我們選擇的方法一定是要匹配數據的,目前來說這是根本;方法也是必須要符合分類某數據的核心思想的。由此我想出,無論是基於規則的方法還是基於統計的方法都是基礎理論,單純的使用基礎理論是沒有什么意義的,或者說只能滿足很少一部分數據的。只有結合實際情況,結合多種基礎理論,才能把機器學習運用到實際當中,因為我們的核心是數據,是實際情況。
      所以說,如果們分類的時候發現基於統計的方法遠遠不如基於規則的方法,或者反過來,並不表明哪一種方法好,而是說明某一種方法更適合目前要分析的數據。對完全不同數據類型的數據進行泛化我覺得目前來說不太現實,因為對於真實的人來說讓一個人根本不懂英語的中國人去理解英文那是不可能的。當然,以后會發展到什么程度我是難以預料的,我的眼光目前也比較短淺看不到很深遠的東西。但我覺得,如果某一天這種泛化能力實現了,人類將走向滅絕。
      對了,最后一點,我覺得將“基於統計的學習方法”和“基於規則的學習方法”改為“基於統計的學習思想”和“基於規則的學習思想”更好一些。
      可能會有邏輯不對的地方,歡迎批評指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM