分類問題是生活中最常遇到的問題之一。普通人在作出選擇以前,可能會猶豫不決,但對機器而言,則是惟一必選的問題。咱們能夠經過算法生成模型去幫助咱們快速的作出選擇,並且保證偏差最小。充足的樣本,合適的算法能夠透過表象的類別,進而挖掘其內在的聯繫、區別,找出最佳的的屬性來區分每一個樣本的類別。因此說學習和應用機器學習的算法,要求咱們必須很是瞭解數據實例,每一個樣本數據有多少個特徵,哪些特徵是敏感的,特徵分佈如何。只有充分了解數據,才能選擇最合適的算法。html
單身王女士常常逛某相親網站,前先後後瀏覽了1000個男生,並給他們打標了,不喜歡、通常喜歡、很喜歡三個類別。該相親網站的工程師,決定開發一個算法推薦模型,給王女士依次推薦很喜歡,通常喜歡的男生。並能夠將這個算法模型應用到網站,吸引更多的單身青年註冊使用,並能夠找到本身喜歡的男/女友。算法
首先將離線數據導入到odps表中。咱們主要介紹使用散點圖和箱線圖來直觀的觀測分析數據。而後根據上面的具體案例來學會如何看,理解這個圖形。數據選自《機器學習實戰》一書。機器學習
詳情svg
1,反對角線上的三個方形,在方形左上角代表三個特徵的名稱。並且這個三個圖像與其餘圖形不相同,橫縱座標都是一個特徵,則對角直線就表明該特徵在不一樣類別下分佈密度。好比Play這個方形,咱們發現黃色部分集中在下方,藍色部分主要分佈在中間,綠色主要分佈在中上方。學習
2,除了反對角線上的三個方形,其餘方形則是反映了兩兩特徵之間的分佈狀況。好比第一排第一列(1,1),橫座標爲play,縱座標爲mileage。從這個方形上能夠直觀觀測出不一樣顏色的散點集中分佈在不一樣區域。測試
3,關於反對角線對稱的兩個方形,則是兩個特徵交換縱橫座標的散點圖。網站
4,在整個散點圖的下方,能夠勾選你但願對比的特徵。人工智能
1,ice_cream特徵對分類不敏感。從圖(1,2),(2,2)咱們能夠直觀看出,ice_cream在全部類別中幾乎都是均勻分佈。spa
2,mileage,play 特徵能夠將類別明顯的劃分紅三個區域。說明這兩個特徵絕大程度上決定了類別的劃分。htm
在任意個方形內,拖拽一個方形區域,能夠選出知足這些特徵的樣本,更加直觀的觀測,這些樣本在不一樣方形內的分佈。如上圖所示,咱們選中了圖(3,3)內一個方形區域,能夠看出這些樣本在ice_cream特徵下是均勻分佈,在其餘兩個特徵下,均可以經過一個超平面劃分。
1,箱線圖組件分兩個tab分別顯示箱線圖和擾動點圖,在左上角均可以選擇觀測不一樣的特徵。右側顯示該特徵下,每一個類別的分佈狀況。
2,箱線圖介紹,每一個類別的箱線圖,從上到下一共有5條橫線。
3,內限不是樣本的最上限,外限也是不最下限,超過內限和外限的樣本爲異常樣本。
4,結合擾動點圖,咱們能夠發現觀測到異常樣本的大體數量多少。
1,經過上面的圖,咱們能夠關注paly屬性在不一樣類別下的分佈。對比ice_cream特徵
咱們發現paly特徵的屬性值在不一樣類別下有明顯有傾向性分佈。而ice_cream在不一樣類別下分佈幾乎是同樣的,這也驗證了咱們經過散點圖得出的結論。
如今回到咱們一開始遇到的問題。如何用算法幫助工程師爲王女士推薦其餘她能夠喜歡的男生呢。其實這是一個簡單的問題,就是把全部的男生分爲三類,不喜歡,通常喜歡,很喜歡。對於一個沒有標籤的男生(x),咱們分出其最可能屬於哪一個類別的機率(p)。
在這種狀況下,咱們就選出這個男生屬於類別A。如何計算這個機率,不一樣算法有不一樣的計算方法。好比K緊鄰算法,選出離這個樣本點最近的K個樣本,經過屬於A的樣本個數除以K就能夠得出屬於A的機率。隨機森林,則是經過投票的方式,票數多的類別就是樣本最終劃分的類別。
經過前面數據分析,咱們知道了數據的一些特性。
1,mileage數值比其餘兩個特徵大不少,在計算特徵間的距離時,所在權重就比較大。全部選擇K近鄰能夠會形成較大偏差。
2,AdaBoost算法,隨機森林以及邏輯迴歸算法均可以處理數值型數據,因此這三種算法咱們都會嘗試,並評估者三個算法的準確率。
咱們可使用統計分析-全表統計觀測數據是否有空值,以及一些方差等的統計信息。在本案例中我僅作缺失值檢測。
咱們分別選擇了三個分類算法,隨機森林、AdaBoost、K近鄰算法。分別作了訓練,預測和算法評估。在下面咱們會經過測試評估來選擇合適的方案。
經過上面的混淆矩陣,能夠很直觀的看出,在算法準確度層面,AdaBoost>隨機森林>K近鄰。也驗證了咱們前面經過數據分析得出的結論,在某個特徵的值過大時,K近鄰算法容易出現較大的偏差。固然咱們能夠經過歸一化來處理這些特徵值,只是這樣作在服務測試時,輸入的數據就必須是歸一化的值而不是真實數據,在實際使用中會有一些麻煩。
模型的部署和測試參見【玩轉人工智能—基於PAI的機器學習實戰系列二】商品價格預測
AdaBoost之因此有如此好的效果,其功勞要歸功於集成算法的提出和應用。集成算法經過組合多個分類器的結果,並賦予不一樣的權重值,而得到了比任一個分類器都要好的結果。固然這也作也有必定風險,好比說有可能加深了分類器的過擬合問題。
在分類問題上,咱們最常遇到的問題就樣本分佈不均衡的問題。就是說正樣本多與負樣本,某個類別的樣本多與其餘類別的樣本。這樣的數據集在大部分分類器上都會存在問題,一般狀況下,咱們能夠經過欠抽樣或者過抽樣來解決這類問題,可是在實際操做中,咱們須要注意下,如何才能在儘量不影響實際真實性的狀況下作到很好的抽樣。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。