机器学习 - 周志华

本书作为机器学习领域的入门教材,在内容上尽可能涵盖机器学习基础知识的各方面,包括决策树、神经网络、支持向量机、贝叶斯分类器、集成学习、聚类等经典方法。
关于作者
周志华 是机器学习领域的权威专家:
- 南京大学教授:长期从事机器学习和人工智能研究
- ACM/AAAI/IEEE Fellow:国际人工智能学会会士
- 教育部长江学者:国家级人才计划特聘教授
- 《机器学习》作者:该书被誉为中国机器学习领域的"圣经"
周志华教授因其在机器学习领域的杰出贡献,被同行亲切地称为"西瓜教授"(因其教材中常用"挑西瓜"举例)。
核心内容
1. 模型评估与选择
# 留出法 (Hold-out)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=42, stratify=y
)
# 交叉验证 (Cross-Validation)
from sklearn.model_selection import cross_val_score, KFold
kf = KFold(n_splits=10, shuffle=True, random_state=42)
scores = cross_val_score(model, X, y, cv=kf, scoring='accuracy')
print(f"平均准确率:{scores.mean():.3f}")
# 留一法 (Leave-One-Out)
from sklearn.model_selection import LeaveOneOut
loo = LeaveOneOut()
scores = cross_val_score(model, X, y, cv=loo)
# 性能度量指标
from sklearn.metrics import (
accuracy_score, precision_score, recall_score, f1_score,
roc_auc_score, confusion_matrix, classification_report
)
# 查准率 (Precision)、查全率 (Recall)、F1 分数
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
# ROC 曲线与 AUC
from sklearn.metrics import roc_curve, auc
fpr, tpr, _ = roc_curve(y_true, y_score)
roc_auc = auc(fpr, tpr)