每個數據科學家都應該知道的10種機器學習方法

2021-01-11 CDA數據分析師

作者 | CDA數據分析師 10 machine learning methods that every data scientist should know

機器學習是研究和工業中的熱門話題,新方法一直在發展。該領域的速度和複雜性使得即使對於專家而言也難以跟上新技術 - 並且對於初學者而言可能是壓倒性的難度。

為了揭開機器學習的神秘面紗並為剛接觸核心概念的人提供學習途徑,讓我們看看十種不同的方法,包括簡單描述,可視化和每個方法的示例。

機器學習算法(也稱為模型)是表示問題上下文中的數據的數學表達式,通常是業務問題。目標是從數據到洞察。例如,如果在線零售商想要預測下一季度的銷售額,他們可能會使用機器學習算法,根據過去的銷售額和其他相關數據預測這些銷售額。類似地,風車製造商可以通過視覺監控重要設備並通過訓練識別危險裂縫的算法來提供視頻數據。

所描述的十種方法提供了一個概述 - 以及您在磨練機器學習知識和技能時可以建立的基礎:

1 回歸

回歸方法屬於有監督的ML類別。它們有助於基於一組先前數據預測或解釋特定數值,例如基於類似屬性的先前定價數據來預測房產的價格。

最簡單的方法是線性回歸,其中我們使用直線的數學方程(y = m * x + b)來模擬數據集。我們通過計算線的位置和斜率來訓練具有許多數據對(x,y)的線性回歸模型,該直線最小化所有數據點和線之間的總距離。換句話說,我們計算最接近數據中觀測值的線的斜率(m)和y截距(b)。

讓我們考慮更多線性回歸的具體例子。我曾經使用線性回歸來預測某些建築物的能耗(以千瓦時為單位),將建築物的年齡,樓層數,平方英尺和堵牆設備的數量匯總在一起。由於有多個輸入(年齡,平方英尺等),我使用了多變量線性回歸。原理與簡單的一對一線性回歸相同,但在這種情況下,我創建的「線」基於變量的數量發生在多維空間中。

下圖顯示了線性回歸模型與建築物實際能耗的匹配程度。現在想像一下,您可以訪問建築物的特徵(年齡,平方英尺等),但您不知道能耗。在這種情況下,我們可以使用擬合線來估算特定建築物的能耗。

請注意,您還可以使用線性回歸來估計每個因素的權重,這有助於最終預測消耗的能量。例如,一旦有了公式,就可以確定年齡,大小或身高是否最重要。

▲建築能耗(kWh)的線性回歸模型估計

回歸技術的範圍從簡單(如線性回歸)到複雜(如正則化線性回歸,多項式回歸,決策樹和隨機森林回歸,神經網絡等)。但不要陷入困境:首先研究簡單的線性回歸,掌握基礎,然後繼續前進。

2 分類

另一類有監督的ML,分類方法預測或解釋類值。例如,他們可以幫助預測在線客戶是否會購買產品。輸出可以是是或否:買方或非買方。但分類方法不限於兩類。例如,分類方法可以幫助評估給定圖像是否包含汽車或卡車。在這種情況下,輸出將是3個不同的值:1)圖像包含汽車,2)圖像包含卡車,或3)圖像既不包含汽車也不包含卡車。

最簡單的分類算法是邏輯回歸 - 這使得它聽起來像一個回歸方法,但事實並非如此。邏輯回歸基於一個或多個輸入估計事件發生的概率。

例如,邏輯回歸可以將學生的兩個考試分數作為輸入,以便估計學生將被錄取到特定大學的概率。因為估計是概率,所以輸出是介於0和1之間的數字,其中1表示完全確定性。對於學生,如果估計的概率大於0.5,那麼我們預測他或她將被錄取。如果估計的概率小於0.5,我們預測他或她將被拒絕。

下圖顯示了之前學生的分數以及他們是否被錄取。Logistic回歸允許我們繪製一條代表決策邊界的線。

▲Logistic回歸決策邊界:是否入讀大學?

因為邏輯回歸是最簡單的分類模型,所以它是開始分類的好地方。隨著您的進步,您可以深入研究非線性分類器,例如決策樹,隨機森林,支持向量機和神經網絡等。

3 聚類

