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

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

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

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

基於此,閒話少敘,下面讓咱們開始吧算法

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

場景假設

如今假設咱們正在嘗試一個機器學習項目。本文將爲你提供實施項目能夠遵循的步驟指南,確保項目成功。網絡

在項目開始時,咱們的大腦中確定會出現多個問題:機器學習

好比:編程語言

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

步驟

必須進行的兩個步驟:函數

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

機器學習是如今,也是將來。全部的技術人員、數據科學家和金融專家能夠從中受益,同時,若是上述這些人員在以後的日子不對該項技術有所涉獵的話,極可能會被時代所淘汰。工具

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

開始實施

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

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

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

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

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

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

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

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

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

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

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

若是在豐富特徵並減少尺寸後,模型沒有產生準確的結果,那麼須要從新調整模型的參數。

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

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

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

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

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

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



本文做者:【方向】

閱讀原文

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

相關文章
相關標籤/搜索