天天看點

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

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

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

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

        基于此,閑話少叙,下面讓我們開始吧

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

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

場景假設

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

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

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

比如:

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

步驟

必須進行的兩個步驟:

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

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

Python是資料分析和機器學習最流行的程式設計語言中的一種,并且有很多封裝好的工具包可供我們調用,實作起來相對而言比較簡單。

開始實施

1.選擇合适的機器學習算法。如何選擇合适的算法可以參考下面這篇文章:

機器學習算法大亂鬥

        現實中,不管是工業界,亦或是學業界,都有大量的機器學習算法可供使用。上述文章中将分析典型的機器學習算法各自的優缺點,及針對的具體問題。

        到目前為止,你可能已經了解了你需要解決的項目問題是有監督問題還是無監督問題。

        然而,機器學習不像經典的程式設計一樣(給定一個輸入,其輸出是固定), 機器學習總有可能找到另外一個正确的答案。比如,預測問題中通常有多個正确的答案。

2.如果這是一個有監督的機器學習問題,那麼請確定你了解該項目是回歸還是分類問題。想弄清楚這點可以閱讀下面這篇文章:

有監督的機器學習:回歸與分類

在上述文章中,将闡述有監督學習中回歸問題和分類問題之間的關鍵差異。

3.如果是時間序列回歸問題,則在預測時間之前使時間序列資料保持不變。具體做法參考下面這篇文章:

我是如何預測時間序列?

預測、模組化和推導時間序列在許多領域越來越受歡迎。時間序列一般用于預測未來。

4.找出一種預先測量算法性能的方法。如何确定評測名額可以參考下面這篇文章:

每個資料科學家必須知道的數學度量方法

每個資料科學家都需要了解大量的數學度量方法,比如準确度、AUC。

5.測量時間序列回歸模型的性能。可以參考下面這篇文章:

搭建的預測模型性能有多好——回歸分析

預測是計量經濟學和資料科學中的一個重要概念,它也廣泛用于人工智能中。

6.調查是否需要使用ARIMA模型。詳細内容請參考下面這篇文章:

了解差分整合移動平均自回歸模型——ARIMA

在文章“如何預測時間序列?”中,提供了關于時間序列分析的相關概述。這篇文章的核心是了解ARIMA模型。

7.如果是無監督的機器學習問題,那麼需要了解群集是如何工作和實施的。詳細内容請參考下面這篇文章:

無監督機器學習:聚類和K均值算法

上述文章解釋了聚類在無監督機器學習中的工作原理。

8.探索神經網絡和深度學習,看看它是否适用于你的問題。詳細内容請參考下面這篇文章:

了解神經網絡:從激活函數到反向傳播

上述文章旨在闡述神經網絡的基本概述,講解基本概念,包含激活函數、反向傳播算法。

9.豐富你的特征集合,對其進行縮放、标準化和歸一化等。詳細内容請參考下面這篇文章:

處理資料以提高機器學習模型的準确性

有時我們會建立一個機器學習模型,用我們的訓練資料訓練它,當我們訓練好後進行預測時,效果并不是很理想,有部分原因是資料集存在髒資料或不夠全面,是以需要對資料進行進一步的處理,比如資料清洗、增強等。

幹淨的資料=良好的結果。

10.減少特征尺寸空間。詳細内容請參考下面這篇文章:

在資料科學中,什麼是降維?

雖然現在是大資料時代,有很多的資料可供使用,大量資料可以促使我們建立一個預測模型,但資料量不是越大越好,而是越精越好。

如果在豐富特征并減小尺寸後,模型沒有産生準确的結果,那麼需要重新調整模型的參數。

11.微調機器學習模型參數。詳細内容請參考下面這篇文章:

[如何微調機器學習模型以提高模型的預測準确性?]()

微調機器學習預測模型是提高預測結果準确性的關鍵步驟。這個過程有些枯燥,需要一些耐心和運氣。

始終確定模型不會過拟合或欠拟合。

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

  1. 豐富模型特征;
  2. 微調模型參數;
    一份關于機器學習端到端學習指南

始終對資料集進行分析,看看是否缺少任何的重要資訊,在看到問題時解決問題,但在開始進行新的實驗前,始終需要備份并儲存你前一份的工作内容,這是一個好的習慣麼,因為你可能需要傳回上一步再一次進行其它的實驗。

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

作者資訊

Farhad Malik,資料科學

本文由阿裡雲雲栖社群組織翻譯。

文章原标題《End To End Guide For Machine Learning Projects》,譯者:海棠,審校:Uncle_LLD。

文章簡譯,更為詳細的内容,

請檢視原文