使用聚類方法,我們進入無監督ML的類別,因為它們的目標是對具有相似特徵的觀察進行分組或聚類。聚類方法不使用輸出信息進行訓練,而是讓算法定義輸出。在聚類方法中,我們只能使用可視化來檢查解決方案的質量。

最流行的聚類方法是K-Means,其中「K」表示用戶選擇創建的聚類數。(注意,有多種技術可以選擇K的值,例如彎頭法。)

粗略地說,K-Means對數據點的作用如下:

隨機選擇數據中的K個中心。將每個數據點分配給最接近的隨機創建的中心。重新計算每個群集的中心。如果中心沒有改變(或改變很少),則該過程結束。否則,我們返回到步驟2.(如果中心繼續更改,為了防止無限循環結束,請提前設置最大迭代次數。)下一個圖將K-Means應用於建築物的數據集。圖中的每一列都表明了每棟建築的效率。這四項測量涉及空調,插入式設備(微波爐,冰箱等),家用燃氣和加熱氣體。我們選擇K = 2進行聚類,這樣可以很容易地將其中一個聚類解釋為高效建築群,將另一個聚類解釋為低效建築群。在左側,您可以看到建築物的位置,在右側,您可以看到我們用作輸入的四個尺寸中的兩個:插入式設備和加熱氣體。

▲將建築物聚類為高效(綠色)和低效(紅色)組。

在探索聚類時,您將遇到非常有用的算法,例如基於密度的噪聲應用空間聚類(DBSCAN),均值偏移聚類,凝聚層次聚類,使用高斯混合模型的期望最大化聚類等。

4 降維

顧名思義,我們使用降維來從數據集中刪除最不重要的信息(有時是冗餘列)。在實踐中,我經常看到包含數百甚至數千列(也稱為特徵)的數據集,因此減少總數至關重要。例如,圖像可以包含數千個像素,而不是所有像素對您的分析都很重要。或者,在製造過程中測試微晶片時,可能會對每個晶片應用數千個測量和測試,其中許多晶片提供冗餘信息。在這些情況下,您需要降維算法以使數據集易於管理。

最流行的降維方法是主成分分析(PCA),它通過找到最大化數據線性變化的新向量來減小特徵空間的維數。當數據的線性相關性很強時,PCA可以顯著減小數據的維度,而不會丟失太多信息。(事實上,您還可以衡量信息丟失的實際程度並進行相應調整。)

另一種流行的方法是t-Stochastic Neighbor Embedding(t-SNE),它可以減少非線性維數。人們通常使用t-SNE進行數據可視化,但您也可以將其用於機器學習任務,例如減少特徵空間和聚類,僅舉幾例。

下一個圖顯示了手寫數字的MNIST資料庫的分析。MNIST包含數千個從0到9的數字圖像,研究人員用它們來測試它們的聚類和分類算法。數據集的每一行是原始圖像的矢量化版本(大小28×28 = 784)和每個圖像的標籤(零,一,二,三,......,九)。請注意,我們因此將維度從784(像素)減少到2(我們的可視化中的維度)。投影到兩個維度允許我們可視化高維原始數據集。

▲MNIST手寫數字資料庫的t-SNE迭代。

5 集成算法

想像一下,你決定製造一輛自行車,因為你對商店和網上的選擇感到不滿意。您可以從找到所需的每個部件的最佳部分開始。一旦你組裝了所有這些偉大的部件,最終的自行車將超越所有其他選項。

集成使用相同的想法,結合幾個預測模型(監督ML),以獲得比每個模型本身可以提供的更高質量的預測。例如,隨機森林算法是一種集成算法,它結合了許多用不同數據集樣本訓練的決策樹。因此,隨機森林的預測質量高於使用單個決策樹估計的預測質量。

將集成算法視為減少單個機器學習模型的方差和偏差的一種方法。這很重要,因為任何給定的模型在某些條件下可能是準確的,但在其他條件下可能不準確。使用另一個模型,相對精度可能會相反。通過組合這兩個模型,可以平衡預測的質量。

Kaggle比賽的絕大多數頂級獲勝者都使用某種方式的合奏方法。最流行的集成算法是隨機森林,XGBoost和LightGBM。

6 神經網絡與深度學習

