機器學習模型的效能提升仰賴多種最佳化技術,諸如特徵選擇、超引數調整、整合學習和正則化等方法,這些技術都能有效地提升模型的預測準確度和泛化能力。模型評估階段則需藉助適當的指標,例如混淆矩陣、精確度、召回率、F1 分數和 ROC 曲線等,來衡量模型的效能表現。提升曲線分析則提供更直觀的視覺化工具,尤其適用於評估分類別模型在不同閾值下的預測能力。

機器學習模型最佳化

在最佳化機器學習模型時,會使用多種技術來提高其效能。以下是幾個常見的最佳化技術:

1. 特徵選擇(Feature Selection)

特徵選擇是指從原始資料中選擇最相關的特徵,以提高模型的效能。

2. 超引數調整(Hyperparameter Tuning)

超引數調整是指調整模型的超引數,以提高其效能。

3. 整合學習(Ensemble Learning)

整合學習是指結合多個模型以提高整體效能。

4. 正則化(Regularization)

正則化是指在模型中新增一項項,以防止過擬合。

內容解密:

上述內容介紹了機器學習模型評估和最佳化的基本概念,包括類別混淆矩陣、錯誤率、精確度、召回率、F1 分數和 ROC 曲線等評估指標,以及特徵選擇、超引數調整、整合學習和正則化等最佳化技術。這些概念和技術是機器學習中非常重要的部分,希望讀者能夠深入瞭解和掌握。

  flowchart TD
    A[資料前處理] --> B[特徵選擇]
    B --> C[模型訓練]
    C --> D[模型評估]
    D --> E[超引數調整]
    E --> F[整合學習]
    F --> G[正則化]
    G --> H[模型最佳化]

圖表翻譯:

上述 Mermaid 圖表描述了機器學習模型最佳化的流程,包括資料前處理、特徵選擇、模型訓練、模型評估、超引數調整、整合學習和正則化等步驟。這個流程展示瞭如何從原始資料開始,逐步最佳化機器學習模型,以提高其效能和可靠性。

機器學習模型評估:提升曲線分析

在評估機器學習模型的效能時,提升曲線是一種重要的視覺化工具。它能夠清晰地展示模型在不同閾值下的預測能力,尤其是在分類別問題中。提升曲線通常用於評估模型對正類別(例如,延遲航班)的預測能力。

提升曲線的構成

提升曲線通常由兩條曲線組成:累積實際使用平均值和累積實際使用排序預測值。前者代表了模型在隨機情況下的預測結果,而後者則代表了模型根據預測值對例項進行排序後的預測結果。

案例分析:航班延遲預測

在航班延遲預測的案例中,提升曲線可以用來評估模型對延遲航班的預測能力。透過分析提升曲線,可以看到Naive Bayes分類別器在捕捉延遲航班方面的強大能力。這表明,即使是相對簡單的模型,也可以在特定的問題域中取得良好的效能。

Naive Bayes分類別器的優缺點

Naive Bayes分類別器是一種廣泛使用的機器學習演算法,它具有簡單、易於實作和計算效率高的優點。然而,它也有一些缺點,例如假設特徵之間的獨立性,這可能不總是成立。儘管如此,Naive Bayes分類別器在許多實際應用中仍然是一種有效的選擇,尤其是在資料特徵之間的相關性不是很強的情況下。

機器學習工作流程

一個典型的機器學習工作流程包括資料預處理、模型選擇、訓練和評估等步驟。對於Naive Bayes分類別器,工作流程還包括了特徵選擇和引數調整,以確保模型能夠最佳地適應問題域。

內容解密:

提升曲線是評估機器學習模型效能的一種重要方法,尤其是在分類別問題中。透過分析提升曲線,可以看到模型對正類別的預測能力。Naive Bayes分類別器是一種簡單 yet 效果良好的演算法,但它也有一些假設和限制。瞭解這些優缺點可以幫助我們更好地選擇和應用機器學習演算法。

  flowchart TD
    A[資料預處理] --> B[模型選擇]
    B --> C[訓練]
    C --> D[評估]
    D --> E[特徵選擇和引數調整]
    E --> F[模型最佳化]

圖表翻譯:

上述Mermaid圖表展示了機器學習工作流程中的主要步驟,從資料預處理到模型最佳化。每一步驟都對應著一個特定的任務,例如資料清洗、特徵工程、模型訓練和評估等。透過這個流程,可以系統地構建和最佳化機器學習模型,以解決特定的問題。

8.4 樸素貝氏分類別器的優點和缺點

