機器學習基礎-分類演算法實例
最近團隊里有一些新同學,內部分享時介紹了一些關於機器學習的內容,主要介紹了一些關於tensorflow的內容,發現效果不是很好。缺乏相關基礎的同學,一開始接觸cnn,rnn,lstm等東西很容易從入門到放棄,所以這裡整理一篇我們常見分類問題實例的總結,幫助更好的入門。
機器學習基本知識
本文不再對基礎的機器學習相關做詳細介紹,這裡只是再羅列一下幾個經常被提及的概念
人工智慧,機器學習,深度學習的關係
三者是同心圓的關係,其中深度學習是最近幾年非常火的領域,如下:
機器學習常見分類
根據訓練方法的不同,可以分為如下幾類,常見的是監督和非監督模型:
監督學習,訓練數據有明確的標識或結果。
非監督學習,數據並不被特別標識,學習模型是為了推斷出數據的一些內在結構。
半監督學習,輸入數據部分被標識,部分沒有被標識。
強化學習,輸入數據作為對模型的反饋,數據直接反饋到模型。
機器學習的常見方向
機器學習要解決的問題,主要有以下幾個方向,其中回歸和分類的區別在於,回歸的結果是連續的,分類的是離散的。
分類,比如判斷退款成立與否
回歸,比如房價,股價預測
聚類,比如用戶畫像
實際案例
本文就以一個分類問題(titanic)為例來作為helloworld,說明相關的應用。
案例描述
本文選取從kaggle下載的titanic的數據,數據主要包含titanic乘客的各維度信息,以及是否倖存(Survived).具體的欄位如下:
方案選擇
本例子屬於典型的分類問題,常見的方法有logistic回歸,SVM,GBDT,random forest等。在這裡選用隨機森林方法。
隨機森林:和決策樹有點像,隨機選取特徵值組成子集,m個子集對應m個決策樹。將新數據投入到這 M 個樹中,得到 M 個分類結果,計數看預測成哪一類的數目最多,就將此類別作為最後的預測結果。
實現過程
效果展示:這裡介紹用阿里雲的pai平台來實現,無需編碼,直接配置就可。總體的圖形如下: 這裡對比了2種演算法,邏輯回歸和隨機森林,
邏輯回歸的準確率在81%左右。
隨機森林的準確率在88%左右,效果較好。
第一步:導入數據 我做實驗的時候用padas做了數據的預處理,把測試數據和訓練數據合成了一個cvs文件(可以直接在pai裡面操作)。使用讀數據表組件後,表裡的欄位如下:
第二步:sql腳本對數據進行處理
第三步對數據進行歸一化,使各指標處於同一數量級
第四步數據拆分80%數據用於訓練,20%用於測試
第五步使用隨機森林演算法進行預測,配置如下(邏輯回歸用來做對比,這裡不細說):
第六,七步對結果預測&評估。
第八步發布模型後,就可以用api調用進行線上的預測了。
總結:
分類演算法的應用場景很多,依賴pai平台可以很快的搭建出常見的模型。
對於分類演算法而言,如何找到更多的有意義的數據特徵值,對於提升準確性有較大的意義。
對各演算法的效果不明確的情況下,可以使用pai對各種演算法採取對比測試,看哪種演算法更符合業務的需求。
更多測試技術文章,微信掃以下二維碼,歡迎關注
測碼奔跑-讓測試技術奔跑起來
※綜述論文:機器學習中的模型評價、模型選擇與演算法選擇
※區塊鏈+機器學習,能突破數據的壟斷,做可控的「摩洛克」嗎?
TAG:機器學習 |