15分鐘開啟你的機器學習之旅——隨機森林篇
新智元編譯
機器學習模型可用於提高效率,識別風險或發現新的機會,並在許多不同領域得到應用。它們可以預測一個確定的值(e.g.下周的銷售額),或預測分組,例如在風險投資組合中,預測客戶是高風險,中等風險還是低風險。
值得注意的是,機器學習不是在所有問題上都工作得非常好。如果模式是新的,模型以前沒有見過很多次,或者沒有足夠的數據,機器學習模型的表現就不會很好。此外,機器學習雖然可以支持各種用例,但仍然需要人類的驗證、感覺檢查和專門領域知識。
話雖如此,我們可以通過解決上述用例之一來看看機器學習可以實現哪些目標。讓我們通過機器學習技術的一個基本應用,看看將一組客戶數據轉變為風險水平評估這個預測涉及了哪些過程。
訓練模型
我們可以使用分類模型——預測每個項分別屬於哪個類或組。可以很好地實現這個任務的一類演算法是隨機森林。這種類型的模型是基於決策樹,即一種使用不同的變數(有關客戶的信息)來分割一組對象(在這個用例中是客戶),並繼續分割,直到每個對象都被放置到特定的類別。隨機森林是這樣的決策樹的集合。使用多個樹可以降低過擬合(模型對於第一組特定的訓練數據集工作得非常好,但對後續數據集工作不好)的風險。
創造像這樣複雜的模型似乎令人望而生畏。但好消息是,許多語言都有預構建這種類型的模型的庫。在這個用例下,我使用的是python庫scikit-learn(以及用於管理數據集的pandas和numpy庫)。
在繼續之前,請確保你已經安裝了Python(我使用的是Python2),並且在上面提到的3個包裝中載入。這個可以在終端做,用pip安裝pandas(numpy和sklearn也是一樣)。
下面的示例都使用 Jupyter Notebook,這是數據科學家很常用的工具。相同的代碼段直接在Python控制台或其他任何Python IDE中工作。
導入的語句使庫對當前的段可用。然後,繼續將數據從csv文件載入到dataframe(這是pandas使用的特定格式的數據結構),然後添加標題名字。
現在,數據保存在 pandas 的 dataframe(df),如下圖所示,選擇前5行作為樣本。
為了讓模型進行預測,需要「訓練」。也就是說,模型被顯示一組已經具有相關分類的數據。從這些數據,模型可以了解有關數據主體(在這個case是客戶)本身的信息與它的標籤(高風險、中風險、低風險)之間的關係。
在隨機森林模型的情況下,是通過數據集特徵來對數據進行劃分或分割,從而找到相關性。例如,根據「使用的設備數量」來進行劃分,可以把使用一個設備的和使用兩個設備的分成兩組(根據數據集的基數,可能有兩個以上的組)。進一步的分類要使用不同的信息,直到可以將所有記錄劃分到最終的類別(在這個case是風險級別)。
準備訓練集和測試集
模型訓練好之後,使用模型未遇見過的其他數據對其進行測試。新的數據已經沒有原始標籤,要求模型自己去預測值。
為了實現這一點,數據集需要分成兩部分。一部分用於訓練,另一部分用於測試。下面的代碼段為每個觀察值隨機分配1到100之間的值,並將分配到低於70的隨機數的那些行分到訓練集,其餘的作為測試集。因此,大約70%的數據用於訓練。在每個數據集print一個值,可以顯示這是有效的。
現在,應該為這個模型準備好訓練集。創建一個變數來保存對特徵(有助於確定最終類別的信息)的引用和另一個變數來保存類別本身。
首先,為類別創建變數。下面示例中的變數 train_labels 保存了數據集中的risk_label 列的內容。這些是風險級別的「高」,「中」或「低」,但是使用「因數分解」函數轉變為數字(0, 1, 2)。
接下來,特徵的名稱被捕捉到一個單獨的變數中,即下面示例的columns_for_features。同時,隨機森林分類器被創建並存儲在名為classifier 的變數中。
現在,訓練模型的一切都準備好了。分類器有一個函數 fit,通過訓練數據集(train_df)被告知要注意的行,以及訓練標籤,或已經可用的類別。
所以現在模型可以訓練了。它將會確定「features」與「labels」之間的關係,並且只有當features可用時才能確定數據未知的label。
測試模型
使用測試數據集,可以測試模型的執行性能。分類器有一個叫做predict的函數,它從前面準備的test_df數據集傳遞特徵數據。它的輸出是一組整數(0, 1, 2),分別表示標籤("high","med","low"),即模型預測出的類別。
這很令人興奮,但意義不是很大。幾個快速步驟可以將值解碼迴文本標籤,然後將模型得出的類別與測試數據集中的原始標籤進行比較。
下面的表格顯示了每個真實的組與預測組的比較。這裡顯示的是,對於高風險的10個觀察值,該模型預測其中9個是高風險,1個是中等風險。對於18個的低風險的觀察值,該模型的預測完全一致。對於最後10個中等風險的觀察值,模型的預測有7項正確,另外3項被錯誤地預測為高風險。
這是一個不錯的結果。幾個小步驟,我們就能夠創建一個模型,訓練它識別數據中的模式,並基於這些訓練,模型能夠預測新數據的類別。這意味著,你的公司可能不再需要人去人工審查所有的客戶資料,你可以簡化過程並只關注高風險客戶。
在這個case中,分類器預測的是風險水平。同樣的技術也可以應用於預測客戶流失,機器故障以及其他各種業務問題。
在實際應用中,這個過程要花更多的時間,但這是理解機器學習的基本原理和關鍵步驟的很好的第一步。
此外,使用預先準備好的數據集有很大好處。在大多數情況下,要做大量的工作將數據變為易於建模的形式之後,機器學習的榮耀才會顯現。這些工作包括數據清洗,特徵選擇,轉換和格式化等。
原文:https://www.theregister.co.uk/2017/06/21/15_minutes_in_machine_learning/
點擊閱讀原文查看新智元招聘信息
※「讓神經網路能夠「通感」」MIT 和谷歌研究連接文字、聲音和視頻
※智能音箱2017大爆發,6大數據看懂亞馬遜與谷歌之爭
※MIT最新研究:新演算法通過學習摺紙模型,生成任意3D結構
TAG:新智元 |
※手機中的相機!華為P20系列開啟預售:999元訂金
※華為「嚇人技術」7.30開啟升級:老機型也有機會
※招展已開啟!5月9-11日相約第五屆中國機器人峰會,讓AI與機器人更融合
※華為「嚇人技術」7.30開啟升級:榮耀老機型也有機會!
※開啟「分享」之旅
※伊萬卡抵達仁川機場開啟訪韓之旅
※尼康影像奇妙之旅開啟 第20屆上海P&I開幕
※小米黑鯊遊戲手機開啟預約 生為競技
※亞洲形體6.20期開班典禮—相遇盛夏,開啟學習之旅
※為你開啟2018全球藝術之旅
※安卓手機開啟這個設置,手機瞬間流暢23%
※開啟科學之門的天才——哈雷
※波音787帶您開啟夢幻之旅
※沙特F15SA戰機開啟「野獸模式」超級掛載 蘇35怒懟打臉
※騎士落後10分,詹姆斯開啟單挑模式,120秒連拿8分單節爆砍14分
※雷軍要放大招,黑鯊遊戲手機開啟預約,驍龍845+8GB發燒友沸騰
※支持AR技術,小米手機照片印表機開啟眾籌
※走進AI手機2.0:榮耀開啟乘風破浪之路
※亞洲最大3D列印展開幕 增材製造開啟個性化機遇
※普京復仇計劃開啟:1萬大軍、40架戰機輪番轟炸!