樸素貝氏分類別器的優點在於其簡單、計算效率高、分類別效能良好,且能夠直接處理類別變數。事實上,即使在預測變數之間的獨立性假設遠未成立的情況下,它往往能夠超越更複雜的分類別器。尤其是在預測變數數量非常大的情況下,這個優點更加明顯。

然而,需要注意三個主要問題。首先,樸素貝氏分類別器需要大量的記錄才能取得良好的結果。第二,在訓練資料中不存在的預測變數類別,樸素貝氏分類別器會假設新記錄具有該類別的預測變數具有零機率。這可能是一個問題,如果該罕見的預測變數值很重要。例如,假設目標變數是購買高價值人壽保險,預測變數類別是擁有遊艇。如果訓練資料中沒有任何記錄擁有遊艇 = 1,對於任何新記錄擁有遊艇 = 1,樸素貝氏分類別器會將目標變數購買高價值人壽保險的機率分配為 0。

最後,當目標是分類別或根據記錄屬於某個類別的機率進行排名時,樸素貝氏分類別器表現良好。然而,當目標實際上是估計類別成員資格的機率(傾向)時,這種方法會提供非常偏差的結果。因此,樸素貝氏方法很少用於信用評分。

垃圾郵件過濾

垃圾郵件過濾是機器學習的一個廣泛熟知的應用。根據自然語言詞彙的垃圾郵件過濾,是一個天然適合於樸素貝氏分類別器的應用,因為它使用的是完全的類別變數。絕大多數的垃圾郵件過濾器都是根據這種方法的,它的工作原理如下:

  1. 人們審查大量的郵件,將它們分類別為「垃圾郵件」或「非垃圾郵件」,然後從中選出相同數量(也很大)的垃圾郵件和非垃圾郵件作為訓練資料。
  2. 這些郵件包含成千上萬的詞彙;對於每個詞彙,計算它在垃圾郵件資料集中出現的頻率,以及它在非垃圾郵件資料集中出現的頻率。將這些頻率轉換為估計機率。
  3. 如果一條新郵件只包含一個詞彙「免費」,我們會將其分類別為垃圾郵件,因為在給定「免費」這個詞彙的情況下,該郵件是垃圾郵件的後驗機率是 5/6。
  4. 當然,我們會考慮到更多的詞彙。對於每個這樣的詞彙,計算步驟 2 中描述的機率,並將它們相乘,然後應用公式(8.3)來確定樸素貝氏機率屬於哪個類別。
  5. 在一個更靈活的解釋中,「垃圾郵件」和「非垃圾郵件」機率之間的比率被視為一個評分,可以由操作員設定(和改變)一個截斷閾值——任何超過該水平的東西都被分類別為垃圾郵件。
  6. 使用者可以選擇建立一個個人化的訓練資料函式庫,並將它新增到訓練資料中。一人的垃圾郵件可能是另一個人的有用資訊。

很明顯,即使在「樸素」的簡化下,這也是一個巨大的計算負擔。垃圾郵件過濾器現在通常在兩個層次上運作——在伺服器端(攔截一些從未到達您電腦的垃圾郵件)和在個人電腦上(您可以檢視它)。傳送垃圾郵件的人也找到了一種方法來「汙染」根據詞彙的貝氏方法,方法是新增隨機選擇的詞彙。由於這些詞彙是隨機選擇的,因此它們不太可能系統地在垃圾郵件中比在非垃圾郵件中更普遍,並且它們會稀釋像「維亞格拉」和「免費」這樣的關鍵垃圾郵件詞彙的效果。因此,複雜的垃圾郵件分類別器也包括根據與詞彙以外的元素的變數,例如訊息中的連結數、主題行中的詞彙、確定「發件人:」電子郵件地址是否是真正的發起者(反欺騙)、使用 HTML 和影像,以及動態或靜態 IP 地址(後者更昂貴,不能快速設定)。

問題

8.1 個人貸款接受

UniversalBank.xlsx 檔案包含了 Universal Bank 5000 位客戶的資料。資料包括客戶人口統計資訊(年齡、收入等)、客戶與銀行的關係(按揭、證券賬戶等)以及客戶對最近個人貸款活動的反應。在這 5000 位客戶中,只有 480 位(= 9.6%)接受了之前活動中提供給他們的個人貸款。在本練習中,我們關注兩個預測變數:Online(客戶是否是活躍的網上銀行服務使用者)和 Credit Card(客戶是否持有由玄貓發行的信用卡),以及結果 Personal Loan(縮寫為 Loan)。

