模型的评估方法

模型评估方法主要有三种:留出法交叉验证法自助法。这三个方法都需要将数据集分为测试集和训练集,用测试集的“测试误差”来近似模型的泛化误差。当然测试集和训练集应该尽可能做到互斥,这样得到的模型才具有较好的泛化性能。

1.留出法

留出法就是将数据集D直接划分为互斥的两个集合,分别作为训练集S和测试集T。用测试集T的测试误差来估计模型的泛化误差。

数据的划分比例一般是:2/3~4/5比例的样本用于训练,剩下的样本用于测试。

样本划分时要尽量保持数据分布的一致性,至少保留类别比例的相似,避免引入偏差。保留类别比例的采样通常称为“分层采样”(stratified sampling)。

给定样本划分比例后,数据集D的划分方式任然可以有多种,为了使得估计结果更加稳定可靠,应进行多次重复试验,取多次评估结果的平均值。

可以用sklearn中的StratifiedShuffleSplit函数进行实现,当然自己也可以简单地写一个。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sklearn.model_selection import StratifiedShuffleSplit
import numpy as np
X = np.array([[0, 1], [0, 2], [0, 3], [1, 8], [1,9], [1,10]])
y = np.array([0, 0, 0, 1, 1, 1])
#测试集的比例为0.333,采用分层抽样。且随机进行5次
sss = StratifiedShuffleSplit(n_splits=5, test_size=0.333)

for train_index, test_index in sss.split(X, y):
    print("TRAIN:", train_index, "TEST:", test_index)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

结果:

2.交叉验证法

交叉验证法是将数据集D划分为k份大小近似的互斥子集,同时尽可能做到数据分布的一致性(分层采样)。
每次用k-1个子

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值