python - 精度分数:比较训练数据与测试数据
问题描述
不知何故,我不明白为什么我的测试数据的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()
我用两个完全相似的数据集验证了模型/分类器,这或多或少地给了我来自测试集的分数。但是为什么训练数据集的精度这么低呢?其他参数的行为相同。
解决方案
推荐阅读
- arrays - 如何在postgresql中删除多维数组
- python - Python烧瓶内部html格式
- javascript - Javascript 生成器,如果评估 yield 表达式
- python - 有没有办法解决这个关于 StratifiedShuffleSplit 的错误?
- node.js - 使用 multer 上传文件
- jenkins - 如何卸载 Jenkins MacOS
- kubernetes - 如何在域中公开 Kubernetes minikube 应用程序
- next.js - 为什么Next.js 中的组件无法预取?
- kotlin - 在一个响应中发送多个不同类型的 Flux
- python - 创建的 Pdf 文件引发以下错误,文件响应没有读取属性