《机器学习与数据科学(基于R的统计学习方法)》——1.2 机器学习的实际案例...
本節書摘來異步社區《機器學習與數據科學(基于R的統計學習方法)》一書中的第1章,第1.2節,作者:【美】Daniel D. Gutierrez(古鐵雷斯),更多章節內容可以訪問云棲社區“異步社區”公眾號查看。
1.2 機器學習的實際案例
在本節內容中,我將向大家展示一些使用機器學習解決日常問題的例子。在學習這些案例之前,查看項目最初的需求,回顧數據集和每一個特征變量,并搞清楚如何判斷解決方案是否成功,會讓你的閱讀事半功倍。閱讀完本書之后,你甚至可以嘗試自己的解決方案。為了做這些事情,我將特別推薦Kaggle(www.kaggle.com)的數據挑戰賽,它的金錢獎勵已經吸引了全世界成千上萬的數據科學家進行挑戰。
在這些數據科學挑戰中,參賽者為了尋找成功的解決方案,需要考慮以下問題。
1.為誰解決問題?解決什么問題?
2.現在這個問題是怎么解決的(如果已經有解決方案的話)?
3.針對這個問題,可用的數據集是什么?這些數據集的來源是哪里?
4.解決方案的結果如何展現(如商業智能儀表盤、在線應用中引入算法、一份靜態管理報告等等)?
5.這是什么類型的問題:為了降低收入流失(節流)還是增加收入(開源)?
在不同的比賽中,算法的評估方法也不盡相同。最常用的方法是將均方根誤差(RMSE)的值降到最小,這一數值用于評價測試集的預測結果是否準確。RMSE評價法會在第7章進行更深入的解釋。另一種常用的評估方法是AUC,即ROC曲線下的面積。
Kaggle挑戰賽的一些贊助商也會參與比賽,有些為了獲得產品或服務的新的發展方向,有些為了招聘比賽中的贏家。對于你,一個上升期的數據科學家來說,這些挑戰賽可以當做是磨煉技能的優秀訓練場。
1.2.1 預測回頭客挑戰賽
品牌商為了吸引新客戶購買商品,經常舉辦打折活動。在最初的激勵性購買后,重復購買商品的回頭客對品牌方來說是最有價值的。有足夠多的購物記錄之后,可以預測在一次促銷活動中,哪些顧客會再次購買商品。然而,在第一次購物之前就鑒別哪些顧客會成為忠誠的買主,這是一項更有挑戰性的工作。
預測回頭客挑戰賽(Acquire Valued Shoppers Challenge)需要挑戰者預測哪些顧客最可能成為回頭客。為了增強算法的準確性,參賽的數據科學家得到了參與促銷活動的大量顧客的完整購物記錄,包括購買產品的類型和價格。比賽組織者也為顧客提供了初次購物和再次購物的激勵。這個比賽的獎金是30000美元。
這個項目提供了超過30萬名匿名顧客的將近3億5千行交易記錄數據,解壓后達到22GB,大大超過了普通筆記本電腦的容量。在這一量級下,這個項目可以看做是“大數據”項目,所以,一個著名的供應商為參賽者提供了一個特別的工具。Revolution Analytics(Microsoft)公司為參賽者免費提供了亞馬遜云服務(AWS,Amazon Web Services)下的R集成開發環境。有了AWS下的Linux機器的助力,內存容量可達到64GB,參賽者可以使用R集成開發環境下的并行外部存儲算法。這個挑戰賽是現實生活中數據項目的大小指數型增長帶來的挑戰的一個體現。
在圖1-1的散點圖中,展示了客戶重復去商店的次數,x軸是商品的報價,數據點通過商場地理位置的不同來進行著色。
1.2.2 Netflix公司
第一個著名的數據科學比賽可能是Netflix公司贊助的。這個著名的Netflix獎力圖大幅度地提升預測的精確度:基于用戶的觀影偏好,預測他喜愛一部電影的程度。在2009年9月21日,Netflix公司給BellKor’s Pragmatic Chaos隊授予了100萬美元的特等獎。BellKor隊險勝The Ensemble隊,他們的獲勝作品在這個接近3年的比賽結束前的24分鐘才提交。
用來解決Netflix獎的機器學習算法以均方根誤差(RMSE,root mean square error)來衡量算法的好壞。均方根誤差除了是一個眾所周知的度量標準和數值之外,還有一個有用的性質:它可以放大極端誤差帶來的影響,無論是假陽性還是假陰性。這是理解任何推薦系統的重要性質。當然,簡單的預測精度指標并不能概括在做推薦時很多其他重要的方面。舉個例子,它不能預測推薦的順序。不過,該隊使用了特別的措施來降低均方根誤差來贏得比賽。最終,獲勝的解決方案將Netflix的推薦算法精確度提升了10%。
BellKor隊的Netflix獎的解決方案涉及了很多機器學習的高新技術:協同濾波、用時間動力學進行矩陣分解、受限的玻爾茲曼機(RBM,Restricted Boltzmann Machines)、一個基于梯度提升決策樹(GBDT,Gradient Boosted Decision Trees)的混合算法和一些用于特征工程的持久算法。這些方法超出了本書的討論范圍,但是通過看入圍方案,你能學到很多。你可以在www.netflixprize.com下載介紹前4名入圍方案的論文。
有趣的是,獲得Netflix獎的解決方案事實上沒有部署成功。因為在生產環境下,該算法的伸縮性不好。它無法及時處理龐大的Netflix數據集以獲得結果。但是Netflix獎的無功而返讓我們對一個可行的機器學習解決方案的組成要素有了更深刻的理解——雖然精確度顯然是很重要的,但它必須在生產中衡量才有意義。最后,公司發現為了提升的精度將這一算法部署到生產環境中并不值得。
1.2.3 算法交易挑戰賽
算法交易挑戰賽(Algorithmic Trading Challenge)是一個預測比賽,致力于發掘新模型來預測股票市場在大額交易后的短期反應。參賽者被要求使用經驗模型來預測在例如“流動性沖擊”之后的買入和賣出行為。通過提高模擬“回溯測試”的實時性,對市場彈性進行建模,旨在提高交易策略的評估方式。現在的方案都是基于市場沒有彈性的假設。這一挑戰賽的解決方案需要對模型中各種各樣的市場動態有明確的認識。
這個58天的挑戰賽,在2012年1月結束,吸引了111支隊伍爭奪10 000美元獎金。這個挑戰賽是資本市場合作研究中心贊助的,這是一個駐澳大利亞的集科研人員、高校師生和工業界合作伙伴于一體的集團。
參賽者為了尋找最優解使用了各種各樣的機器學習算法:線性回歸、K-最近鄰、支持向量機、隨機森林、k-均值和各種組合算法。參賽算法使用均方根誤差對預測的性能進行評估,計算在流動性沖擊之后,每次買入和賣出報價。獲勝的是在整個預測集中累計的均方根誤差最低的一個算法。獲獎者叫Ildefons Magrans,是一名來自西班牙的機器學習博士后研究員,擁有電子工程博士學位。他使用了R中的隨機森林來降低均方根誤差指標。
1.2.4 Heritage健康獎
這個機器學習難題可能是所有Kaggle挑戰賽的“祖師爺”,因為參賽的隊伍數目和獲勝的獎金數目都十分驚人。HPN(Heritage Provider Network)贊助了該項目,旨在創造一個能幫助降低醫療服務成本的算法——顯然這是全人類永恒的崇高追求。
根據美國醫療學會的最新調查顯示,在美國,每年有超過7 100萬人次住院。研究推斷,僅在2006年一年中,就有超過300億美元被花費在不必要的住院治療中。有更好的方式嗎?是否能夠提早判斷出高危患者,確保他們得到所需要的治療?HPN相信這是可行的,并贊助了Kaggle挑戰賽,以開發一個基于現有的患者數據來預測和減少不必要住院治療的機器學習算法。
參賽者被要求創造一個算法來預測患者在一年中會住院多久。一旦知道這個,醫療服務人員就能建立新的關懷計劃,在緊急事件出現之前就對病人實施醫療幫助,從而減少非必要的住院時間。這將會提高患者的健康水平,降低醫療服務費用。簡言之,獲勝方案將改變我們熟知的醫療保健服務,從救治病人轉變為真正意義上的保持人類健康。
從2011年4月到2013年4月,這個比賽持續了兩年。該比賽的第一名是一支名為POWERDOT的隊伍,他們被授予了500 000美元的獎勵。你可以在HPN的網站上找到這個比賽www.heritagehealthprize.com。在那里你可以下載到病人資料數據集以及一些具有重要意義的方案論文。最成功的解決方案涉及隨機森林的集合,外加對特征變量的創造性選擇。
除了上面介紹的Kaggle比賽的案例之外,下面還列舉了許多能用機器學習解決的其他領域的問題(依然有很多沒有提到的)。
1.市場
預測生涯價值(LTV,Predict Lifetime Value):預測高生涯價值的顧客特征。這將幫助進行客戶細分,識別推銷機會并為其他營銷活動提供支持。
客戶流失(churn):判斷流失的客戶特征(例如,客戶叛逃)。公司能夠根據這一特征開發調整在線算法,使他們能應對流失的客戶。
客戶細分(customer segmentation):通過讓客戶回答:因為什么原因會購買這件商品、因為什么原因不會購買這件商品等問題,使你能夠定性地區分不同的客戶群。
產品組合:產品優惠活動怎么組合能帶來最低的客戶流失率?例如,住宅和汽車的保險組合打折出售能有效降低客戶的流失。
交叉銷售(cross-selling)/提升銷售(up-selling)額和推薦算法:給出一個顧客的瀏覽歷史、購物歷史和其他行為特征,預測他在未來可能想購買(或者升級)什么產品。
折扣目標:給出一個折扣能在多大程度上激發顧客的購買欲望?
重復購買(reactivation)的可能性:對于一個已經購買了商品的顧客,他重復購買的可能性有多高?
谷歌關鍵字(Google Adwords)優化和廣告購買:決定不同的搜索關鍵字和廣告位的最佳購買價格。
2.銷售
主導優先級(lead prioritization):判斷一個銷售機會最后能成交的概率。
銷售預測(sales forecasting):提供銷售策略,并深入了解銷售預測的過程。
3.供應鏈
需求預測(demand forecasting):決定不同配送中心的最佳庫存量,精益庫存管理并防止缺貨的情況發生。
4.風險管理
欺詐(fraud)偵測:預測一個交易是否應該被鎖定,因為它涉嫌某種欺詐,例如,信用卡欺詐或是醫保欺詐。
應付賬款回收:根據借款人和借款的特征,預測債務能回收的可能性。
5.客戶支持
呼叫中心管理(call center management):呼叫中心的流量預測(例如,預測呼叫量以便合理配備接線人員)。
呼叫路由選擇:根據呼叫者的呼叫歷史、時刻、擁有的產品、客戶流失風險、客戶生涯價值等因素決定呼叫的等待時間。
6.人力資源
人才管理:建立客觀衡量員工績效的指標。
人才流失:預測哪些員工最可能辭職。
簡歷篩選:根據過去的面試和聘用的結果為申請人的簡歷進行打分。
培訓建議:根據雇員的績效評估數據為其安排特定的培訓計劃。
7.谷歌流感趨勢
到現在為止,我們已經看了不少機器學習的成功應用和潛在應用,讓我們簡要地回顧一個失敗的機器學習案例,并思考它為什么沒有成功。在2013年2月,谷歌流感趨勢(GFT,Google Flu Trends)上了頭條——但這不是谷歌高管或者這個流感跟蹤系統的創造者所希望的事。《自然》雜志報道,GFT預測的感染者數量是美國疾控預防中心(Centers for Disease Control and Prevention,CDC)預測的數量的兩倍多,而后者是基于全美實驗室的檢測報告來估算的。盡管GFT的創建目標是預測CDC的報告數據,這個令人大跌眼鏡的情況還是發生了。鑒于GFT經常被認為是大數據應用的典范,我們可以從這個錯誤中吸取什么教訓?
GFT試圖根據人們在谷歌中使用的搜索關鍵字,如“我咳嗽了”,來預測某個時間地點的流感患者的比例。在這項研究的早期,預測的精度很好,很多人對GFT的未來十分樂觀,因為使用谷歌的技術比CDC的方法劃算多了。當時問題還沒有顯現,人們搜索的關鍵字會隨著時間變化,此外,谷歌的搜索算法發生了改變,這些偏差影響了算法的表現并逐漸導致了預測精度跳水。
總結
以上是生活随笔為你收集整理的《机器学习与数据科学(基于R的统计学习方法)》——1.2 机器学习的实际案例...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云联合浙江大学举办首届数智服务创新挑
- 下一篇: 网易2018校园招聘编程题真题集合2相反