有監督vs.無監督,傻傻分不清楚?
網上對於有監督和無監督差異性的文章非常多,本文將重點從應用的角度來闡述如何選擇有監督和無監督。
對比一:有標籤 vs. 無標籤
有監督又被稱為「有老師的學習」,無監督被稱為「沒有老師的學習」,所謂的老師就是標籤。有監督的過程為先通過已知的訓練樣本(已知輸入和對應的輸出)來訓練,從而得到一個最優模型,再將這個模型應用在新的數據上,映射為輸出結果。經歷這個過程後,模型具有了預知能力。無監督相比於有監督,沒有訓練的過程,而是直接拿數據進行建模分析,也就是沒有老師告訴你對錯,全靠自己探索。這聽起來似乎有點不可思議,但是在我們自身認識世界的過程中也會用到無監督學習。比如我們去參觀一個畫展,我們對藝術一無所知,但是欣賞完多幅作品之後,我們也能把它們分成不同的派別(比如哪些更朦朧一點,哪些更寫實一些。即使我們不知道什麼叫做朦朧派和寫實派,但是至少我們能把他們分為兩個類)。
對比二:分類 vs. 聚類
有監督的核心是分類,無監督的核心是聚類(將數據集合分成由類似的對象組成的多個類)。有監督的工作是選擇分類器和確定權值,無監督的工作是密度估計(尋找描述數據統計值),也就是無監督演算法只要知道如何計算相似度就可以開始工作了。
對比三:同維vs.降維
有監督的輸入如果是n維,特徵即被認定為n維,也即y=f(xi)或p(y|xi), i =n,通常不具有降維的能力。而無監督經常要參與深度學習,做特徵提取,或者乾脆採用層聚類或者項聚類,以減少數據特徵的維度,使i<n。事實上,無監督學習常常被用於數據預處理。一般而言,這意味著以某種平均-保留的方式壓縮數據,比如主成分分析(PCA)或奇異值分解(SVD),之後,這些數據可被用於深度神經網路或其它監督式學習演算法。
對比四:分類同時定性 vs. 先聚類後定性
有監督的輸出結果,也就是分好類的結果會被直接貼上標籤,是好還是壞。也即分類分好了,標籤也同時貼好了。類似於中藥鋪的葯匣,藥劑師採購回來一批藥材,需要做的只是把對應的每一顆藥材放進貼著標籤的葯匣中。
無監督的結果只是一群一群的聚類,就像被混在一起的多種中藥,一個外行要處理這堆藥材,能做的只有把看上去一樣的藥材挑出來聚成很多個小堆。如果要進一步識別這些小堆,就需要一個老中醫(類比老師)的指導了。因此,無監督屬於先聚類後定性,有點類似於批處理。
對比五:獨立和非獨立
李航在其著作《統計學習方法》(清華大學出版社)中闡述了一個觀點:對於不同的場景,正負樣本的分布如果會存在偏移(可能是大的偏移,也可能偏移比較小)。怎麼理解呢?假設我們手動對數據做標註作為訓練樣本,並把樣本畫在特徵空間中,發現線性非常好,然而在分類面,總有一些混淆的數據樣本。對這種現象的一個解釋是,不管訓練樣本(有監督),還是待分類的數據(無監督),並不是所有數據都是相互獨立分布的。或者說,數據和數據的分布之間存在聯繫。作為訓練樣本,大的偏移很可能會給分類器帶來很大的雜訊,而對於無監督,情況就會好很多。也就是,獨立分布數據更適合有監督,非獨立數據更適合無監督。
對比六:DataVisor無監督獨有的擴展性
試想這樣一個n維模型,產出結果已經非常好,這時又增加了一維數據,變成了n+1維。那麼,如果這是一個非常強的特徵,足以將原來的分類或者聚類打散,一切可能需要從頭再來,尤其是有監督,權重值幾乎會全部改變。而DataVisor開發的無監督演算法,具有極強的擴展性,無論多加的這一維數據的權重有多高,都不影響原來的結果輸出,原來的成果仍然可以保留,只需要對多增加的這一維數據做一次處理即可。
如何選擇有監督和無監督?
了解以上對比後,我們在做數據分析時,就可以高效地做選擇了。
首先,我們看是否有訓練數據,也即是否有標籤。沒有標籤的直接選擇無監督。事實上,對數據了解得越充分,模型的建立就會越準確,學習需要的時間就會越短。我們主要應該了解數據的以下特性: 特徵值是離散型變數還是連續型變數,特徵值中是否存在缺失的值,何種原因造成缺失值,數據中是否存在異常值,某個特徵發生的頻率如何 (是否罕見得如同大海撈針)。
其次,數據條件是否可改善?在實際應用中,有些時候即使我們沒有現成的訓練樣本,我們也能夠憑藉自己的雙眼,從待分類的數據中人工標註一些樣本,這樣就可以把條件改善,從而用於有監督學習。當然不得不說,有些數據的表達會非常隱蔽,也就是我們手頭的信息不是抽象的形式,而是具體的一大堆數字,這樣我們很難人工對它們進行分類。舉個例子,在bag - of - words 模型中,我們採用k-means演算法進行聚類,從而對數據投影。在這種情況下,我們之所以採用k-means,就是因為我們只有一大堆數據,而且是很高維的,若想通過人工把他們分成50類是十分困難的。想像一下,一個熊孩子把你珍藏的50個1000塊的拼圖混在了一起,你還用勇氣再把這50000個凌亂的小方塊區分開嗎?所以說遇到這種情況也只能選用無監督學習了。
最後,看樣本是否獨立分布。對於有訓練樣本的情況,看起來採用有監督總是比採用無監督好。單純想一想,有人指導總比自己探索好吧,即使是學習優異的學生,也非常抵觸老師把練習題的答案撕掉,對吧?做完題對一下答案,總覺得會更安心一點。但對於非獨立分布的數據,由於其數據可能存在內在的未知聯繫,因而存在某些偏移量,採用無監督就顯得更合適了。
推薦閱讀:
※定位大數據分析平台,Kyligence憑開源優勢謀全球業務擴張
※大數據雙創行動丨校園裡誕生的大數據創客
※大數據交易的「上海模式」,底氣在哪裡? | 數據科學50人·湯奇峰
※大數據(big data):基礎概念
※大數據的狂妄和南牆 | 方承志