與被認為是線性模型的線性和邏輯回歸相比,神經網絡的目標是通過向模型添加參數層來捕獲數據中的非線性模式。在下圖中,簡單神經網絡有四個輸入,一個帶有五個參數的隱藏層和一個輸出層。

實際上,神經網絡的結構足夠靈活,可以構建我們眾所周知的線性回歸和邏輯回歸。術語深度學習來自具有許多隱藏層的神經網絡(見下圖),並封裝了各種各樣的體系結構。

特別難以跟上深度學習的發展,部分原因是研究和行業社區的深度學習成果翻了一番,每天產生全新的方法論。 具有一個隱藏層的神經網絡。

▲深度學習:具有多個隱藏層的神經網絡。

為了獲得最佳性能,深度學習技術需要大量數據 - 以及大量計算能力,因為該方法可以在大型架構中自我調整許多參數。很快就會清楚為什麼深度學習從業者需要使用GPU(圖形處理單元)增強的非常強大的計算機。

特別是,深度學習技術在視覺(圖像分類),文本,音頻和視頻領域非常成功。最常見的深度學習軟體包是Tensorflow和PyTorch。

7 遷移學習

讓我們假裝您是零售行業的數據科學家。您花了幾個月的時間訓練高質量的模型,將圖像分類為襯衫,T恤和馬球。你的新任務是建立一個類似的模型,將服裝圖像分類為牛仔褲,貨物,休閒褲和正裝褲。您是否可以將內置的知識轉移到第一個模型中並將其應用到第二個模型中?是的,您可以使用遷移學習。

轉移學習是指重新使用先前訓練的神經網絡的一部分並使其適應新的但類似的任務。具體來說,一旦您使用任務數據訓練神經網絡,您可以傳輸一小部分訓練過的圖層,並將它們與您可以使用新任務的數據訓練的幾個新圖層組合在一起。通過添加幾個層,新的神經網絡可以快速學習並適應新任務。

遷移學習的主要優點是你需要更少的數據來訓練神經網絡,這一點尤為重要,因為深度學習算法的訓練在時間和金錢(計算資源)方面都是昂貴的 - 當然,通常很難找到足夠的標記數據用於訓練。

讓我們回到我們的例子,並假設對於襯衫模型,你使用一個有20個隱藏層的神經網絡。經過一些實驗後,您意識到您可以轉移18個襯衫模型層,並將它們與一個新的參數層相結合,以訓練褲子的圖像。因此褲子模型將有19個隱藏層。兩個任務的輸入和輸出是不同的,但是可重複使用的層可以概括與兩者相關的信息,例如布料,緊固件和形狀的方面。

遷移學習變得越來越流行,現在有許多可靠的預訓練模型可用於常見的深度學習任務,如圖像和文本分類。

8 強化學習

想像一下,迷宮中的老鼠試圖找到隱藏的奶酪片。我們將老鼠暴露在迷宮中的次數越多,找到奶酪就越好。起初,老鼠可能會隨機移動,但經過一段時間後,老鼠的體驗有助於它實現哪些動作更接近奶酪。

老鼠的過程反映了我們使用強化學習(RL)來訓練系統或遊戲。一般來說,RL是一種機器學習方法,可以幫助代理人從經驗中學習。通過在設定環境中記錄操作並使用試錯法,RL可以最大化累積獎勵。在我們的示例中,老鼠是代理,迷宮是環境。老鼠的可能操作集是:前移,後移,左移或右移。獎勵是奶酪。

當您幾乎沒有關於問題的歷史數據時,可以使用RL,因為它不需要事先提供信息(與傳統的機器學習方法不同)。在RL框架中,您可以隨時了解數據。毫不奇怪,RL在遊戲方面尤其成功,特別是像西洋棋和圍棋這樣的「 完美信息 」 遊戲。通過遊戲,來自代理和環境的反饋很快得以實現,使模型能夠快速學習。RL的缺點是,如果問題很複雜,可能需要很長時間才能進行訓練。

正如IBM的Deep Blue在1997年擊敗了最好的人類西洋棋選手一樣,基於RL算法的AlphaGo在2016年擊敗了最佳的圍棋玩家。目前RL的先驅者是英國DeepMind的團隊。更多關於AlphaGo和DeepMind的信息。

