機器學習的邏輯回歸:完整指南

已發表: 2021-10-04

機器學習模型需要算法才能工作。 根據一組條件,特定的 ML 模型可以使用一種或另一種算法表現最佳。 因此,機器學習工程師和愛好者應該了解可以在不同環境中使用的不同類型的算法——知道何時使用哪種算法。 機器學習中從來沒有一個萬能的解決方案,使用不同的算法進行調整可以提供所需的結果。

例如,您必須已經了解線性回歸。 但是,該算法不能應用於分類因變量。 這就是邏輯回歸派上用場的地方。

在機器學習中,邏輯回歸是一種監督學習方法,用於預測因變量或目標變量的概率。 使用邏輯回歸,您可以預測並建立因變量與一個或多個自變量之間的關係。

邏輯回歸方程和模型通常用於二進制分類的預測分析。 您還可以將它們用於多類分類。

以下是機器學習的邏輯回歸方程的樣子:

logit(p) = ln(p/(1-p)) = h0+h1X1+h2X2+h3X3….+hkXk

在哪裡;

p = 特徵出現的概率

x1,x2,..xk = 輸入特徵集

h1,h2,….hk = 要在 Logistic 回歸方程中估計的參數值。

目錄

機器學習中邏輯回歸模型的類型

根據 Logistic Regression 的使用方式, Logistic Regression 模型的類型可分為以下幾類:

1. 二元邏輯回歸模型

這是邏輯回歸中最常用的回歸模型之一。 它有助於將數據分為兩類,並將新輸入的值預測為屬於這兩類中的任何一類。 例如,患者的腫瘤可以是良性的也可以是惡性的,但絕不可能兩者兼而有之。

2. 多項邏輯回歸模型

該模型有助於將目標變量分為兩個以上的類別——無論任何定量意義如何。 這方面的一個例子可能是根據個人的飲食偏好和過去的經驗來預測個人可能訂購的食物類型。

加入來自世界頂級大學的在線機器學習課程——碩士、高管研究生課程和 ML 和 AI 高級證書課程,以加快您的職業生涯。

3. 序數邏輯回歸模型

該模型用於對目標變量進行分類。 例如,學生在考試中的表現可以按等級順序分為差、好和優秀。 這樣,數據被分為三個不同的類別,每個類別都具有特定的重要性級別。

邏輯回歸方程可用於多種情況,例如垃圾郵件檢測、腫瘤分類、性別分類等等。 讓我們看一下機器學習中邏輯回歸方程的兩個最常見的示例用例,以幫助您更好地理解。

邏輯回歸方程的示例用例

示例 1:識別垃圾郵件

如果電子郵件是垃圾郵件,則考慮類別 1,如果電子郵件不是,則考慮類別 0。 為了檢測這一點,從郵件正文中分析了多個屬性。 這些包括:

  • 發件人
  • 拼寫錯誤
  • 電子郵件中的關鍵字,例如“銀行詳細信息”、“幸運”、“獲勝者”、“恭喜”。
  • 電子郵件中的聯繫方式或 URL

然後可以將提取的數據輸入機器學習的邏輯回歸方程,該方程將分析所有輸入並提供 0 到 1 之間的分數。如果分數大於 0 但小於 0.5,則電子郵件將被歸類為垃圾郵件,並且如果分數在 0.5 到 1 之間,則郵件被標記為非垃圾郵件。

示例 2:識別信用卡欺詐

使用邏輯回歸方程或基於邏輯回歸的機器學習模型,銀行可以迅速識別欺詐性信用卡交易。 為此,PoS、卡號、交易價值、交易數據等詳細信息被輸入邏輯回歸模型,該模型決定給定交易是真實的 (0) 還是欺詐的 (1)。 例如,如果購買價值太高且偏離典型值,回歸模型會分配一個值(介於 0.5 和 1 之間),將交易歸類為欺詐。

機器學習中邏輯回歸的工作

邏輯回歸通過使用 Sigmoid 函數將預測映射到輸出概率來工作。 此函數是一條 S 形曲線,繪製介於 0 和 1 之間的預測值。然後將值繪製到 Y 軸頂部和底部的邊緣,使用 0 和 1 作為標籤。 然後,根據這些值,可以對自變量進行分類。

