當前位置:
首頁 > 新聞 > 15分鐘開啟你的機器學習之旅——隨機森林篇

15分鐘開啟你的機器學習之旅——隨機森林篇

15分鐘開啟你的機器學習之旅——隨機森林篇

新智元編譯

15分鐘開啟你的機器學習之旅——隨機森林篇

機器學習模型可用於提高效率,識別風險或發現新的機會,並在許多不同領域得到應用。它們可以預測一個確定的值(e.g.下周的銷售額),或預測分組,例如在風險投資組合中,預測客戶是高風險,中等風險還是低風險。

值得注意的是,機器學習不是在所有問題上都工作得非常好。如果模式是新的,模型以前沒有見過很多次,或者沒有足夠的數據,機器學習模型的表現就不會很好。此外,機器學習雖然可以支持各種用例,但仍然需要人類的驗證、感覺檢查和專門領域知識。

話雖如此,我們可以通過解決上述用例之一來看看機器學習可以實現哪些目標。讓我們通過機器學習技術的一個基本應用,看看將一組客戶數據轉變為風險水平評估這個預測涉及了哪些過程。

訓練模型

我們可以使用分類模型——預測每個項分別屬於哪個類或組。可以很好地實現這個任務的一類演算法是隨機森林。這種類型的模型是基於決策樹,即一種使用不同的變數(有關客戶的信息)來分割一組對象(在這個用例中是客戶),並繼續分割,直到每個對象都被放置到特定的類別。隨機森林是這樣的決策樹的集合。使用多個樹可以降低過擬合(模型對於第一組特定的訓練數據集工作得非常好,但對後續數據集工作不好)的風險。

創造像這樣複雜的模型似乎令人望而生畏。但好消息是,許多語言都有預構建這種類型的模型的庫。在這個用例下,我使用的是python庫scikit-learn(以及用於管理數據集的pandas和numpy庫)。

在繼續之前,請確保你已經安裝了Python(我使用的是Python2),並且在上面提到的3個包裝中載入。這個可以在終端做,用pip安裝pandas(numpy和sklearn也是一樣)。

下面的示例都使用 Jupyter Notebook,這是數據科學家很常用的工具。相同的代碼段直接在Python控制台或其他任何Python IDE中工作。

導入的語句使庫對當前的段可用。然後,繼續將數據從csv文件載入到dataframe(這是pandas使用的特定格式的數據結構),然後添加標題名字。

15分鐘開啟你的機器學習之旅——隨機森林篇

現在,數據保存在 pandas 的 dataframe(df),如下圖所示,選擇前5行作為樣本。

15分鐘開啟你的機器學習之旅——隨機森林篇

為了讓模型進行預測,需要「訓練」。也就是說,模型被顯示一組已經具有相關分類的數據。從這些數據,模型可以了解有關數據主體(在這個case是客戶)本身的信息與它的標籤(高風險、中風險、低風險)之間的關係。

在隨機森林模型的情況下,是通過數據集特徵來對數據進行劃分或分割,從而找到相關性。例如,根據「使用的設備數量」來進行劃分,可以把使用一個設備的和使用兩個設備的分成兩組(根據數據集的基數,可能有兩個以上的組)。進一步的分類要使用不同的信息,直到可以將所有記錄劃分到最終的類別(在這個case是風險級別)。

準備訓練集和測試集

模型訓練好之後,使用模型未遇見過的其他數據對其進行測試。新的數據已經沒有原始標籤,要求模型自己去預測值。

為了實現這一點,數據集需要分成兩部分。一部分用於訓練,另一部分用於測試。下面的代碼段為每個觀察值隨機分配1到100之間的值,並將分配到低於70的隨機數的那些行分到訓練集,其餘的作為測試集。因此,大約70%的數據用於訓練。在每個數據集print一個值,可以顯示這是有效的。

15分鐘開啟你的機器學習之旅——隨機森林篇

現在,應該為這個模型準備好訓練集。創建一個變數來保存對特徵(有助於確定最終類別的信息)的引用和另一個變數來保存類別本身。

首先,為類別創建變數。下面示例中的變數 train_labels 保存了數據集中的risk_label 列的內容。這些是風險級別的「高」,「中」或「低」,但是使用「因數分解」函數轉變為數字(0, 1, 2)。

15分鐘開啟你的機器學習之旅——隨機森林篇

接下來,特徵的名稱被捕捉到一個單獨的變數中,即下面示例的columns_for_features。同時,隨機森林分類器被創建並存儲在名為classifier 的變數中。

現在,訓練模型的一切都準備好了。分類器有一個函數 fit,通過訓練數據集(train_df)被告知要注意的行,以及訓練標籤,或已經可用的類別。

15分鐘開啟你的機器學習之旅——隨機森林篇

所以現在模型可以訓練了。它將會確定「features」與「labels」之間的關係,並且只有當features可用時才能確定數據未知的label。

測試模型

使用測試數據集,可以測試模型的執行性能。分類器有一個叫做predict的函數,它從前面準備的test_df數據集傳遞特徵數據。它的輸出是一組整數(0, 1, 2),分別表示標籤("high","med","low"),即模型預測出的類別。

15分鐘開啟你的機器學習之旅——隨機森林篇

這很令人興奮,但意義不是很大。幾個快速步驟可以將值解碼迴文本標籤,然後將模型得出的類別與測試數據集中的原始標籤進行比較。

15分鐘開啟你的機器學習之旅——隨機森林篇

下面的表格顯示了每個真實的組與預測組的比較。這裡顯示的是,對於高風險的10個觀察值,該模型預測其中9個是高風險,1個是中等風險。對於18個的低風險的觀察值,該模型的預測完全一致。對於最後10個中等風險的觀察值,模型的預測有7項正確,另外3項被錯誤地預測為高風險。

15分鐘開啟你的機器學習之旅——隨機森林篇

這是一個不錯的結果。幾個小步驟,我們就能夠創建一個模型,訓練它識別數據中的模式,並基於這些訓練,模型能夠預測新數據的類別。這意味著,你的公司可能不再需要人去人工審查所有的客戶資料,你可以簡化過程並只關注高風險客戶。

在這個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架戰機輪番轟炸!