什么是机器学习?有哪些分类?怎样上手开发?终于有人讲明白了
導讀:本文首先介紹何謂機器學習,以及與機器學習相關的基本概念,這是學習和理解機器學習的基礎。按照學習方式的不同,機器學習可以分為不同類型,如監督學習、無監督學習、強化學習等,本文會詳細介紹它們各自的特點和使用場景。
其次,借助本文對機器學習應用開發步驟的詳細說明,讀者能夠清晰地了解機器學習應用的開發流程。
最后,大家可以回顧一下我們此前的一篇文章《騰訊阿里都在用!機器學習最熱研究方向入門,附學習路線圖》,了解一下目前機器學習領域最熱門的研究方向之一——集成學習,以及XGBoost如何被提出并在業界廣泛應用。
作者:何龍
來源:大數據DT(ID:hzdashuju)
01 何謂機器學習
近幾年,機器學習可謂是業界最熱門的領域之一,AlphaGo以4 : 1的比分擊敗李世石,人工智能和機器學習一夜火遍世界各地。機器學習離我們并不遙遠,甚至可以說已經滲透到我們生活的方方面面。例如:
網上購物時,電商網站根據用戶偏好為用戶推薦商品;
Siri手機語音助手可查詢天氣、播放音樂;
打車時,打車軟件幫我們預估行程時間、規劃行程路線;
點外賣時,外賣App將訂單分配給附近空閑的騎手等。
這些無一不是通過機器學習技術來實現的。
機器學習領域知名學者Tom M.Mitchell曾給機器學習做如下定義:
如果計算機程序針對某類任務T的性能(用P來衡量)能通過經驗E來自我改善,則認為關于T和P,程序對E進行了學習。
通俗來講,機器學習是計算機針對某一任務,從經驗中學習,并且能越做越好的過程。一般情況下,“經驗”都是以數據的方式存在的,計算機程序從這些數據中學習。學習的關鍵是模型算法,它可以學習已有的經驗數據,用以預測未知數據。
在很多領域,僅僅靠人很難從諸多信息中將有效信息提取出來的。例如,我們想知道一個人是否會去購買某個電影的電影票。想要知道這個答案,最直接、有效的方法就是去問他本人,因為他本人的回答是與結果最接近的,也就是相關性最強的一個特征。
假如我們并不認識這個人,或并沒有條件直接與他本人溝通,那么還有另外一種思路—問他的朋友,他的朋友可能對他比較了解,知道他喜歡哪種類型的影片。但往往這個條件也不一定能達到,因為對于這樣的需求場景,更多的可能是影院想知道他的顧客會不會購買某個電影的電影票。
而影院所擁有的顧客信息通常是用戶的性別、年齡、以往觀影記錄、消費記錄等基本信息。對于普通人來說,通過這些原始數據預測該顧客未來的行為,很難給出一個比較準確的答案。此時便需要機器學習把無序的數據轉換成有用的信息,從而解決相關問題。
機器學習橫跨了多個學科,包括計算機科學、統計學等,而從事機器學習的人不僅需要扎實的計算機知識和數學知識,還需要對機器學習應用場景下的業務知識非常了解。因此,很多人覺得機器學習門檻很高,還沒有開始學習就望而卻步了。
其實機器學習的入門并沒有想象中那么難,當然也不意味著機器學習的技術含量低。機器學習的特點是:入門門檻低,學習曲線陡。很多人入門之后容易陷入一種瓶頸狀態,很難有更高的突破,所以學習機器學習一定要有耐心和毅力。
學習機器學習所需的基礎知識有以下幾類:
數學:線性代數(矩陣變換)、高等數學;
概率分布、回歸分析等統計學基礎知識;
Python、NumPy、Pandas等數據處理工具;
Hadoop、Spark等分布式計算平臺。
讀者不要被上面所羅列的知識嚇到,因為即使你不具備這些知識,也可以學習機器學習,在學習的過程中隨用隨查即可。當然,如果已經事先具備了這些知識,那你學習起來一定事半功倍。下面介紹機器學習相關的基本概念。
02 機器學習常用基本概念
假如我們有一批房屋特征數據,其中包括臥室數量、房屋面積等信息,如表1-1所示。
其中,每一條記錄稱為樣本,樣本的集合稱為一個數據集(data set)。類似臥室數量、房屋面積等列(不包括房價列)稱為特征(feature)。房價是比較特殊的一列,它是我們需要預測的目標列。在已知的數據集中,目標列稱為標簽(label),它可以在模型學習過程中進行指導。
并非所有的數據集均包含標簽,是否包含標簽決定了采用何種類型的機器學習方法(后續會對不同類型的機器學習方法進行介紹)。數據集一般可以分為訓練集、驗證集和測試集,三者是相互獨立的。
訓練集用于訓練和確定模型參數;
驗證集用于模型選擇,幫助選出最好的模型;
測試集用于評估模型,測試模型用于新樣本的能力(即泛化能力)。
如果機器學習任務的預測目標值是離散值,則稱此類任務為分類任務。比如比較常見的垃圾郵件分類系統,類別只有垃圾郵件、非垃圾郵件兩類,這是一個分類任務,并且是一個二分類任務(類別只有2種)。
若類別有多種,則稱這類任務為多分類任務。例如預測電影所屬類型,其包括動作片、愛情片、喜劇片等多個類別。如果預測值是連續值,則稱為回歸任務,如表1-1中的預測房價。
另外,還可以對數據進行聚類,即找到數據的內在結構,發現其中隱藏的規律。例如我們以前看過的電影,即使沒有人告訴我們每部電影的類型,我們也可以自己歸納出哪些影片屬于喜劇片、哪些屬于動作片。
03 機器學習類型
按照學習方式的不同,可以將機器學習劃分為幾種類型:監督學習(supervised learning)、無監督學習(unsupervised learing)、半監督學習(semi-supervised learning)、強化學習(rein-forcement learning)。
1. 監督學習
顧名思義,即有“監督”的學習,這里的“監督”指的是輸入的數據樣本均包含一個明確的標簽或輸出結果(label),如前述購票預測系統中的“購票”與“未購票”,即監督學習知道需要預測的目標是什么。
監督學習如同有一個監督員,監督員知道每個輸入值對應的輸出值是什么,在模型學習的過程中,監督員會時刻進行正確的指導。
監督學習輸入的數據稱為訓練數據。訓練數據中的每個樣本都由一個輸入對象(特征)和一個期望的輸出值(目標值)組成,監督學習的主要任務是尋找輸入值與輸出值之間的規律,例如預測房屋價格系統,輸入值是房屋的面積、房間數量等,輸出值是房屋價格。
監督學習通過當前數據找出房屋面積、房間數量等輸入值與房屋價格之間的內在規律,從而根據新的房屋樣本的輸入值預測房屋價格。
2. 無監督學習
與監督學習相反,即無監督學習輸入的數據樣本不包含標簽,只能在輸入數據中找到其內在結構,發現數據中的隱藏模式。在實際應用中,并非所有的數據都是可標注的,有可能因為各種原因無法實現人工標注或標注成本太高,此時便可采用無監督學習。無監督學習最典型的例子是聚類。
3. 半監督學習
半監督學習是一種介于監督學習和無監督學習之間的學習方式。半監督學習是訓練數據中有少部分樣本是被標記的,其他大部分樣本并未被標記。半監督學習可以用來進行預測,模型需要先學習數據的內在結構,以便得到更好的預測效果。
4. 強化學習
強化學習是智能體(agent)采取不同的動作(action),通過與環境的交互不斷獲得獎勵指導,從而最終獲得最大的獎勵。
監督學習中數據標記的標簽用于檢驗模型的對錯,并不足以在交互的環境中學習。而在強化學習下,交互數據可以直接反饋到模型,模型可以根據需要立即做出調整。強化學習不同于無監督學習,因為無監督學習旨在學習未標記數據間的內在結構,而強化學習的目標是最大化獎勵。
04 機器學習應用開發步驟
開發機器學習應用時,讀者可以嘗試不同的模型算法,采用不同的方法對數據進行處理,這個過程十分靈活,但也并非無章可循。本節會對機器學習應用開發中的經典步驟進行逐一介紹。
1. 定義問題
在開發機器學習應用之前,先要明確需要解決的是什么問題。在實際應用中,很多時候我們得到的并非是一個明確的機器學習任務,而只是一個需要解決的問題。
首先要將實際問題轉化為機器學習問題,例如解決公司員工不斷收到垃圾郵件的問題,可以先對郵件進行分類,通過機器學習算法將垃圾郵件識別出來,然后對其進行過濾。由此,我們將一個過濾垃圾郵件的現實問題轉化為了機器學習的二分類問題(判斷是否是垃圾郵件)。
2. 數據采集
數據對于機器學習是至關重要的,數據采集是機器學習應用開發的基礎。數據采集有很多種方法,最簡單的就是人工收集數據,例如預測房屋價格,可以從和房屋相關的網站上獲取數據、提取特征并進行標記(如果需要)。人工收集數據耗時較長且非常容易出錯,所以通常是其他方法都無法實現時才會采用。
除人工收集數據外,還可以通過網絡爬蟲從相關網站收集數據,從傳感器收集實測數據(如壓力傳感器的壓力數據),從某些API獲取數據(如交易所的交易數據),從App或Web端收集數據等。對于某些領域,也可直接采用業界的公開數據集,從而節省時間和精力。
3. 數據清洗
通過數據采集得到的原始數據可能并不規范,需對數據進行清洗才能滿足使用需求。例如,去掉數據集中的重復數據、噪聲數據,修正錯誤數據等,最后將數據轉換為需要的格式,以方便后續處理。
4. 特征選擇與處理
特征選擇是在原始特征中選出對模型有用的特征,去除數據集中與模型預測無太大關系的特征。通過分析數據,可以人工選擇貢獻較大的特征,也可以采用類似PCA等算法進行選擇。此外,還要對特征進行相應處理,如對數值型特征進行標準化,對類別型特征進行one-hot編碼等。
5. 訓練模型
特征數據準備完成后,即可根據具體任務選擇合適的模型并進行訓練。對于監督學習,一般會將數據集分為訓練集和測試集,通過訓練集訓練模型參數,然后通過測試集測試模型精度。而無監督學習則不需對算法進行訓練,而只需通過算法發現數據的內在結構,發現其中的隱藏模式即可。
6. 模型評估與調優
不管是監督學習還是無監督學習,模型訓練完畢后都需要對模型結果進行評估。監督學習可采用測試集數據對模型算法精度進行評估。無監督學習也需采用相應的評估方法檢驗模型的準確性。若模型不滿足要求,則需要對模型進行調整、訓練、再評估,直至模型達到標準。
7. 模型使用
調優之后得到的最優模型一般會以文件的形式保存起來,以待應用時可直接加載使用。機器學習應用加載模型文件,將新樣本的特征數據輸入模型,由模型進行預測,得到最終預測結果。
關于作者:何龍,現就職于滴滴出行,XGBoost開源社區貢獻者,專注于人工智能和機器學習領域,從底層算法原理到上層應用實踐都有廣泛的興趣和研究。較早接觸XGBoost,熟悉XGBoost應用開發,深入閱讀源碼,具有豐富的項目開發經驗。
本文摘編自《深入理解XGBoost:高效機器學習算法與進階》,經出版方授權發布。
延伸閱讀《深入理解XGBoost》
點擊上方鏈接了解及購買
轉載請聯系微信:DoctorData
推薦語:知名互聯網公司資深工程師撰寫,打通高效機器學習脈絡,掌握競賽神器XGBoost。以機器學習基礎知識做鋪墊,深入剖析XGBoost原理、分布式實現、模型優化、深度應用等。
有話要說????
Q:?你開發了哪些機器學習應用?
歡迎留言與大家分享
猜你想看????
美國又禁華為?7本書,助力網絡安全產業國產化、自主可控
手把手教你用Python畫直方圖:其實跟柱狀圖完全不同
無處不在的流計算到底是什么?終于有人講明白了(附導圖)
曾成功預測H1N1病毒疫情,細數這些年大數據的神應用
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優質內容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?
大數據?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?中臺
機器學習?|?深度學習?|?神經網絡
合伙人?|?1024?|?大神?|?數學
據統計,99%的大咖都完成了這個神操作
????
總結
以上是生活随笔為你收集整理的什么是机器学习?有哪些分类?怎样上手开发?终于有人讲明白了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 屠杀机器人和无处不在的监控:AI是我们最
- 下一篇: 终于有人把A/B测试讲明白了