model.score
1. 具体解释
model.score(X_test, y_test)
是许多机器学习库(如 scikit-learn
)中模型评估的一个常用方法。它用于评估模型在测试集上的性能。具体来说,对于分类任务,它通常返回模型的准确度(accuracy
),即正确分类的样本数与总样本数之比。对于回归任务,它返回 R² 分数
,表示模型对数据的拟合程度。
2.具体用法例子——python:
我有一个已经训练好的模型 model
,以及相应的测试数据 X_test
和 y_test
。你可以使用以下代码来评估模型的性能:
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
# 生成模拟的回归数据
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建并训练模型
model = LinearRegression()
model.fit(X_train, y_train)
# 评估模型在测试集上的性能
score = model.score(X_test, y_test)
print(f"Model score: {score}")
在这个例子中,model.score(X_test, y_test)
会返回模型在测试集上的 R² 分数。
3.内部的公式:
对于分类任务
,model.score
通常会计算准确度(accuracy),公式如下:
Accuracy = 正确分类的样本数 总样本数 \text{Accuracy} = \frac{\text{正确分类的样本数}}{\text{总样本数}} Accuracy=总样本数正确分类的样本数
对于回归任务
,model.score
通常会计算 R² 分数(决定系数),公式如下:
R 2 = 1 − 残差平方和 总平方和 R^2 = 1 - \frac{\text{残差平方和}}{\text{总平方和}} R2=1−总平方和残差平方和
其中,残差平方和是模型预测值与实际值之差的平方和,总平方和是实际值与其均值之差的平方和。R² 分数越接近 1,表示模型对数据的拟合程度越好。