全文共2600字,預計學習時長7分鐘
機器學習是資料科學領域最重要的子領域之一。1959年,IBM研究人員ArthurSamuel首次使用了機器學習這一術語。從此以後,機器學習領域引發了很多人的極大興趣。
當你開始資料科學之旅時,遇到的第一個子領域可能就是機器學習。機器學習是用於描述計算機演算法集合的名稱,這些演算法在執行過程中透過收集資訊不斷進行學習和改進。
機器學習演算法都是基於某些資料的。最初,該演算法透過一些“訓練資料”來建立解決特定問題的直覺。一旦演算法通過了學習階段,就可以透過已獲得知識解決基於不同資料集的相似問題。
一般而言,機器學習演算法分為4類:
· 監督演算法:在執行過程中需要開發人員的監督。為此,開發人員可以標記訓練資料併為要遵循的演算法設定嚴格的規則和界限。
· 無監督演算法:開發人員不直接控制的演算法。在這種情況下,演算法的期望結果是未知的,需要由演算法定義。
· 半監督演算法:該演算法結合了監督演算法和非監督演算法的各個方面。例如,初始化演算法時,並非所有訓練資料都將被標記,並且不提供一部分規則。
· 強化演算法:此種類型演算法使用了一種稱為探索/開發的技術。技術內容很簡單;機器執行一個動作,觀察結果,然後在執行下一個動作時考慮這些結果,依此類推。
以上每種演算法都有特定目標。例如,監督學習旨在擴充套件訓練資料的範圍,並據此預測未來或新資料。另一方面,無監督演算法用於組織和篩選資料以使其有意義。
每個類別都有各種旨在執行特定任務的特定演算法。本文將介紹每個資料科學家都必須瞭解的5種基本演算法,內容涵蓋機器學習的基礎知識。
1. 迴歸
迴歸演算法是監督演算法,用於查詢不同變數之間的可能關係,以瞭解自變數對因變數的影響程度。可以將回歸分析視為一個方程,例如,假設有方程y = 2x + z,y是因變數,則x,z是自變數。迴歸分析就是找出x和z在多大程度上影響y的值。
相同的邏輯適用於更高階和更復雜的問題。對於各種問題,迴歸演算法的型別也有很多。最常用的前五名可能是:
· 線性迴歸:最簡單的迴歸技術使用線性方法來描述因變數(預測值)和自變數(用於預測的值)之間的關係。
· Logistic迴歸:這種型別的迴歸用於二進位制因變數,被廣泛用於分析分類資料。
· 嶺迴歸:當迴歸模型變得過於複雜時,嶺迴歸會校正模型係數的大小。
· Lasso迴歸:Lasso(最小絕對收縮選擇器運算子)迴歸用於選擇變數並對其正則化。
· 多項式迴歸:這種型別的演算法用於擬合非線性資料。使用時最好的預測不是直線,而是一條試圖擬合所有資料點的曲線。
2. 分類
機器學習中的分類是基於預分類的訓練資料集將項歸類的過程。分類被認為是監督學習演算法的一種。這些演算法利用訓練資料的分類結果,計算出新的項落入已定義類別之一的機率。分類演算法的一個著名示例是將傳入的電子郵件分為垃圾郵件或非垃圾郵件。
分類演算法有多種型別,最常用的有:
· K近鄰:KNN是一種使用訓練資料集來查詢某些資料集中的k個最接近資料點的演算法。
· 決策樹:可將其視為流程圖,將每個資料點一次分為兩類,然後再分為兩類,依此類推。
· 樸素貝葉斯:此演算法使用條件機率規則計算項屬於特定類別的機率。
· 支援向量機(SVM):在此演算法中,根據資料的極性程度對資料進行分類,這可能超出X / Y預測範圍。
3. 整合
整合演算法透過將兩個或多個其他機器學習演算法的預測結合來得到更準確的結果。可以透過投票或平均結果來組合結果。投票通常在分類過程中使用,而平均則在迴歸過程中使用。
整合演算法有3種基本型別:Bagging、Boosting、以及Stacking。
· Bagging:在Bagging中,演算法在大小相同的不同訓練集上並行執行,然後使用相同的資料集測試所有演算法,並投票確定總體結果。
· Boosting:在Boosting的情況下,演算法按順序執行,然後使用加權投票選擇總體結果。
· Stacking:顧名思義,Stacking包含兩個層次,初級學習器是演算法的組合,次級學習器是基於基礎層次結果的元演算法。
4. 聚類
聚類演算法是一組用於對資料點進行分組的無監督演算法 同一聚類中的點比不同聚類中的點彼此之間更相似。聚類演算法有4種類型:
· 基於質心的聚類:此聚類演算法根據初始條件和異常值將資料組織到類中。基於質心的聚類演算法中用的最多的就是k均值。
· 基於密度的聚類:在這種聚類型別中,該演算法將高密度區域連線到聚類中以建立任意形狀的分佈。
· 基於分佈的聚類:此聚類演算法假定資料由機率分佈組成,然後將資料聚類為該分佈的各種版本。
· 層次聚類:此演算法建立了一個層次資料簇的樹,可以透過在正確的級別上切割樹來改變簇的數量。
5. 關聯關聯演算法是無監督演算法,用於發現某些項在特定資料集中一起出現的機率,主要用於購物籃分析。最常用的關聯演算法是Apriori。Apriori演算法是交易資料庫中常用的挖掘演算法。Apriori用於挖掘頻繁項集,並從那些項集生成一些關聯規則。
例如,如果一個人購買牛奶和麵包,那麼他也可能會買一些雞蛋。這可以從各個顧客的先前購買記錄得出。然後演算法算出這些項被一起購買的頻繁程度,根據針對該置信度的特定閾值來形成關聯規則。
機器學習是資料科學中最著名、研究最深入的子領域之一。人們也一直在開發新的機器學習演算法,以達到更高的準確性和更快的執行速度。無論採用哪種演算法,通常都可以將其歸為以下四類之一:有監督、無監督、半監督和增強演算法。每個演算法的用途都不一樣。
這些演算法經過了深入研究和廣泛使用,你只需要瞭解如何使用它,而不是如何實現它。大多數著名的Python機器學習模組(例如ScikitLearn)都包含大多數(如果不是全部)這些演算法的預定義版本。
瞭解其原理後,趕緊掌握用法並開始用起來吧。
我們一起分享AI學習與發展的乾貨