經驗之談 如何為你的機器學習問題選擇合適的演算法

2022-07-05 07:54:11 字數 1613 閱讀 5681

步驟 0:了解基本知識

在我們深入學習之前,我們先重溫基礎知識。具體來說,我們應該知道機器學習裡面三個主要類別:監督學習,無監督學習和強化學習。

步驟 1:對問題進行分類

接下來,我們要對問題進行分類,這包含兩個過程:

就是這麼簡單!

更一般地說,我們可以詢問我們自己:我們的演算法要實現什麼目標,然後以此來找到正確的演算法類別。

上面的描述包括了幾個我們還沒有提到的專業術語:

步驟 2:尋找可用的演算法

現在我們已經將問題進行了分類,我們就可以使用我們所掌握的工具來識別出適當且實用的演算法。

microsoft azure 建立了乙個方便的演算法列表,其展示了哪些演算法可用於哪種類別的問題。雖然該表單是針對 azure 軟體定製的,但它具有普遍的適用性(該表單的 pdf 版本可查閱 

一些值得注意的演算法如下:

步驟 3:實現所有適用的演算法

對於任何給定的問題,通常有多種候選演算法可以完成這項工作。那麼我們如何知道選擇哪乙個呢?通常,這個問題的答案並不簡單,所以我們必須反覆試驗。

原型開發最好分兩步完成。在第一步中,我們希望通過最小量的特徵工程快速且粗糙地實現一些演算法。在這個階段,我們主要的目標是大概了解哪個演算法表現得更好。這個步驟有點像招聘:我們會盡可能地尋找可以縮短我們候選演算法列表的理由。

一旦我們將列表減少至幾個候選演算法,真正的原型開發開始了。理想情況下,我們會建立乙個機器學習流程,使用一組經過仔細選擇的評估標準來比較每個演算法在資料集上的表現。在這個階段,我們只處理一小部分的演算法,所以我們可以把注意力轉到真正神奇的地方:特徵工程。

步驟 4:特徵工程

或許比選擇演算法更重要的是正確選擇表示資料的特徵。從上面的列表中選擇合適的演算法是相對簡單直接的,然而特徵工程卻更像是一門藝術。

主要問題在於我們試圖分類的資料在特徵空間的描述極少。利如,用畫素的灰度值來**通常是不佳的選擇;相反,我們需要找到能提高訊雜比的資料變換。如果沒有這些資料轉換,我們的任務可能無法解決。利如,在方向梯度直方圖(hog)出現之前,複雜的視覺任務(像行人檢測或面部檢測)都是很難做到的。

雖然大多數特徵的有效性需要靠實驗來評估,但是了解常見的選取資料特徵的方法是很有幫助的。這裡有幾個較好的方法:

使用交叉驗證的準則來移除和增加特徵!

步驟 5:超引數優化

最後,你可能想優化演算法的超引數。例如,主成分分析中的主成分個數,k 近鄰演算法的引數 k,或者是神經網路中的層數和學習速率。最好的方法是使用交叉驗證來選擇。

一旦你運用了上述所有方法,你將有很好的機會創造出強大的機器學習系統。但是,你可能也猜到了,成敗在於細節,你可能不得不反覆實驗,最後才能走向成功。

選自ask a swiss機器之心編譯

經驗之談 如何為你的機器學習問題選擇合適的演算法?

在我們深入學習之前,我們先重溫基礎知識。具體來說,我們應該知道機器學習裡面三個主要類別 監督學習,無監督學習和強化學習。接下來,我們要對問題進行分類,這包含兩個過程 就是這麼簡單!更一般地說,我們可以詢問我們自己 我們的演算法要實現什麼目標,然後以此來找到正確的演算法類別 上面的描述包括了幾個我們還...

如何debug乙個問題的方法經驗之談

眾所周知,對於軟體行業,只要是開發工作,永遠都避免不了有bug的存在,有bug並不可怕,就怕你在 的海洋中毫無方向的摸索,那簡直就是噩夢!而我在帶團隊的過程中,常常發現屬下經常面對稍微困難一點的bug時都無所適從,不知道從 下手,有的時候,問題居然就是出在少了乙個括號,符號,逗號等等,而找我debu...

經驗之談 如何編寫帶有宣傳色彩的產品手冊

持續半年多的erp系統終於結束了,前期分析的業務暫時告一段落了,要進行下一步的工作了。雖然給客戶進行了培訓,但還沒有一套完整的產品手冊供客戶查詢使用,所以這個艱鉅的任務又落到了我的身上。這件事只能出差回北京後來寫,回來後由於公司組織結構劃分,雖然職位有些提公升,但事情越來越多,好在經過乙個星期的整頓...