聽您的資料,遵循您的目標…
> Photo by Miguel Á. Padriñán from Pexels
剛開始學習和實踐資料科學與機器學習時,我會查詢資源和教程以實施和使用特定的機器學習演算法。
網際網路上充滿了教您如何使用演算法,演算法如何工作以及如何將其應用於資料的材料。
但是,當我開始構建專案時,我將花費很長時間來嘗試確定要使用哪種演算法。
請參閱,有關如何使用特定演算法的大多數文章遺漏了何時使用該演算法以及如何為資料選擇最佳演算法。
在本文中,我將嘗試介紹為特定專案選擇最佳機器學習演算法時遵循的過程。
在開始之前,我們首先來學習一下機器學習演算法的型別。
機器學習演算法的型別機器學習演算法可以大致分為三大類:
監督學習在監督學習中,該演算法從訓練資料構建數學模型,該模型具有輸入和輸出的標籤。資料分類和迴歸演算法被認為是監督學習。
無監督學習在無監督學習中,該演算法在僅具有輸入功能但沒有輸出標籤的資料上建立模型。然後訓練模型以在資料中尋找某些結構。聚類和分段是無監督學習演算法的示例。
強化學習在強化學習中,該模型透過執行一組自己自行完成的動作和決策來學習執行任務,然後從這些動作和決策的反饋中學習。蒙特卡洛是強化學習演算法的一個示例。
> Image by the author (made using Canva)
選擇正確的演算法因此,您知道不同的演算法型別,知道它們的不同之處,並且知道如何使用它們。現在的問題是何時使用每種演算法?
要回答此問題,我們需要考慮我們要解決的問題的四個方面:
№1:資料瞭解資料是決定演算法的第一步,也是最重要的一步。在開始考慮不同的演算法之前,您需要熟悉自己的資料。一種簡單的方法是視覺化資料並嘗試查詢其中的模式,嘗試觀察其行為,最重要的是,觀察其大小。
瞭解有關資料的關鍵資訊將有助於您對演算法做出初步決策。
· 資料大小:某些演算法在處理較大資料時效能要優於其他演算法。例如,對於小型訓練資料集,具有高bais /低方差分類器的演算法將比低偏差/高方差分類器更好地工作。因此,對於小的訓練資料,樸素貝葉斯的表現將優於kNN。
· 資料的特徵:這意味著您的資料如何形成。您的資料是線性的嗎?然後,也許線性模型會最適合它,例如迴歸(線性和邏輯)或SVM(支援向量機)。但是,如果您的資料更復雜,則需要像隨機森林這樣的演算法。
· 資料的行為:您的功能是順序的還是連結的?如果是順序的?您要預測天氣還是股市?然後,最好使用與之匹配的演算法,例如Markov模型和決策樹。
· 資料型別:您可以對輸入或輸出資料進行分類。如果您的輸入資料被標記,則使用監督學習演算法;如果不是,那可能是無人監督的學習問題。另一方面,如果您的輸出資料是數字,則使用迴歸,但如果是一組組,則是聚類問題。
№2:準確性現在,您已經研究了資料,分析了資料的型別,特徵和大小,您需要自問,準確性對您要解決的問題有多大影響?
模型的準確性是指其根據給定觀察集預測答案的能力,接近該觀察集的正確響應。
有時,對於我們的目標應用程式而言,不需要準確的答案。如果近似值足夠好,我們可以透過選擇近似模型來顯著減少訓練和處理時間。近似方法可以避免或不進行過度擬合或對資料進行過度擬合,例如對非線性資料進行線性迴歸。
№3:速度通常,準確性和速度是相反的。在確定演算法時,您需要在兩者之間進行權衡。更高的精度通常意味著更長的培訓和處理時間。
樸素貝葉斯(NaïveBayes)和線性與邏輯迴歸(Linear and Logistic regression)等演算法易於理解和實施,因此執行速度很快。SVM,神經網路和隨機森林等更復雜的演算法需要更長的時間來處理和訓練資料。
那麼,哪個對您的專案更有價值?準確性還是時間?如果有時間的話,使用更簡單的演算法會更好,而如果準確性是最重要的事情,那麼選擇更復雜的演算法對您的專案會更好。
> Image by the author (made using Canva)
№4:功能和引數問題的引數是數字,它將影響您選擇演算法的行為方式。引數是諸如容錯性或迭代次數之類的因素,或者是演算法行為的變體之間的選項。訓練和處理資料所需的時間通常與您擁有多少個引數有關。
處理和訓練模型所需的時間隨引數數量呈指數增加。但是,具有許多引數通常表示演算法更靈活。
通常,在機器學習或資料科學中,功能是您要分析的問題的可量化變數。
具有大量功能可能會減慢某些演算法的速度,從而延長培訓時間。如果您的問題具有許多功能,那麼最好使用諸如SVM之類的演算法,該演算法非常適合具有大量功能的應用程式。
最後的想法許多因素控制著選擇演算法的過程。我們主要可以將您的決策標準分為兩部分,即資料相關方面和問題相關方面。
資料的大小,行為,特徵和型別可以使您初步瞭解要使用哪種演算法。一旦獲得了最初的決定,問題的不同方面將幫助您做出最終決定。
> Image by the author (made using Canva)
最後,請始終記住兩件事:
· 與複雜演算法相比,更好的資料可以帶來更好的結果。如果您可以使用更簡單的演算法獲得相似的結果,請選擇簡單。
· 您可以節省更多時間來處理和訓練資料,從而提高演算法的準確性。根據特定專案的優先順序做出決定。
始終聽從您的資料試圖講述的故事,並遵循專案的目標。