機器學習系列之分類

藍色的葉子發表於2018-04-03

隨著計算能力、儲存空間、網路的高速發展,人類所積累的資料量正在快速增長,而分類在資料探勘中是一項非常重要的任務,目前在商業上應用最多,分類演算法是解決分類問題的方法,是機器學習中一個重要的研究領域。為了讓大家進一步瞭解機器學習的分類演算法,飛馬網於3月29日晚,邀請到現就職於國內知名網際網路公司的中山大學博士—李夢婷,向大家分享有關分類演算法相關領域的內容。

lADPBbCc1ZHkofXNAxrNBGI_1122_794.jpg

以下是這次線上直播的分享實錄:

一.What(帶大家從根本上了解什麼是分類)

1.什麼是分類:

大家對分類其實並不陌生,在我們的現實生活中,經常會碰到這樣的場景:

“這個人是男的還是女的?”,我們通常會在腦袋裡考慮非常多的因素,比如“頭髮長短、身材曲線、穿衣風格......”,在大腦中,我們會結合觀察到的多種因素去判斷男女,這就是一個分類問題。

又或者大家比較關心的一個話題—房價,和朋友聊天時,我們會猜測“房價會漲還是會降呢?”,這其實也是一個分類問題。

上面所說的這兩個例子,只有兩個選項,所以這屬於二分類問題。

除此之外還有非常多的分類場景,比如大家關心的年終獎,分為多種級別(S、A、B、C)。平常我們在看新聞時,每篇文章都會對應不同的類別(娛樂類、體育類、財經類)。而這兩個例子有多種選項,我們把這一類問題叫做多分類問題,多分類問題又分為互斥多分類問題(年終獎:只能評一個等級)和非互斥多分類問題(文章類別:一篇文章可以同時歸屬於多個類別)。

2.分類的流程:

分類的一般流程是怎樣的呢?我們一起來看下圖:

幻燈片4.jpg

主要包括三個部分:

第一層是最左邊的x序列,代表我們觀察到的一些樣本資訊。中間這一層是分類器,就好像我們的大腦,它會根據已有經驗,把觀察到的資訊進行加工,得到一個特定類別,也就是我們的第三層y,代表預測的類別結果。

這裡最關鍵的部分就是訓練分類器。我們分類問題的解決,在於訓練出一個好的分類器。

這一部分就是我們對分類問題的簡單介紹。

二.Why(分類問題的應用場景)

從剛才的例子中,我們瞭解到,分類在我們的現實生活中很常見,分類是一項最有應用價值的技術之一,它的應用遍及了社會中的各個領域,下面這張圖描繪的是目前比較常見的有分類問題的場景。

幻燈片5.jpg

1.使用者畫像:

也就是對一個人進行類別抽象。例如,我們會根據一個人的行為去判斷這個人是男是女、是老人是小孩、以及他(她)的興趣偏好,通過各個維度的資訊來刻畫使用者。在構造使用者畫像的時候,其中非常多的地方用到了分類演算法,比如性別、年齡、興趣偏好等。

2.徵信評估:

在一些金融體系裡,我們會根據一個人的銀行卡記錄或信用卡還貸記錄等,去評估這個人的徵信度,看這個人是屬於高風險使用者還是低風險使用者。

3.推薦系統:

我們會預測一個人對某個東西“喜歡”或“不喜歡”,從而進行推薦。在預測時我們會根據這個人的情緒等因素,從而構造了我們現有的推薦體系。

4.趨勢預測:

像房價預測、商品出貨量預測、價格走勢預測等等。

5.影象分類:

影象是人工智慧一個非常重要的領域。比如給一張照片,我們需要一個分類器,看出照片裡到底是一隻貓還是一隻狗。再比如我們在做新聞推薦時,會把影象進行分類,看它是不是符合政策要求。

6.文字分類:

比如文章的類別劃分,有娛樂類、體育類、財經類等等。

除以上這些,還有很多其它的應用場景。