將資料分割為訓練集(60%)和驗證集(40%)。

a. 建立一個具有 Online 作為列變數、CC 作為行變數以及 Loan 作為次要行變數的ivot 表格,以訓練資料為基礎。單元格內的值應傳達計數(有多少記錄位於該單元格中)。

b. 考慮一下對於一位擁有銀行信用卡且活躍使用網上銀行服務的客戶進行分類別的任務。檢視ivot 表格,什麼是該客戶接受貸款Offer 的機率?[這是貸款接受(Loan = 1)的機率,條件是擁有銀行信用卡(CC = 1)且是網上銀行服務的活躍使用者(Online = 1)]。

c. 建立兩個單獨的ivot 表格,以訓練資料為基礎。一個將具有 Loan(行)作為 Online(列)的函式,另一個將具有 Loan(行)作為 CC(列)的函式。

d. 計算以下量度 [P(A|B) 意味著「A 給定 B 的機率」]:

i. P(CC = 1|Loan = 1) (貸款接受者中信用卡持有者的比例)

ii. P(Online = 1|Loan = 1)

iii. P(Loan = 1) (貸款接受者的比例)

iv. P(CC = 1|Loan = 0)

v. P(Online = 1|Loan = 0)

vi. P(Loan = 0)

e. 使用上述計算出的量度來計算樸素貝氏機率 P(Loan = 1|CC = 1, Online = 1)。

f. 將此值與從交叉ivot 表格中獲得的值進行比較。(b)。哪一個是更準確的估計?

g. 在 ASDM 中,在資料上執行樸素貝氏方法。檢查「訓練資料詳細報告」,並找到與 P(Loan = 1|CC = 1, Online = 1) 相對應的條目。將其與您在 (e) 中獲得的數字進行比較。

分類別與迴歸樹

分類別與迴歸樹是一種靈活的資料驅動方法,可以用於分類別(稱為分類別樹)和預測(稱為迴歸樹)。在資料驅動方法中,樹是最透明和易於解釋的。樹是根據將觀察值分成子群體的方法,透過這些分割建立邏輯規則,這些規則是透明和易於理解的。

9.1

如果要選擇一個分類別技術,該技術可以在廣泛的情況下表現良好,而無需分析師付出太多努力,並且易於被理解,那麼樹方法將是一個強有力的競爭者。樹可以用於分類別和預測,我們先討論分類別程式,然後在後面的章節中展示如何將程式擴充套件到數值預測。

樹的建構

樹的建構根據遞迴分割和修剪。遞迴分割是指將觀察值分成子群體的過程,而修剪是指剪枝的過程,以避免過度適應。樹演算法中有一些流行的同質性度量,用於確定子群體的同質性。

修剪

修剪是一種有用的策略,用於避免過度適應。我們展示瞭如何進行修剪,以及其他避免過度適應的替代策略。與其他資料驅動方法一樣,樹需要大量的資料。但是一旦構建完成,樹就可以快速佈署,即使在大樣本上也很便宜。樹還有一些其他優點,例如高度自動化、對異常值具有健壯性和可以處理缺失值。

隨機森林和提升樹

我們介紹了隨機森林和提升樹,這些方法結合了多個樹的結果,以提高預測能力。隨機森林和提升樹可以用於分類別和預測,並且已經被證明是非常有效的方法。

程式碼範例

  graph TD
    A[開始] --> B[遞迴分割]
    B --> C[修剪]
    C --> D[樹建構]
    D --> E[預測]

圖表翻譯

此圖示範了樹的建構過程,從遞迴分割到修剪,最後到樹建構和預測。

個人資料分析

基本資料

  • 年齡:58
  • 性別:男性(假設)
  • 身高:172 cm(假設,根據平均身高)
  • 體重:64 kg(假設,根於平均體重)

家庭狀況

  • 家庭成員數:2.5 人(假設,包含自己)
  • 家庭收入:$112,710 美元(或等值貨幣)
  • 家庭結構:核心家庭(假設)

教育背景

  • 教育程度:大學畢業(假設)
  • 教育年數:14 年(假設,小學6年,初中3年,高中3年,大學2年)

社會關係

  • 家庭關係:1(假設,代表有一個核心家庭)
  • 社交圈:10 人(假設)
  • 朋友數量:2.5 人(假設,代表有一個核心社交圈)

經濟狀況

  • 個人收入:$92,500 美元(或等值貨幣)
  • 家庭收入佔比:0.5(假設,代表個人收入佔家庭收入的50%)

