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