三.How(常用的分類演算法,如何訓練分類模型)

今天主要介紹五種常見的分類演算法:K近鄰、樸素貝葉斯、決策樹、Logistic迴歸、支援向量機。

幻燈片6.jpg

(1)K近鄰:

所謂的K近鄰,就是依據最鄰近的一個或者幾個樣本的類別,來決定待分類的樣本所屬的類別。它是最簡單的一個演算法模型,我們一起來看下圖:

幻燈片7.jpg

圖中有兩類樣本,一類是紅色的三角,另一類是藍色的方塊。問題是綠色的圓點到底屬於哪一類?根據K近鄰的方法,我們先看離綠色圓點最近的樣本,有兩個紅色三角樣本和一個藍色方塊樣本,根據K近鄰思想,我們可以推出綠色圓點樣本可以歸為紅色三角這一類。

其實在自然語言處理中,有一個非常典型的例子可以說明K近鄰。比如自然語言處理中最底層對word進行向量化處理時,也就是常說的“what embedding”,我們會把一個詞對映到一個高維的語義空間中,在這個語義空間裡,不同詞之間的距離能夠表示它們語義之間的相關性。在進行詞的分類時,我們可以根據它周圍最近幾個詞的分類,來確定當前我們想評估的這個詞的分類。

·優點:思想簡單,理論成熟;可用於非線性分類;準確度高,對資料沒有假設;對outlier不敏感。

·缺點:計算量大;樣本不平衡問題;記憶體消耗大;k值的選擇對分類效果有很大影響。

(2)樸素貝葉斯:

這是一個屬於概率統計的模型。下圖中給出的基本公式,是存在於條件概率的一個形式,它有非常強的一個假定,“給定目標值時屬性之間相互條件獨立”,只有在假設成立時,我們才能得到這個公式。這個公式計算出來,是一個概率。

幻燈片8.jpg

·優點:在資料較少的情況下仍然有效;可以處理多類別問題;適合增量式訓練。

·缺點:對於輸入資料的表達方式較為敏感;需要知道先驗概率,分類決策存在錯誤率;屬性之間的獨立性假設往往不成立(可先聚類)。

(3)決策樹:

決策樹是一個在工業界應用比較多的演算法模型,我們通過下面的示例圖來了解一下。

幻燈片9.jpg

上圖可以分為兩個部分:左側和右側。

左側實際上就是樣本的屬性(性別、年齡、職業...),右側是所構建的決策樹模型,根據所監測到的資訊以及所對應的類別所構造的決策樹。

我們構建決策樹要進行一個什麼樣的分類呢?從圖中可以知道,我們根據已有的樣本構建一個分類器,判斷一個人“是不是喜歡電腦遊戲?”

首先根據樣本屬性對空間進行一個劃分,在這裡,我們選擇的是“年齡小於15”這個條件,滿足就走左側子樹,不滿足就走右側子樹。左側子樹又根據“是男生嗎?”進一步劃分為兩個子樹。小男孩變成最後一層的葉子節點的正樣本,小女孩是這層的葉子節點的負樣本。根據這種方式,我們就可以構造出一棵決策樹。

·優點:計算複雜度不高,且重用性高;輸出結果易於理解;對中間值不敏感;可以處理不相關特徵資料;能很好地處理連續特徵。

·缺點:容易出現過擬合問題;對噪聲資料較為敏感。

(4)Logistic迴歸:

它是當前業界用的最廣的模型,無論谷歌、百度,還是騰訊、阿里,都有用到。它的原型是一個線性模型。

幻燈片10.jpg

預測樣本值是由W和X組成的,最左側這個公式,X就是我們觀測到的值,WT是我們權重的向量空間。根據這樣一個計算,我們就可以得到一個數值,是一個實數範圍內的值,從負無窮大到正無窮大,這樣一個值對我們的分類來說比較痛苦。