個人特質

  • 個性開放度:1.5(假設,代表有一定的開放度)
  • 教育投資:1(假設,代表有一定的教育投資)

其他資訊

  • 其他相關資料:1227、273、10、2.5、1.5、1、10、2.5、0、92.5、0.5

內容解密:

上述內容是一個個人資料分析的例子,包含了基本資料、家庭狀況、教育背景、社會關係、經濟狀況和個人特質等方面。這些資料可以用於瞭解一個人的生活狀況、家庭背景和個人特質等。

  graph LR
    A[基本資料] --> B[家庭狀況]
    B --> C[教育背景]
    C --> D[社會關係]
    D --> E[經濟狀況]
    E --> F[個人特質]

圖表翻譯:

上述Mermaid圖表展示了個人資料分析的流程。從基本資料開始,然後是家庭狀況、教育背景、社會關係、經濟狀況,最後是個人特質。這個流程可以幫助我們瞭解一個人的生活狀況和個人特質等。

分類別樹在銀行客戶貸款評估中的應用

分類別樹是一種廣泛使用的機器學習演算法,尤其是在銀行客戶貸款評估中。它透過建立一棵樹狀結構來對客戶進行分類別,根據客戶的特徵(如收入、教育程度、家庭狀況等)決定是否批准貸款。

分類別樹結構

分類別樹由兩種節點組成:決策節點(Decision Node)和終端節點(Terminal Node)。決策節點用於根據特定特徵對客戶進行分類別,而終端節點則代表最終的分類別結果。每個決策節點都有一個特定的分裂值,根據這個值,客戶會被分配到左子節點或右子節點。

決策規則

分類別樹的優勢之一是它可以提供易於理解的決策規則。例如,根據圖9.1中的樹,可以得出以下規則:如果客戶的收入大於或等於114.5,並且教育程度小於1.5,且家庭狀況小於2.5,那麼該客戶被歸類別為非貸款接受者(0)。

分類別新觀察

要分類別一個新觀察,需要將其「丟」到樹中,並根據決策節點的分裂值將其導向最終的終端節點。然後,根據終端節點中訓練資料的「投票」(或平均值,如果結果是數值型),可以為新觀察賦予一個類別。例如,如果新觀察到達圖9.1中的最右端終端節點,並且該節點中絕大多數觀察屬於貸款接受者類別,那麼新觀察將被分類別為「貸款接受者」。

Mermaid 圖表

  flowchart TD
    A[開始] --> B[收入 >= 114.5?]
    B -->|是| C[教育程度 < 1.5?]
    B -->|否| D[拒絕貸款]
    C -->|是| E[家庭狀況 < 2.5?]
    C -->|否| F[接受貸款]
    E -->|是| G[拒絕貸款]
    E -->|否| H[接受貸款]

圖表翻譯:

上述Mermaid圖表展示了一個簡單的分類別樹,根據收入、教育程度和家庭狀況對銀行客戶進行分類別。圖表中的每個決策節點代表了一個特定的分裂條件,而終端節點則代表最終的分類別結果。

內容解密:

分類別樹是一種強大的工具,能夠根據複雜的條件對客戶進行分類別。透過建立一棵樹狀結構,企業可以根據客戶的特徵對其進行分類別,並根據這些分類別結果做出相應的商業決策。然而,需要注意的是,分類別樹的複雜度會隨著樹的深度而增加,因此需要謹慎地選擇合適的樹深度,以避免過度擬合。

分類別樹簡介

分類別樹是一種重要的機器學習演算法,廣泛應用於各種領域。以下是分類別樹的基本概念和工作原理。

分類別樹的兩個關鍵思想

  1. 遞迴分割:分類別樹透過遞迴地將預測變數的空間分割成非重疊的多維矩形來工作。
  2. 剪枝:使用驗證資料來剪枝,避免過度擬合。

遞迴分割

假設我們有一個結果變數(response變數)和多個預測變數(predictor變數)。分類別樹透過遞迴地將預測變數的空間分割成非重疊的多維矩形來工作。這個過程從選擇一個預測變數和一個分割值開始,然後根據這個分割值將空間分割成兩個部分。然後,對每個部分重複這個過程,直到得到足夠純潔的矩形。

案例:騎乘草坪機

假設有一家騎乘草坪機製造商想要找到一個方法來將城市中的家庭分類別為可能購買騎乘草坪機和不可能購買騎乘草坪機的兩類別。透過隨機抽樣24個家庭,收集了他們的土地面積、收入和是否擁有騎乘草坪機的資料。

  flowchart TD
    A[開始] --> B[選擇預測變數]
    B --> C[選擇分割值]
    C --> D[分割空間]
    D --> E[遞迴分割]
    E --> F[得到純潔矩形]