下面是 Sigmoid 函數的樣子:

Sigmoid 函數基於以下等式:

y=1/(1+e^x)

其中 e^x= 值為 2.718 的指數常數。

如果 x 被認為是負數,則上面的 Sigmoid 函數方程將預測值 (y) 提供為零。 如果 x 是一個很大的正數,則預測值接近 1。

在 Python 中構建邏輯回歸模型

讓我們來看看在 Python 中構建邏輯回歸模型的過程。 為此,讓我們使用社交網絡數據集進行回歸分析,並嘗試預測個人是否會購買特定汽車。 這是步驟的外觀。

第 1 步:導入庫和數據集

它首先導入構建模型所需的庫。 這包括 Pandas、Numpy 和 Matplotlib。 我們還需要導入我們將使用的數據集。 代碼如下所示:

將 numpy 導入為 np

將 matplotlib.pyplot 導入為 pt

將熊貓導入為 pd

數據集 = pd.read_csv('Social_Network.csv')

第 2 步:拆分為因變量和自變量

現在是時候將輸入的數據拆分為因變量和自變量了。 對於這個例子,我們將在個人估計工資和年齡作為自變量期間將購買價值視為因變量。

x = dataset.iloc[:, [2,3]].values

y = dataset.iloc[:, 4].values

第 3 步:將數據集拆分為訓練集和測試集

必須將數據集拆分為特定的訓練和測試集。 訓練集將訓練邏輯回歸方程,而測試數據將用於驗證模型的訓練並對其進行測試。 Sklearn 用於將給定的數據集分成兩組。 我們通過指定我們希望為訓練和測試留出的數據量來使用 train_split_function。

從 sklearn.model_selection 導入 train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.33, random_state = 0)

如您所見,我們將測試大小定義為完整數據集的 33%。 因此,剩下的 66% 將用作訓練數據。

第 4 步:縮放

為了提高 Logistic 回歸模型的準確性,您需要重新調整數據並帶來本質上可能變化很大的值。

從 sklearn.preprocessing 導入 StandardScaler

sc_X = 標準縮放器()

X_train = sc_X.fit_transform(X_train)

X_test = sc_X.transform(X_test)

第 5 步:構建邏輯回歸模型

完成後,您需要構建邏輯回歸模型並將其放入訓練集中。 首先從 Sklearn 導入邏輯回歸算法。

從 sklearn.linear_model 導入 LogisticRegression

然後,創建一個實例分類器來擬合訓練數據。

分類器 = LogisticRegression(random_state=0)

分類器.fit(x_train, y_train)

接下來,在測試數據集上創建預測。

y_pred = 分類器.predict(x_test)

最後,使用混淆矩陣檢查邏輯回歸模型的性能。

從 sklearn.metrics 導入混淆矩陣

厘米 = 混淆矩陣(y_test,y_pred)

acc = accuracy_score(y_test, y_pred)

打印(acc)

打印(厘米)

現在,您可以使用 Matplotlib 可視化整個數據集,包括訓練集和測試集!

綜上所述

邏輯回歸是有助於開發機器學習模型和算法的工具之一。 同樣,根據手頭的用例,還可以使用多種其他算法。 但是,要知道使用哪種算法,您應該了解所有可能的選項。 只有這樣,您才能為您的數據集選擇最合適的算法。

查看我們的機器學習執行 PG 計劃,該計劃旨在讓您從零開始,幫助您將技能提升到最高水平 - 以便您能夠解決任何現實世界的機器學習問題。 查看不同的課程並註冊適合您的課程。 加入 upGrad 並體驗全面的學習環境和安置支持!

機器學習的邏輯回歸有多少種可能?

邏輯回歸大致分為三種類型:
1.二進制
2.多項式
3. 序數。

什麼是機器學習中的邏輯回歸?

邏輯回歸是一種監督學習方法,用於尋找和建立因變量和自變量之間的最​​佳擬合關係,以做出正確的未來預測。

機器學習的邏輯回歸使用什麼功能?

機器學習的邏輯回歸使用 Sigmoid 函數來找到最佳擬合曲線。