網(wǎng)站建設(shè) 公司 常州seo設(shè)置是什么
二分類與多分類:概念與區(qū)別
二分類和多分類是分類任務(wù)的兩種類型,區(qū)分的核心在于目標(biāo)變量(label)的類別數(shù):
-
二分類:目標(biāo)變量 y?只有兩個(gè)類別,通常記為 y∈{0,1} 或 y∈{?1,1}。
示例:垃圾郵件分類(垃圾郵件或非垃圾郵件)。 -
多分類:目標(biāo)變量 y?包含三個(gè)或更多類別,記為 y∈{1,2,…,K}。
示例:手寫數(shù)字識(shí)別(類別為 0 到 9 的數(shù)字)。
1. 二分類問題
特征與目標(biāo)
- 輸入:特征向量
。
- 輸出:目標(biāo) y ∈ {0,1}。
- 模型預(yù)測(cè):預(yù)測(cè)值為類別 1 的概率
。
模型與算法
-
常用模型:
- 邏輯回歸
- 支持向量機(jī)(SVM)
- 決策樹
- 隨機(jī)森林
- 神經(jīng)網(wǎng)絡(luò)(二分類輸出層使用 Sigmoid 激活)
-
損失函數(shù):
- 對(duì)數(shù)似然損失(Log-Likelihood Loss):
- 對(duì)數(shù)似然損失(Log-Likelihood Loss):
-
評(píng)估指標(biāo):
- 準(zhǔn)確率(Accuracy)
- 精確率(Precision)
- 召回率(Recall)
- F1 分?jǐn)?shù)(F1-Score)
- AUC-ROC 曲線
案例代碼
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, roc_auc_score# 生成二分類數(shù)據(jù)
# 參數(shù)說明:n_samples=100表示生成100個(gè)樣本,n_features=4表示數(shù)據(jù)有4個(gè)特征,n_classes=2表示二分類問題,
# n_informative=2表示其中2個(gè)特征是有信息的,n_redundant=1表示1個(gè)特征是冗余的,n_repeated=0表示沒有重復(fù)的特征,
# random_state=0表示隨機(jī)種子,保證結(jié)果可重復(fù)
X, y = make_classification(n_samples=100, n_features=4, n_classes=2, n_informative=2, n_redundant=1, n_repeated=0,random_state=0)# 數(shù)據(jù)集劃分
# 將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,test_size=0.2表示測(cè)試集占20%,random_state=42保證劃分結(jié)果可重復(fù)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用邏輯回歸模型進(jìn)行訓(xùn)練
# 初始化邏輯回歸模型
model = LogisticRegression()
# 使用訓(xùn)練集數(shù)據(jù)擬合模型
model.fit(X_train, y_train)
# 預(yù)測(cè)測(cè)試集的類別
y_pred = model.predict(X_test)
# 預(yù)測(cè)測(cè)試集的正類概率
y_prob = model.predict_proba(X_test)[:, 1]# 評(píng)估模型性能
# 輸出測(cè)試集的準(zhǔn)確率
print("Accuracy:", accuracy_score(y_test, y_pred))
# 輸出測(cè)試集的AUC-ROC分?jǐn)?shù)
print("AUC-ROC:", roc_auc_score(y_test, y_prob))
輸出結(jié)果
Accuracy: 0.9
AUC-ROC: 0.9090909090909091
2. 多分類問題
特征與目標(biāo)
- 輸入:特征向量
。
- 輸出:目標(biāo)
。
- 模型預(yù)測(cè):預(yù)測(cè)每個(gè)類別的概率
,所有類別概率之和為 1。
模型與算法
-
常用模型:
- Softmax 回歸(多類別邏輯回歸)
- 決策樹與隨機(jī)森林
- 梯度提升樹(如 XGBoost、LightGBM)
- 神經(jīng)網(wǎng)絡(luò)(輸出層使用 Softmax 激活)
-
損失函數(shù):
- 交叉熵?fù)p失(Cross-Entropy Loss):
,k? 是樣本 i?被預(yù)測(cè)為類別 k?的概率。
- 交叉熵?fù)p失(Cross-Entropy Loss):
-
評(píng)估指標(biāo):
- 準(zhǔn)確率(Accuracy)
- 混淆矩陣(Confusion Matrix)
- 平均精確率、召回率與 F1 分?jǐn)?shù)(Macro / Micro / Weighted)
案例代碼
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report# 生成二分類數(shù)據(jù)
# 參數(shù)說明:n_samples=100表示生成100個(gè)樣本,n_features=4表示數(shù)據(jù)有4個(gè)特征,n_classes=2表示二分類問題,
# n_informative=2表示其中2個(gè)特征是有信息的,n_redundant=1表示1個(gè)特征是冗余的,n_repeated=0表示沒有重復(fù)的特征,
# random_state=0表示隨機(jī)種子,保證結(jié)果可重復(fù)
X, y = make_classification(n_samples=100, n_features=4, n_classes=2, n_informative=2, n_redundant=1, n_repeated=0,random_state=0)# 數(shù)據(jù)集劃分
# 將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,test_size=0.2表示測(cè)試集占20%,random_state=42保證劃分結(jié)果可重復(fù)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化隨機(jī)森林分類器模型
model = RandomForestClassifier()# 使用訓(xùn)練集數(shù)據(jù)擬合模型
model.fit(X_train, y_train)# 使用擬合好的模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè)
y_pred = model.predict(X_test)# 評(píng)估
# 輸出模型的準(zhǔn)確率
print("Accuracy:", accuracy_score(y_test, y_pred))
# 輸出模型的分類報(bào)告,包含精確度、召回率、F1分?jǐn)?shù)等指標(biāo)
print("Classification Report:\n", classification_report(y_test, y_pred))
輸出結(jié)果
Accuracy: 0.9
Classification Report:precision recall f1-score support0 1.00 0.82 0.90 111 0.82 1.00 0.90 9accuracy 0.90 20macro avg 0.91 0.91 0.90 20
weighted avg 0.92 0.90 0.90 20
3. 二分類與多分類的區(qū)別
屬性 | 二分類 | 多分類 |
---|---|---|
目標(biāo)變量 | y∈{0,1} | y∈{1,2,…,K} |
損失函數(shù) | 對(duì)數(shù)似然損失 | 交叉熵?fù)p失 |
預(yù)測(cè)輸出 | 類別 0 或 1 的概率 | 每個(gè)類別的概率分布 |
模型復(fù)雜度 | 相對(duì)簡單 | 更復(fù)雜,需要考慮類別間關(guān)系 |
評(píng)估指標(biāo) | 精確率、召回率、AUC 等 | 混淆矩陣、宏平均 F1 等 |
4. 注意事項(xiàng)
-
模型選擇:
- 對(duì)于二分類問題,許多模型(如邏輯回歸、SVM)內(nèi)置支持;
- 多分類問題可通過**一對(duì)多(OvR)或多對(duì)多(OvO)**策略,將多分類問題分解為多個(gè)二分類問題。
-
不平衡數(shù)據(jù):
- 二分類和多分類中,不平衡數(shù)據(jù)都會(huì)導(dǎo)致評(píng)估指標(biāo)偏差,需要關(guān)注 AUC 或調(diào)整權(quán)重。
-
概率解釋:
- 二分類中概率直接表示為某一類別的置信度;
- 多分類中概率分布表示樣本屬于每個(gè)類別的可能性。
總結(jié)而言,二分類和多分類的問題框架和方法類似,但多分類問題需要更復(fù)雜的模型和損失函數(shù)來捕捉類別間關(guān)系,是分類任務(wù)中的重要延伸!