一份关于机器学习端到端学习指南
人工智能、機器學(xué)習(xí)已經(jīng)火了有一陣了,很多程序員也想換到這方向,目前有關(guān)于深度學(xué)習(xí)基礎(chǔ)介紹的材料很多,但很難找到一篇簡潔的文章提供實施機器學(xué)習(xí)項目端到端的指南,從頭到尾整個過程的相關(guān)指南介紹。因此,個人在網(wǎng)上搜集到了許多有關(guān)于實施機器學(xué)習(xí)項目過程的文章,深入介紹了如何實現(xiàn)機器學(xué)習(xí)/數(shù)據(jù)科學(xué)項目的各個部分,但更多時候,我們只需要一些概括性的經(jīng)驗指導(dǎo)。
? ? ? ? 在我不熟悉機器學(xué)習(xí)和數(shù)據(jù)科學(xué)的時候,我曾經(jīng)尋找一些指導(dǎo)性的文章,這些文章清楚地闡述了在項目的某些步驟時候我需要做什么才能很好地完成我的項目。本文將介紹一些文章,旨在為成功實現(xiàn)機器學(xué)習(xí)項目提供一份端到端的指南。
? ? ? ? 基于此,閑話少敘,下面讓我們開始吧
? ? ? ? 簡而言之,機器學(xué)習(xí)項目有三個主要部分:第一部分是數(shù)據(jù)理解、數(shù)據(jù)收集和清理,第二部分是模型的實現(xiàn),第三部分是進行模型優(yōu)化。一般而言,數(shù)據(jù)理解、收集和清理需要花費整個項目60-70%的時間。為此,我們需要該領(lǐng)域?qū)<摇?/p>
場景假設(shè)
? ? ? ? 現(xiàn)在假設(shè)我們正在嘗試一個機器學(xué)習(xí)項目。本文將為你提供實施項目可以遵循的步驟指南,確保項目成功。
? ? ? ? 在項目開始時,我們的大腦中肯定會出現(xiàn)多個問題:
比如:
- 如何開始這個項目?需要開發(fā)者或者統(tǒng)計學(xué)者?
- 選擇何種語言進行開發(fā)?數(shù)據(jù)集是否干凈?
- 各種依賴包是否安裝齊全正確?項目問題是回歸還是分類問題?
- 應(yīng)該采取何種機器學(xué)習(xí)方法?如何調(diào)參?
機器學(xué)習(xí)項目簡單來講是一種試錯過程,整個研究過程和遞歸過程比較類似,是一種不斷試錯尋找更優(yōu)解法的過程。該過程同時也是實踐和理論的結(jié)合,對相關(guān)研究領(lǐng)域的專業(yè)知識有所要求,完成每個項目后也會提升個人的戰(zhàn)略技能,從事該領(lǐng)域的研究人員需要掌握統(tǒng)計相關(guān)的知識以及具備一定的編程能力。最重要的是,機器項目會教會你保持耐心,每做完一次實驗后,都會分析實驗結(jié)果,進而尋找到更優(yōu)的答案(調(diào)參)。
步驟
必須進行的兩個步驟:
- 1.確保你了解機器學(xué)習(xí)是什么以及它的三個關(guān)鍵領(lǐng)域??梢蚤喿x下面這篇文章:
8分鐘了解機器學(xué)習(xí)
機器學(xué)習(xí)是現(xiàn)在,也是未來。所有的技術(shù)人員、數(shù)據(jù)科學(xué)家和金融專家可以從中受益,同時,如果上述這些人員在之后的日子不對該項技術(shù)有所涉獵的話,很可能會被時代所淘汰。
- 2.選擇合適的編程語言。需要熟練掌握Python,請點擊閱讀:
從零開始學(xué)python
Python是數(shù)據(jù)分析和機器學(xué)習(xí)最流行的編程語言中的一種,并且有很多封裝好的工具包可供我們調(diào)用,實現(xiàn)起來相對而言比較簡單。
開始實施
1.選擇合適的機器學(xué)習(xí)算法。如何選擇合適的算法可以參考下面這篇文章:
機器學(xué)習(xí)算法大亂斗
? ? ? ? 現(xiàn)實中,不管是工業(yè)界,亦或是學(xué)業(yè)界,都有大量的機器學(xué)習(xí)算法可供使用。上述文章中將分析典型的機器學(xué)習(xí)算法各自的優(yōu)缺點,及針對的具體問題。
? ? ? ? 到目前為止,你可能已經(jīng)理解了你需要解決的項目問題是有監(jiān)督問題還是無監(jiān)督問題。
? ? ? ? 然而,機器學(xué)習(xí)不像經(jīng)典的程序設(shè)計一樣(給定一個輸入,其輸出是固定), 機器學(xué)習(xí)總有可能找到另外一個正確的答案。比如,預(yù)測問題中通常有多個正確的答案。
2.如果這是一個有監(jiān)督的機器學(xué)習(xí)問題,那么請確保你了解該項目是回歸還是分類問題。想弄清楚這點可以閱讀下面這篇文章:
有監(jiān)督的機器學(xué)習(xí):回歸與分類
在上述文章中,將闡述有監(jiān)督學(xué)習(xí)中回歸問題和分類問題之間的關(guān)鍵差異。
3.如果是時間序列回歸問題,則在預(yù)測時間之前使時間序列數(shù)據(jù)保持不變。具體做法參考下面這篇文章:
我是如何預(yù)測時間序列?
預(yù)測、建模和推導(dǎo)時間序列在許多領(lǐng)域越來越受歡迎。時間序列一般用于預(yù)測未來。
4.找出一種預(yù)先測量算法性能的方法。如何確定評測指標可以參考下面這篇文章:
每個數(shù)據(jù)科學(xué)家必須知道的數(shù)學(xué)度量方法
每個數(shù)據(jù)科學(xué)家都需要了解大量的數(shù)學(xué)度量方法,比如準確度、AUC。
5.測量時間序列回歸模型的性能。可以參考下面這篇文章:
搭建的預(yù)測模型性能有多好——回歸分析
預(yù)測是計量經(jīng)濟學(xué)和數(shù)據(jù)科學(xué)中的一個重要概念,它也廣泛用于人工智能中。
6.調(diào)查是否需要使用ARIMA模型。詳細內(nèi)容請參考下面這篇文章:
了解差分整合移動平均自回歸模型——ARIMA?
在文章“如何預(yù)測時間序列?”中,提供了關(guān)于時間序列分析的相關(guān)概述。這篇文章的核心是了解ARIMA模型。
7.如果是無監(jiān)督的機器學(xué)習(xí)問題,那么需要了解群集是如何工作和實施的。詳細內(nèi)容請參考下面這篇文章:
無監(jiān)督機器學(xué)習(xí):聚類和K均值算法
上述文章解釋了聚類在無監(jiān)督機器學(xué)習(xí)中的工作原理。
8.探索神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí),看看它是否適用于你的問題。詳細內(nèi)容請參考下面這篇文章:
了解神經(jīng)網(wǎng)絡(luò):從激活函數(shù)到反向傳播
上述文章旨在闡述神經(jīng)網(wǎng)絡(luò)的基本概述,講解基本概念,包含激活函數(shù)、反向傳播算法。
9.豐富你的特征集合,對其進行縮放、標準化和歸一化等。詳細內(nèi)容請參考下面這篇文章:
處理數(shù)據(jù)以提高機器學(xué)習(xí)模型的準確性
有時我們會建立一個機器學(xué)習(xí)模型,用我們的訓(xùn)練數(shù)據(jù)訓(xùn)練它,當我們訓(xùn)練好后進行預(yù)測時,效果并不是很理想,有部分原因是數(shù)據(jù)集存在臟數(shù)據(jù)或不夠全面,因此需要對數(shù)據(jù)進行進一步的處理,比如數(shù)據(jù)清洗、增強等。
干凈的數(shù)據(jù)=良好的結(jié)果。
10.減少特征尺寸空間。詳細內(nèi)容請參考下面這篇文章:
在數(shù)據(jù)科學(xué)中,什么是降維?
雖然現(xiàn)在是大數(shù)據(jù)時代,有很多的數(shù)據(jù)可供使用,大量數(shù)據(jù)可以促使我們創(chuàng)建一個預(yù)測模型,但數(shù)據(jù)量不是越大越好,而是越精越好。
如果在豐富特征并減小尺寸后,模型沒有產(chǎn)生準確的結(jié)果,那么需要重新調(diào)整模型的參數(shù)。
11.微調(diào)機器學(xué)習(xí)模型參數(shù)。詳細內(nèi)容請參考下面這篇文章:
[如何微調(diào)機器學(xué)習(xí)模型以提高模型的預(yù)測準確性?]()
微調(diào)機器學(xué)習(xí)預(yù)測模型是提高預(yù)測結(jié)果準確性的關(guān)鍵步驟。這個過程有些枯燥,需要一些耐心和運氣。
始終確保模型不會過擬合或欠擬合。
12.最后,重復(fù)這些步驟,直到獲得準確的結(jié)果:
?
始終對數(shù)據(jù)集進行分析,看看是否缺少任何的重要信息,在看到問題時解決問題,但在開始進行新的實驗前,始終需要備份并保存你前一份的工作內(nèi)容,這是一個好的習(xí)慣么,因為你可能需要返回上一步再一次進行其它的實驗。
機器學(xué)習(xí)在本質(zhì)上是回溯過程。
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的一份关于机器学习端到端学习指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UnixBench算分介绍
- 下一篇: 阿里如何将“高峰前扩容、高峰后缩容”的梦