首頁人工智能常見問題正文

LR和SVM的聯(lián)系與區(qū)別是什么?

更新時間:2023-10-19 來源:黑馬程序員 瀏覽量:

  邏輯回歸(Logistic Regression,LR)和支持向量機(Support Vector Machine,SVM)都是監(jiān)督學習算法,用于分類問題。它們有一些共同點,但也有明顯的區(qū)別。下面將詳細說明它們之間的聯(lián)系和區(qū)別,并提供Python代碼示例來演示它們的用法。

  聯(lián)系:

  1.用途:LR和SVM都用于二元分類和多類分類問題。

  2.線性分類器:LR和SVM都是線性分類器,它們試圖找到一個分割超平面來將不同類別的數(shù)據(jù)分開。

  區(qū)別:

  1.損失函數(shù):

  (1)LR使用對數(shù)損失函數(shù)(Logistic Loss),也稱為交叉熵損失函數(shù)。

  (2)SVM使用合頁損失函數(shù)(Hinge Loss)。

  2.決策邊界:

  (1)LR的決策邊界是一條直線(在二維空間中)或一個超平面(在多維空間中),它嘗試最大程度地擬合數(shù)據(jù)分布。

  (2)SVM的決策邊界是支持向量,它是離決策邊界最近的數(shù)據(jù)點,SVM嘗試最大化這些支持向量與決策邊界的距離。

  3.輸出值:

  (1)LR輸出類別的概率,可以用于估計數(shù)據(jù)點屬于某一類的概率。

  (2)SVM輸出是樣本點到?jīng)Q策邊界的距離,沒有直接的概率解釋。

  4.魯棒性:

  (1)LR對噪聲和異常點比較敏感,容易過擬合。

  (2)SVM在決策邊界附近的支持向量上更加魯棒,對噪聲的容忍性更好。

  下面是使用Python的scikit-learn庫演示如何使用LR和SVM進行分類:

# 導入必要的庫
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.datasets import make_classification

# 創(chuàng)建一個模擬數(shù)據(jù)集
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)

# 創(chuàng)建和訓練邏輯回歸模型
lr = LogisticRegression()
lr.fit(X, y)

# 創(chuàng)建和訓練支持向量機模型
svm = SVC(kernel='linear')
svm.fit(X, y)

# 畫出數(shù)據(jù)點和決策邊界
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()

# 繪制邏輯回歸的決策邊界
xx, yy = np.meshgrid(np.linspace(xlim[0], xlim[1], 50), np.linspace(ylim[0], ylim[1], 50))
Z = lr.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, alpha=0.8)

plt.title("Logistic Regression Decision Boundary")
plt.show()

# 繪制支持向量機的決策邊界
xx, yy = np.meshgrid(np.linspace(xlim[0], xlim[1], 50), np.linspace(ylim[0], ylim[1], 50))
Z = svm.decision_function(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, levels=[-1, 0, 1], alpha=0.8)

plt.title("Support Vector Machine Decision Boundary")
plt.show()

  這段代碼創(chuàng)建了一個模擬數(shù)據(jù)集,使用邏輯回歸和支持向量機訓練了兩個不同的分類器,并繪制了它們的決策邊界。您可以看到LR的決策邊界是一條直線,而SVM的決策邊界是支持向量附近的線。這個示例可以幫助我們理解LR和SVM之間的一些區(qū)別。

分享到:
在線咨詢 我要報名
和我們在線交談!