在机器学习中,模型评估是衡量算法性能的关键步骤。scikit-learn
(简称sklearn
)提供了一套全面的模型评估工具,帮助开发者量化模型的准确性、健壮性和其他重要特性。本文将详细介绍sklearn
中的模型评估指标,并通过代码示例展示如何应用这些指标。
模型评估指标是理解和改进模型性能的基础。它们可以提供以下信息:
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建分类器实例并训练模型
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
# 预测测试集
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
# 输出混淆矩阵
conf_matrix = confusion_matrix(y_test, y_pred)
print(f"Confusion Matrix:\n{conf_matrix}")
# 输出分类报告
class_report = classification_report(y_test, y_pred)
print(f"Classification Report:\n{class_report}")
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
from sklearn.linear_model import LinearRegression
# 创建回归模型实例并训练
reg = LinearRegression()
reg.fit(X_train, y_train)
# 预测测试集
y_pred_reg = reg.predict(X_test)
# 计算MSE
mse = mean_squared_error(y_test, y_pred_reg)
print(f"MSE: {mse}")
# 计算RMSE
rmse = mse ** 0.5
print(f"RMSE: {rmse}")
# 计算MAE
mae = mean_absolute_error(y_test, y_pred_reg)
print(f"MAE: {mae}")
# 计算R²分数
r2 = r2_score(y_test, y_pred_reg)
print(f"R² Score: {r2}")
sklearn
的模型评估指标为开发者提供了一套强大的工具来衡量和比较不同模型的性能。通过本文的学习,你现在应该对如何使用sklearn
进行模型评估有了深入的理解。
记住,选择合适的评估指标并正确解释结果对于构建有效的机器学习模型至关重要。继续探索sklearn
的评估工具,你将能够更加自信地评估和优化你的模型。