考慮到這個問題,有一個數學性質非常好的函式,也就是上圖左下方的轉化後的函式。我們可以把實數範圍內的輸入轉化成0-1範圍內的一個輸出,在這樣一個穩定的輸出範圍內,我們就能比較好地進行閾值的設定。

上圖右邊這個公式是用來訓練的損失函式。我們根據已有的樣本值,可以得到一個分類器,這個分類器可能並不是那麼準確,我們將樣本里面部分的屬性輸進去後,它會預測出一個值,我們拿這個值和訓練樣本里面真正對應的分類值進行比較,計算它們之間的差距,這個差距就是一個損失,我們通常採用的就是上圖這種形式。根據這個損失函式,我們可以得到當前分類器是否能夠反映真實的情況,根據這個差距,我們會採用一些優化方法,比如梯度下降等,去優化我們的W值。

我們這個模型從根本上說就是W的權重值,根據這個損失函式,計算出W的最優值,就構造出來了一個分類器。它從核心上來說是W和X的一個加權求和的形式,所以說它是一個線性的分類器。

·優點:計算代價不高,速度快,儲存低;易於理解和實現。

·缺點:容易欠擬合;分類精度可能不高;必須線性可分。

(5)支援向量機:

這個模型是有久遠歷史的模型,現在應用的並不是特別多,所以就簡單介紹一下。

幻燈片11.jpg

上圖展示了支援向量機的基本原理,它通常是找到一條線或一個面,使得不同類到這個面的距離是最大的,我們需要做的就是找到這條線或這個面。

·優點:泛化錯誤率低;計算開銷不大;可用於非線性分類;結果易解釋。

·缺點:對引數調節和核函式選擇敏感;原始分類器不加修改僅適用於處理二類問題。

以上五個就是常用的分類演算法。

下圖是一個分類演算法整合,方便大家在不同的場景下選擇合適的分類演算法:

幻燈片12.jpg

四.資料+算力+演算法=AI

百度的李彥巨集有提到過“資料+算力+演算法=AI”,得到了業界的廣泛認同,剛才我們介紹了演算法,那資料和算力怎麼看呢?

幻燈片13.jpg

演算法也就是我們剛才說到的一些演算法模型、分類模型等等。算力實際上就是我們能夠支撐演算法跑的一些效能支撐、平臺支撐、硬體支撐等等。資料是我們著重要說的,它排在第一位,最基礎,是決定一個問題解決能否成功的關鍵,資料的處理往往對最後的效果影響最大。

上圖是一些價效比比較高的資料處理方式,有樣本清洗、特徵變換、特徵選擇、特徵組合。

這四大部分就是關於分類演算法的介紹。下面我們一起來看看在最後的答疑過程中,都有些什麼問題呢?

1.大資料分析和AI的關係?

李老師:其實它們之間並沒有那麼明顯的界定,主要是側重點的區別。大資料分析側重試分析,也會用到AI的技術,或者常說的演算法模型。而AI不僅僅是分析,它有更多的領域。

2.如何判斷一個特徵是否有效?

李老師:比如在構造樣本的時候,先進行一些卡方檢驗,相關係數檢驗等。在選擇不同的樣本構造分類器之後,也可以評價它的一些auc的一個變化。不過需要注意的是,如果通過樣本量的大小帶來的auc的變化,通常是不可信的。所以需要在同樣的樣本量的情況下,而且是模型收斂的情況下,去評價不同。特徵的auc可以進行特徵的選擇,看特徵是否有效。

3.AI、資料分析、人工智慧在工作中。對於hadoop、spark之類的大資料技術,要求高嗎?需要掌握到什麼程度?

李老師:hadoop、spark是我們常用的進行機器學習的平臺。可以瞭解,不用那麼深,但基本的使用和大致的原理以及效能的調優都還是需要知道的。

以上就是本次線上直播的主要內容,相信你對分類演算法的概念、應用場景、模型都有了更深入的認識。想了解更多更詳細內容的小夥伴們,可以關注服務號:FMI飛馬網,點選選單欄飛馬直播,即可進行學習。

服務號.jpg


相關文章