在2019年4月,OpenAI Five團隊是第一個擊敗世界冠軍電子競技Dota 2的人工智慧團隊,這是一個非常複雜的視頻遊戲,OpenAI Five團隊之所以選擇,因為沒有RL算法可以贏得它時間。擊敗Dota 2冠軍人類團隊的同一個AI團隊也開發了一個機器人手,可以重新定位一個塊。

你可以說強化學習是一種特別強大的人工智慧形式,我們肯定會看到這些團隊取得更多進展,但同樣值得記住方法的局限性。

9 自然語言處理

世界上很大一部分數據和知識都是某種形式的人類語言。你能想像能在幾秒鐘內閱讀和理解成千上萬的書籍,文章和博客嗎?顯然,計算機還不能完全理解人類文本,但我們可以訓練他們完成某些任務。例如,我們可以訓練手機自動填寫簡訊或糾正拼寫錯誤的單詞。我們甚至可以教一臺機器與人進行簡單的對話。

自然語言處理(NLP)本身不是一種機器學習方法,而是一種廣泛使用的技術,用於為機器學習準備文本。想想各種格式的大量文本文檔(單詞,在線博客,......)。大多數這些文本文檔將充滿拼寫錯誤,缺少字符和其他需要過濾的單詞。目前,最流行的文本處理包是由史丹福大學的研究人員創建的NLTK(自然語言工具包)。

將文本映射到數字表示的最簡單方法是計算每個文本文檔中每個單詞的頻率。考慮一個整數矩陣,其中每行代表一個文本文檔,每列代表一個單詞。字頻率的這種矩陣表示通常稱為術語頻率矩陣(TFM)。從那裡,我們可以通過將矩陣上的每個條目除以每個單詞在整個文檔集中的重要程度的權重來創建文本文檔的另一種流行矩陣表示。我們將此方法稱為術語頻率反向文檔頻率(TFIDF),它通常更適用於機器學習任務。

10 詞嵌入

TFM和TFIDF是文本文檔的數字表示,它們只考慮頻率和加權頻率來表示文本文檔。相比之下,Word嵌入可以捕獲文檔中單詞的上下文。對於單詞上下文,嵌入可以量化單詞之間的相似性,這反過來又允許我們對單詞進行算術。

Word2vec是一種基於神經網絡的方法,它將語料庫中的單詞映射成一個數字向量。然後,我們可以使用這些向量查找同義詞,對單詞執行算術操作,或者表示文本文檔(取文檔中所有單詞向量的平均值)。例如,假設我們使用足夠大的文本文檔來估計單詞嵌入。我們還假設王, 皇后, 男子漢和女是語料庫的一部分。就這麼說吧向量(字)表示單詞的數字向量。「字」..估計向量(「婦女」),我們可以使用向量執行算術操作:

向量(「King」)+向量(「婦女」) —向量(『man』)~向量(『皇后』)

單詞表示允許通過計算兩個單詞的向量表示之間的餘弦相似性來找到單詞之間的相似性。餘弦相似度測量兩個矢量之間的角度。

我們使用機器學習方法計算單詞嵌入,但這通常是在頂部應用機器學習算法的前提步驟。例如,假設我們可以訪問數千名Twitter用戶的推文。還假設我們知道這些Twitter用戶中哪些人買了房子。為了預測新Twitter用戶購買房屋的概率,我們可以將Word2Vec與邏輯回歸結合起來。

總結

我試圖涵蓋十種最重要的機器學習方法:從最基本的到最前沿的。很好地研究這些方法並充分理解每個方法的基礎知識可以作為進一步研究更先進的算法和方法的堅實起點。

當然,還有很多非常重要的信息需要報導,包括質量指標,交叉驗證,分類方法中的類不平衡以及過度擬合模型等等,僅舉幾例。敬請關注。

此博客的所有可視化都是使用Watson Studio Desktop完成的。

