解決機器學習問題的一般流程
本期將針對機器學習的新朋友,為大家講解解決機器學習問題的一般思路:
很多部落格、教程中都對機器學習、深度學習的具體方法有很詳細的講解,但卻很少有人對機器學習問題的流程進行總結,而瞭解解決機器學習問題的一般流程對於新手而言還是非常必要的,所以本文是非常適合機器學習入門者的一篇文章,它會讓你對機器學習的整個流程有很好的理解。
當我們拿到一個機器學習問題時,通常處理的流程分為以下幾步,如圖1所示:
圖1 機器學習的一般流程
資料收集
業界有一句非常著名的話:“資料決定了機器學習的上界,而模型和演算法只是逼近這個上界。”由此可見,資料對於整個機器學習專案至關重要。通常,我們拿到一個具體的領域問題後,可以使用網上一些具有代表性的、大眾經常會用到的公開資料集。相較於自己整理的資料集,顯然大眾的資料集更具有代表性,資料處理的結果也更容易得到大家的認可。此外,大眾的資料集在資料過擬合、資料偏差、數值缺失等問題上也會處理的更好。但如果在網上找不到現成的資料,那我們只好收集原始資料,再去一步步進行加工、整理,這將是一個漫長的過程,需要我們足夠細心。
資料預處理與特徵工程
即使我們能夠拿到大眾認可度比較高的代表性資料集,該資料集也會或多或少存在資料缺失、分佈不均衡、存在異常資料、混有無關緊要的資料等諸多資料不規範的問題。這就需要我們對收集到的資料進行進一步的處理、包括資料的清洗、資料的轉換、資料標準化、缺失值的處理、特徵的提取、資料的降維等方面。我們把對資料的這一系列的工程化活動,叫做“特徵工程”。我們通常使用sklearn庫來處理資料、提取特徵,sklearn是機器學習中最常見的一個第三方模組,裡邊封裝了大量特徵處理的方法,詳細方法請參閱sklearn官方手冊:http://scikit-learn.org/stable/modules/preprocessing.html#preprocessing。
模型的選擇與訓練
當我們處理好資料之後,就可以選擇合適的機器學習模型進行資料的訓練了。常見的機器學習模型我們在本章第二小節已經給出,每種模型詳細的介紹和用法,同樣可以參閱sklearn官方手冊:http://scikit-learn.org。可以看到可供選擇的機器學習模型有很多,每個模型都有自己的適用場景,那麼如何選擇合適的模型呢?
首先我們要對處理好的資料進行分析,判斷訓練資料有沒有類標,若是有類標則應該考慮監督學習的模型,否則可以劃分為非監督學習問題。其次分析問題的型別是屬於分類問題還是迴歸問題,當我們確定好問題的型別之後再去選擇具體的模型。在模型的實際選擇時,通常會考慮嘗試不同的模型對資料進行訓練,然後比較輸出的結果,選擇最佳的那個。此外,我們還會考慮到資料集的大小。若是資料集樣本較少,訓練的時間較短,通常考慮樸素貝葉斯等一些輕量級的演算法,否則的話就要考慮SVM等一些重量級演算法。
模型的評估與優化
之前我們大概介紹了一些模型評估的指標和方法。例如:我們可以選擇查準率、查全率、AUC指標表現更好的模型;還可以通過的交叉驗證法用驗證集來評估模型效能的好壞;當然,也可以針對一種模型採用多種不同的方法,每種方法給予不同的權重值,來對該模型進行綜合“評分”。在模型評估的過程中,我們可以判斷模型的“過擬合”和“欠擬合”。若是存在資料過度擬合的現象,說明我們可能在訓練過程中把噪聲也當作了資料的一般特徵,可以通過增大訓練集的比例或是正則化的方法來解決過擬合的問題;若是存在資料擬合不到位的情況,說明我們資料訓練的不到位,未能提取出資料的一般特徵,要通過增加多項式維度、減少正則化引數等方法來解決欠擬合問題。最後,為了使模型的訓練效果更優,我們還要對所選的模型進行調參,這就需要我們對模型的實現原理有更深的理解。
此外,在實際專案中,我們還會對機器學習的模型進行模型的融合,根據模型的重要程度對每個模型設定不同的權重等,以調高模型的準確率。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555081/viewspace-2216042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何解決機器學習樹整合模型的解釋性問題機器學習模型
- 機器學習無法解決自然語言理解問題 - thegradient機器學習
- 機器學習 | 八大步驟解決90%的NLP問題機器學習
- IT職場:用TRIZ解決實際問題的一般流程是什麼?
- 基本操作能解決的問題,不必勞煩機器學習機器學習
- 機器學習:迴歸問題機器學習
- 學習ORACLE 的入門 (一般流程)Oracle
- Google研究主管:非技術專家如何利用機器學習解決問題Go機器學習
- 通俗講明白機器學習中的學習問題 - svpino機器學習
- 機器學習問題方法總結機器學習
- 機器學習之分類問題度量機器學習
- java學習中問題與解決方式Java
- munium學習過程中問題解決
- 強化學習-學習筆記11 | 解決高估問題強化學習筆記
- 吳恩達機器學習提交問題吳恩達機器學習
- 機器學習面試問題彙總機器學習面試
- 機器學習中的類別不均衡問題機器學習
- 解析機器學習中的資料漂移問題機器學習
- 從 Quora 的 187 個問題中學習機器學習和 NLP機器學習
- 帶您瞭解TRIZ理論解決問題的流程
- 機器學習,詳解SVM軟間隔與對偶問題機器學習
- Netty原始碼學習6——netty編碼解碼器&粘包半包問題的解決Netty原始碼
- 圖解機器學習 | 決策樹模型詳解圖解機器學習模型
- 【機器學習】--迴歸問題的數值優化機器學習優化
- 關於機器視覺學習路線的問題?視覺
- 【火爐煉AI】機器學習009-用邏輯迴歸分類器解決多分類問題AI機器學習邏輯迴歸
- 資料科學和機器學習面試問題資料科學機器學習面試
- 機器學習-習題(二)機器學習
- 機器學習-習題(一)機器學習
- 對瀏覽器css相容性的學習理解及問題解決彙總瀏覽器CSS
- 關於解決主機和虛擬機器ping不通的問題虛擬機
- libigl庫的學習筆記--問題與解決辦法筆記
- 機器學習開發流程基礎機器學習
- vmware ubuntu虛擬機器問題彙總解決Ubuntu虛擬機
- RPA機器人解決企業什麼問題機器人
- 教程:使用遷移學習來解決影像問題!遷移學習
- Web 學習之跨域問題及解決方案Web跨域
- 前端學習(2577):Nuxt解決了什麼問題前端UX