一份關於機器學習端到端學習指南

摘要: 本文是一份關於機器學習端到端過程的指導指南,其中列出了實現機器學習模型所需遵循的步驟及對應的參考文章;

人工智能、機器學習已經火了有一陣了,很多程序員也想換到這方向,目前有關於深度學習基礎介紹的材料很多,但很難找到一篇簡潔的文章提供實施機器學習項目端到端的指南,從頭到尾整個過程的相關指南介紹。因此,個人在網上蒐集到了許多有關於實施機器學習項目過程的文章,深入介紹瞭如何實現機器學習/數據科學項目的各個部分,但更多時候,我們只需要一些概括性的經驗指導。

在我不熟悉機器學習和數據科學的時候,我曾經尋找一些指導性的文章,這些文章清楚地闡述了在項目的某些步驟時候我需要做什麼才能很好地完成我的項目。本文將介紹一些文章,旨在爲成功實現機器學習項目提供一份端到端的指南。

基於此,閒話少敘,下面讓我們開始吧

簡而言之,機器學習項目有三個主要部分:第一部分是數據理解、數據收集和清理,第二部分是模型的實現,第三部分是進行模型優化。一般而言,數據理解、收集和清理需要花費整個項目60-70%的時間。爲此,我們需要該領域專家。

場景假設

現在假設我們正在嘗試一個機器學習項目。本文將爲你提供實施項目可以遵循的步驟指南,確保項目成功。

在項目開始時,我們的大腦中肯定會出現多個問題:

比如:

  • 如何開始這個項目?需要開發者或者統計學者?
  • 選擇何種語言進行開發?數據集是否乾淨?
  • 各種依賴包是否安裝齊全正確?項目問題是迴歸還是分類問題?
  • 應該採取何種機器學習方法?如何調參?
機器學習項目簡單來講是一種試錯過程,整個研究過程和遞歸過程比較類似,是一種不斷試錯尋找更優解法的過程。該過程同時也是實踐和理論的結合,對相關研究領域的專業知識有所要求,完成每個項目後也會提升個人的戰略技能,從事該領域的研究人員需要掌握統計相關的知識以及具備一定的編程能力。最重要的是,機器項目會教會你保持耐心,每做完一次實驗後,都會分析實驗結果,進而尋找到更優的答案(調參)。

步驟

必須進行的兩個步驟:

  • 1.確保你瞭解機器學習是什麼以及它的三個關鍵領域。可以閱讀下面這篇文章:
    8分鐘瞭解機器學習

機器學習是現在,也是未來。所有的技術人員、數據科學家和金融專家可以從中受益,同時,如果上述這些人員在之後的日子不對該項技術有所涉獵的話,很可能會被時代所淘汰。

Python是數據分析和機器學習最流行的編程語言中的一種,並且有很多封裝好的工具包可供我們調用,實現起來相對而言比較簡單。

開始實施

1.選擇合適的機器學習算法。如何選擇合適的算法可以參考下面這篇文章:
機器學習算法大亂鬥
        現實中,不管是工業界,亦或是學業界,都有大量的機器學習算法可供使用。上述文章中將分析典型的機器學習算法各自的優缺點,及針對的具體問題。
        到目前爲止,你可能已經理解了你需要解決的項目問題是有監督問題還是無監督問題。
        然而,機器學習不像經典的程序設計一樣(給定一個輸入,其輸出是固定), 機器學習總有可能找到另外一個正確的答案。比如,預測問題中通常有多個正確的答案。

2.如果這是一個有監督的機器學習問題,那麼請確保你瞭解該項目是迴歸還是分類問題。想弄清楚這點可以閱讀下面這篇文章:
有監督的機器學習:迴歸與分類
在上述文章中,將闡述有監督學習中迴歸問題和分類問題之間的關鍵差異。

3.如果是時間序列迴歸問題,則在預測時間之前使時間序列數據保持不變。具體做法參考下面這篇文章:
我是如何預測時間序列?
預測、建模和推導時間序列在許多領域越來越受歡迎。時間序列一般用於預測未來。

4.找出一種預先測量算法性能的方法。如何確定評測指標可以參考下面這篇文章:
每個數據科學家必須知道的數學度量方法
每個數據科學家都需要了解大量的數學度量方法,比如準確度、AUC。

5.測量時間序列迴歸模型的性能。可以參考下面這篇文章:
搭建的預測模型性能有多好——迴歸分析
預測是計量經濟學和數據科學中的一個重要概念,它也廣泛用於人工智能中。

6.調查是否需要使用ARIMA模型。詳細內容請參考下面這篇文章:
瞭解差分整合移動平均自迴歸模型——ARIMA 
在文章“如何預測時間序列?”中,提供了關於時間序列分析的相關概述。這篇文章的核心是瞭解ARIMA模型。

7.如果是無監督的機器學習問題,那麼需要了解羣集是如何工作和實施的。詳細內容請參考下面這篇文章:
無監督機器學習:聚類和K均值算法
上述文章解釋了聚類在無監督機器學習中的工作原理。

8.探索神經網絡和深度學習,看看它是否適用於你的問題。詳細內容請參考下面這篇文章:
瞭解神經網絡:從激活函數到反向傳播
上述文章旨在闡述神經網絡的基本概述,講解基本概念,包含激活函數、反向傳播算法。

9.豐富你的特徵集合,對其進行縮放、標準化和歸一化等。詳細內容請參考下面這篇文章:
處理數據以提高機器學習模型的準確性
有時我們會建立一個機器學習模型,用我們的訓練數據訓練它,當我們訓練好後進行預測時,效果並不是很理想,有部分原因是數據集存在髒數據或不夠全面,因此需要對數據進行進一步的處理,比如數據清洗、增強等。

乾淨的數據=良好的結果。

10.減少特徵尺寸空間。詳細內容請參考下面這篇文章:
在數據科學中,什麼是降維?
雖然現在是大數據時代,有很多的數據可供使用,大量數據可以促使我們創建一個預測模型,但數據量不是越大越好,而是越精越好。

如果在豐富特徵並減小尺寸後,模型沒有產生準確的結果,那麼需要重新調整模型的參數。

11.微調機器學習模型參數。詳細內容請參考下面這篇文章:
[如何微調機器學習模型以提高模型的預測準確性?]()
微調機器學習預測模型是提高預測結果準確性的關鍵步驟。這個過程有些枯燥,需要一些耐心和運氣。

始終確保模型不會過擬合或欠擬合。

12.最後,重複這些步驟,直到獲得準確的結果:

  1. 豐富模型特徵;
  2. 微調模型參數;

始終對數據集進行分析,看看是否缺少任何的重要信息,在看到問題時解決問題,但在開始進行新的實驗前,始終需要備份並保存你前一份的工作內容,這是一個好的習慣麼,因爲你可能需要返回上一步再一次進行其它的實驗。

機器學習在本質上是回溯過程。



本文作者:【方向】

閱讀原文

本文爲雲棲社區原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章