內容解密:

  • 選擇預測變數:首先,需要選擇一個預測變數來進行分割。這個預測變數應該是與結果變數最相關的變數。
  • 選擇分割值:然後,需要選擇一個分割值來將空間分割成兩個部分。這個分割值應該是能夠最大化兩個部分之間的差異的值。
  • 分割空間:根據選擇的預測變數和分割值,將空間分割成兩個部分。
  • 遞迴分割:對每個部分重複上述過程,直到得到足夠純潔的矩形。
  • 得到純潔矩形:最終,得到了一個純潔的矩形,即所有樣本點都屬於同一類別的矩形。

圖表翻譯:

此圖示為遞迴分割的流程圖。它展示瞭如何透過遞迴地將預測變數的空間分割成非重疊的多維矩形來進行分類別。每個步驟都對應著一個特定的操作,例如選擇預測變數、選擇分割值、分割空間等。最終,得到了一個純潔的矩形,即所有樣本點都屬於同一類別的矩形。

家庭收入與房產面積關係分析

在探討家庭收入與房產面積的關係時,我們需要考慮多個因素,包括家庭收入、房產面積、以及房屋所有權狀態。以下是一個簡單的資料集,展示了12個家庭的收入、房產面積,以及是否擁有騎乘式割草機。

資料集

家庭編號家庭收入(千美元)房產面積(千平方英尺)房屋所有權
160.018.4擁有
285.516.8擁有
364.821.6擁有
461.520.8擁有
587.023.6擁有
6110.119.2擁有
7108.017.6擁有
882.822.4擁有
969.020.0擁有
1093.020.8擁有
1151.022.0擁有
1281.020.0擁有

分析

從資料中可以看出,所有家庭都擁有自己的房屋,這意味著房屋所有權對於這些家庭來說是一個共同的特徵。家庭收入和房產面積之間的關係可以透過相關分析來研究。

相關分析

import pandas as pd

# 資料集
data = {
    '家庭收入(千美元)': [60.0, 85.5, 64.8, 61.5, 87.0, 110.1, 108.0, 82.8, 69.0, 93.0, 51.0, 81.0],
    '房產面積(千平方英尺)': [18.4, 16.8, 21.6, 20.8, 23.6, 19.2, 17.6, 22.4, 20.0, 20.8, 22.0, 20.0]
}

df = pd.DataFrame(data)

# 計算相關係數
correlation = df['家庭收入(千美元)'].corr(df['房產面積(千平方英尺)'])

print(f'家庭收入與房產面積的相關係數:{correlation}')

內容解密

上述程式碼使用Python的Pandas函式庫來計算家庭收入和房產面積之間的相關係數。相關係數是一個統計量,用於衡量兩個變數之間的線性關係。相關係數的值範圍從-1到1,1表示完全正相關,-1表示完全負相關,0表示無線性關係。

圖表視覺化

  flowchart TD
    A[家庭收入] --> B[房產面積]
    B --> C[相關係數]
    C --> D[線性關係]

圖表翻譯

此Mermaid圖表展示了家庭收入、房產面積和相關係數之間的關係。圖表從左到右展示了這三個變數之間的邏輯流程:家庭收入影響房產面積,然後透過計算相關係數來評估這兩個變數之間的線性關係。

從技術架構視角來看,本文討論的機器學習模型最佳化技術,涵蓋了從特徵選擇、超引數調整到整合學習和正則化的多個層面。分析顯示,特徵選擇能有效降低模型複雜度並提升泛化能力,而超引數調整則是在特定資料集上追求極致效能的關鍵。整合學習透過結合多個模型的預測結果,能有效降低偏差和方差,提升模型的穩定性。然而,整合學習的計算成本較高,需要權衡效能提升與資源消耗。正則化技術則能有效地抑制過擬合,提升模型在未知資料上的表現,但需要仔細選擇正則化引數以避免欠擬合。展望未來,自動化機器學習(AutoML)技術將在模型最佳化過程中扮演更重要的角色,尤其是在超引數調整和模型選擇方面。對於追求高效能的機器學習應用,建議結合特徵工程、整合學習和AutoML技術,並根據具體業務場景調整最佳化策略。玄貓認為,深入理解不同最佳化技術的優缺點和適用場景,才能在實務中構建出效能卓越且穩定的機器學習模型。