首页 > 解决方案 > 精度分数:比较训练数据与测试数据

问题描述

不知何故,我不明白为什么我的测试数据的precision_score 比火车数据的高。

prec_test = []
prec_train = []
mds = np.arange(1, 10, 1)

for md in mds:

   model = HistGradientBoostingClassifier(max_depth = md, random_state = 42)
   model.fit(X_train, y_train) 

   y_prec_test = model.predict(X_test)  
   y_prec_train = model.predict(X_train)  

   prec_test.append(precision_score(y_test, y_pred_test))
   prec_train.append(precision_score(y_train, y_pred_train))

fig, ax = plt.subplots()
sns.lineplot(x=mds, y=prec_test, ax=ax, label='test', color='b')
sns.lineplot(x=mds, y=prec_train, ax=ax, label='train', color='r')
ax.set(xlabel='max_depth', ylabel='precision')
plt.show()

图像验证曲线

我用两个完全相似的数据集验证了模型/分类器,这或多或少地给了我来自测试集的分数。但是为什么训练数据集的精度这么低呢?其他参数的行为相同。

标签: pythonscikit-learn

解决方案


推荐阅读