美文网首页
评估机器学习模型

评估机器学习模型

作者: 庵下桃花仙 | 来源:发表于2019-03-24 22:42 被阅读0次

机器学习的目的是得到泛化(generalize)的模型,因此,解决过拟合很重要。

训练集、验证集、测试集

将数据分为三个集合:训练集、验证集、测试集。在训练集上训练模型,验证集上评估模型,一旦找到最佳参数,在测试集上最后测试模型。

为什么不划分为两个集合,仅有训练集和测试集?

因为开发模型时需要调节模型配置,通过模型在验证集上的性能来调节超参数(hyperparameter),这样就导致验证集的信息泄露(informationo leak)到模型中,很快导致模型在验证集上过拟合。而我们最需要的是模型在全新数据上的性能。
如果数据较少,有三种经典的评估方法:

  • 简单的留出验证;
  • K折验证;
  • 带有打乱数据的重复K折验证。

简单的留出验证

简单的留出验证数据划分.PNG
# 留出验证
num_validation_samples = 10000

np.random.shuffle(data) # 打乱数据

validation_data = data[:num_validation_samples] # 定义验证集
data = data[num_validation_samples:]

training_data = data[:] # 定义训练集

model = get_model()
model.train(training_data) # 在训练数据上训练模型
validation_score = model.evaluate(validation_data) # 在验证数据上评估模型

# 现在你可以调节模型、重新训练、评估,然后再次调节......

model = get_model()
model.train(np.concatenate([training_data,
                            validation_data])) #一旦调节好超参数,
# 通常在所有非测试数据是哪个从头开始训练最终模型
test_score = model.evaluate(test_data)

缺点:如果数据较少,无法在统计学上代表数据。表现为不同的随机打乱,最终得到的模型性能差别很大。
解决方法:
1、K折验证;
2、重复的 K 折验证。
np.random.shuffle(x)
https://blog.csdn.net/brucewong0516/article/details/79012233

#现场修改序列,改变自身内容。(类似洗牌,打乱顺序)
In [30]: arr = np.arange(10)
In [31]: np.random.shuffle(arr)
In [32]: arr
Out[32]: array([5, 2, 7, 0, 6, 3, 4, 1, 8, 9])
#对多维数组进行打乱排列时,默认是对第一个维度也就是列维度进行随机打乱
In [37]: arr = np.arange(12).reshape(3,4)
In [38]: arr
Out[38]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
#将多维数组打乱
In [39]: np.random.shuffle(arr)
In [40]: arr
Out[40]:
array([[ 4,  5,  6,  7],
       [ 0,  1,  2,  3],
       [ 8,  9, 10, 11]])

相关文章

  • Spark机器学习笔记

    Spark机器学习笔记 机器学习 机器学习是数据通过算法构建出模型并对模型进行评估,评估的性能如果达到要求就拿这个...

  • 一文深度解读模型评估方法

    本文将总结机器学习最常见的模型评估指标。训练学习好的模型,通过客观地评估模型性能,才能更好实际运用决策。模型评估主...

  • 【Spark Mllib】性能评估 ——MSE/RMSE与MAP

    推荐模型评估 本篇我们对《Spark机器学习1.0:推荐引擎——电影推荐 》模型进行性能评估。 MSE/RMSE ...

  • 【百面机器学习】优化算法

    机器学习算法 = 模型表征 + 模型评估 + 优化算法。不同的优化算法对应的模型表征和评估指标分别为线性分类模型和...

  • 机器学习模型评估指标示例

    选择正确的度量来评估机器学习模型 我们什么时候评估我们的机器学习模型呢?答案不是只有一次。通常,我们在实际的数据科...

  • C#机器学习之判断日报是否合格

    简单来说机器学习的核心步骤在于“获取学习数据;选择机器算法;定型模型;评估模型,预测模型结果”,下面本人就以判断日...

  • 机器学习模型评估

    1.训练集测试集划分方案 a)留出法hold-out 直接将原始数据集D划分为两个互斥集合,其中一个作为训练集S,...

  • 机器学习-模型评估

    1.归纳偏好 机器学习算法在学习过程中对某种类型假设的偏好,称为归纳偏好。 *两种决策 适用情形尽可能少(经验误差...

  • 【机器学习】①模型评估

  • 评估机器学习模型

    机器学习的目的是得到泛化(generalize)的模型,因此,解决过拟合很重要。 训练集、验证集、测试集 将数据分...

网友评论

      本文标题:评估机器学习模型

      本文链接:https://www.haomeiwen.com/subject/atvpvqtx.html