相關焦點

  • 每個數據科學家都應該知道的5種概率分布
    它們允許熟練的數據科學家識別其他完全隨機變量的模式。在某種程度上,大多數其他數據科學或機器學習技能都基於對數據概率分布的某些假設。這使得概率知識成為統計學家構建工具箱的基礎。如果您正在尋找如何成為數據科學家的第一步。不用多說,讓我們切入正題。什麼是概率分布?
  • 數據科學家應該知道的頂級機器學習算法
    機器學習算法簡介有兩種方法可以對您可能在現場遇到的機器學習算法進行分類。首先是按照學習風格對算法進行分組。第二個是通過形式或功能上的相似性對算法進行分組。通常,兩種方法都是有用的。但是,我們將專注於通過相似性進行算法分組,並瀏覽各種不同的算法類型。
  • 每個數據科學人都應該知道的7種回歸技術
    每種形式的回歸都有其自身的重要性和最適合應用的特定場景。在本文中,我會以簡單的方式解釋了數據科學中最常用的7種回歸形式。通過這篇文章,我也希望人們能夠對回歸的廣度有一個概念,而不是僅僅對他們遇到的每個問題應都用線性/邏輯回歸,並希望他們能夠使用這麼多的回歸技術!如果您是數據科學的新手,並且正在尋找一個開始學習的地方,那麼「 數據科學 」課程是一個很好的起點!
  • 分享最適合新手入門的10種機器學習算法
    如果我們知道的話就直接使用了,不需要再用機器學習算法從大量的數據中學習它。 最常見的機器學習類型是學習映射Y=f(X),用它來預測Y的值。這被稱為預測建模或預測分析,我們的目標是做出最準確的預測。 對於想了解機器學習基礎知識的新手,以下是數據科學家最常用的10種機器學習算法。
  • 10大機器學習算法,看懂你就是數據科學家
    想成為數據科學家?你得是個博聞強識,又對新鮮事物保持好奇心的人。正因為如此,數據科學家會掌握幾乎所有的常見算法,並精通其中一門,這樣可以快速適應新領域的問題。今天我們就來聊聊,每一位數據科技家都應該了解的10大機器學習算法。
  • 數據科學家必會10個統計分析方法
    著名求職網站Glassdoor根據龐大的就業數據和員工反饋信息,將數據科學家排名為美國最佳的25個工作之首。雖然名頭不小,但毫無疑問,數據科學家所做的具體工作是不斷發展變化的。隨著機器學習等技術越來越普及,像深度學習這樣的新興領域在研究人員、工程師以及聘用他們的公司中成為新寵,數據科學家們將繼續在創新浪潮和技術進步中嶄露頭角。
  • 每個人都應該知道的10種色彩搭配與技巧
    在上嘉,我們的目標是使所有人都可以訪問我們的內容,並獲得裝修方面的知識。因此,今天,我們將介紹每個準備裝修房子或正在裝修的業主都應該知道的色彩搭配原理與技巧。閱讀後,請確保將此連結存儲在易於訪問的位置。下次您不確定是否選擇了正確的油漆顏色時,它會派上用場。1.如何使用色輪色輪可能是您從小就學到並且從未想過的東西之一。
  • 入門| 機器學習新手必看10大算法
    如果我們知道的話,我們將會直接使用它,不需要用機器學習算法從數據中學習。 最常見的機器學習算法是學習映射 Y = f(X) 來預測新 X 的 Y。這叫做預測建模或預測分析,我們的目標是儘可能作出最準確的預測。 對於想了解機器學習基礎知識的新手,本文將概述數據科學家使用的 top 10 機器學習算法。
  • 機器學習初學者都應該知道的5類回歸損失函數
    最小化的函數稱為「損失函數」,損失函數衡量的是模型預測預期結果的能力,最常用的最小化損失函數的方法是「梯度下降法」,把損失函數想像成起伏的山脈,梯度下降法就像從山上滑下來到達最低點。沒有一個損失函數適用於所有類型的數據,它取決於許多因素,包括異常值的存在,機器學習算法的選擇,梯度下降法的時間效率和預測的置信度等。
  • Python機器學習10:機器學習中的六種分類算法及實現(上)
    在機器學習中,可以使用多種算法模型解決同一個問題,那麼如何從中選擇出最佳的算法模型呢?當然,這個問題沒有一種固定的答案,需要根據不同的問題,嘗試使用多種機器學習方法,比較各種算法模型在該問題上的效果,最終才能決定究竟選擇哪一種模型。
  • 數據科學家需要掌握的10個基本統計技術
    【IT168 編譯】無論您在數據的科學性問題上持哪種看法,都無法忽視數據的持續重要性,也不能輕視分析、組織和情境化數據的能力。 根據大量的就業數據和員工反饋信息統計,在「25個最佳美國就業機會」排行榜中,數據科學家排名第一。毫無疑問,數據科學家所做的具體工作內容將會進一步拓展。
  • 關鍵概念:每個數據科學家都應了解的5個概念
    多重共線性、獨熱編碼、欠採樣和過採樣、誤差度量以及敘事能力,這是筆者在想到專業數據科學家日常工作時首先想到的關鍵概念。敘事能力或許算是技能和概念的結合,但筆者在此還是想強調它在數據科學家工作中的重要性。我們開始吧!多重共線性多重共線性雖然看起來又長又拗口,拆開來看還是易於理解的。「多重」指數量多,「共線性」則意味著線性相關。
  • 新手請進:每個Python程式設計師都應該知道的10個縮寫詞
    學習過程中,我們會逐漸熟悉它的數據結構、控制流、類、函數和其他基本知識。還有一件有趣的事人們不常提起:我們時不時就會遇到Python中的各種首字母縮寫詞。本文將回顧十個這樣的縮寫詞,包括通用的編程原理以及特定的Python編碼,每個詞都有自己有用有趣的方面。1.
  • 9102年了,你還不知道怎麼做數據科學家嗎?
    這張圖是 2013 年繪製出來的,裡面甚至都沒有包括 TensorFlow,你完全可以在這張圖中找出幾種路線。我認為在當時那個時間,「數據科學家」這個概念就已經變得更加細分也更加專業化了。針對每個細分方向的「數據科學家」採用不同的學習方式可能會更好些。好的,你說的這些讓我心裡好受了些。所以我是否應該回學校學習專業知識呢?
  • 數據科學家們必須知道的5種聚類算法
    翻譯 | 姜波    整理 |  凡江  吳璇聚類是一種關於數據點分組的機器學習技術。給出一組數據點,我們可以使用聚類算法將每個數據點分類到特定的組中。理論上,同一組中的數據點應具有相似的屬性或特徵,而不同組中的數據點應具有相當不同的屬性或特徵(即類內差異小,類間差異大)。
  • 數據科學和機器學習面試問題集錦
    在過去的幾個月裡,我面試了許多公司涉及數據科學和機器學習的初級職位。介紹一下我自己,以讓你對我有一定了解。我還有最後幾個月就研究生畢業,我的碩士是機器學習和計算機視覺,我之前的大部分經驗是研究/學術,但在一個早期創業公司待過8個月(與機器學習無關)。這些角色包括數據科學、通用機器學習和專精自然語言處理及計算機視覺。
  • 新手必看的十種機器學習算法
    ,開始嘗試用某些機器學習方法自動解決可以輕鬆採集數據的問題。要判斷算法優劣,數據集的大小和結構等眾多因素都至關重要。所以,你應該針對你的問題嘗試不同的算法。然後使用保留的測試集對性能進行評估,選出較好的算法。當然,算法必須適合於你的問題。就比如說,如果你想清掃你的房子,你需要吸塵器,掃帚,拖把。而不是拿起鏟子去開始挖地。
  • 數據科學入門前需要知道的10件事
    如何成為數據科學家?成為數據科學家的規劃路線是什麼?我應該選什麼課程來學習數據科學?對於未知的學科,琳琅滿目的學習資源,美好的工作機會,應該怎樣去努力?本文作者是研究數據挖掘和生物醫學方向,目前就職於泰國的一所研究大學的全職生物信息學副教授。
  • 數據科學入門前需要知道的10件事
    成為數據科學家的規劃路線是什麼?我應該選什麼課程來學習數據科學?對於未知的學科,琳琅滿目的學習資源,美好的工作機會,應該怎樣去努力?本文作者是研究數據挖掘和生物醫學方向,目前就職於泰國的一所研究大學的全職生物信息學副教授。
  • 10本機器學習和數據科學的必讀書籍推薦
    雷鋒網按:Matthew Mayo 是知名數據科學網站 KDnuggets 的副主編,同時也是一位資深的數據科學家、深度學習技術愛好者,在機器學習和數據科學領域具有豐富的科研和從業經驗。近日,他在 KDnuggets 上推薦了一份機器學習和數據科學相關的免費必讀書單,雷鋒網特來與大家分享。