天天看點

《Arduino家居安全系統建構實戰》——2.8 我們學到了什麼?

本節書摘來異步社群《機器學習項目開發實戰》一書中的第2章,第2.8節,作者:【美】mathias brandewinder(馬蒂亞斯·布蘭德溫德爾),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

我敢肯定,用這個模型還可以做得更多,畢竟,我們距離完美還有1.7%!但是,我将把這個問題留給讀者作為興趣練習,而将篇幅留給本章關鍵點的回顧。

首先,我們讨論了貝葉斯定理和獨立性的概念。我覺得這一成果特别有趣,原因至少有兩個。首先,貝葉斯定理的通用公式相當簡單。其次,它很強大:貝葉斯定理提供了描述和量化兩部分不完善資訊之間關系的通用架構。它本身就是統計學和機器學習的一個關鍵成果,因為這兩個學科都試圖從不完整的樣本中得出結論,找出資料之間的模式。也就是說,找出不獨立的資料并加以利用。

當然,簡單貝葉斯分類器本身在貝葉斯定理應用中微不足道:我們在文本資訊的工作方式上做了一些簡化的假設,以便使數學方法可行,隻是為了展示應用貝葉斯定理的結果。文本标記化的過程可能比分類器本身更有趣。機器學習算法通常需要一組特征,原始的文本塊并不能很好地适應這些模式。通過将文本分解為标志,識别和計算出現在一個文檔中的單詞數量,我們就能将文本轉換為更友善的結構。

最後,我們花費很多時間改進基本模型,通過提取新特征加以完善。關鍵的要點是,我們始終使用相當簡單的算法,但是僅僅花費時間了解資料、使用所得到的知識稍作重整,就能将模型的預測能力從中等提高到很好的水準。決定使用哪一個算法無疑是機器學習的重要部分之一,但是建構一個好的模型通常不是尋找唯一算法、魔法般地解決問題,而更多的是憑借對問題域的更深入了解,使用這些知識提取更好的特征。

在這個特例中,出現了幾個模式。首先,資料并不總是越多越好。有些特征包含許多資訊,有些則不然。找出資訊量大的特征、消除其餘特征可以為模型提供攜帶信号較多、噪聲較少、更容易利用的資訊。然後,我們看到了兩個相反的現象,最終使用了保持單詞大小寫的标記化程式。我們意識到,原來使用的特征過于粗糙,是以将它們分解為多個更具體的特征(例如,“free”和“free”)。相反,我們注意到有許多電話号碼,将其聚合成單個之前不存在的首要特征,以便觀察其作用。同樣,了解問題域和資料絕對是很重要的:如果好的算法以錯誤的方式觀察特征,也不會走得太遠,對特征的小更改往往能将一個普通的模型轉化為出色的模型。

繼續閱讀