不同型号如何选择?
评估机器学习的过程有助于确定模型的应用可靠性和有效性。这涉及评估不同的因素,例如其性能、指标以及预测或决策的准确性。
无论您选择使用什么模型,您都需要一种在模型之间进行选择的方法:不同的模型类型、调整参数和功能。此外,您还需要一个模型评估程序来估计模型对未见过的数据的泛化能力。最后,您需要一个评估程序来与其他程序配合使用,以量化您的模型性能。
在我们继续之前,让我们回顾一下一些不同的模型评估程序及其运作方式。
从上面我们可以推断出:
对相同数据进行训练和测试是过度拟合的一个典型原因,在这种情况下,您构建的模型过于复杂,无法泛化到新数据,而且实际上没有用处。
Train_Test_Split 可以更好地估计样本外性能。
通过系统地进行 K 次训练测试分割并将结果平均在一起,K 折交叉验证效果更好。
总之,train_tests_split 由于其速度和简单性,对于交叉验证来说仍然是有利可图的,这就是我们将在本教程中使用的内容。
您始终需要一个评估指标来配合您选择的程序,并且您选择的指标取决于您要解决的问题。对于分类问题,可以使用分类精度。但我们将在本指南中重点关注其他重要的分类评估指标。
在我们学习任何新的评估指标之前,让我们回顾一下分类准确性,并讨论它的优点和缺点。
我们为本教程选择了皮马印第安人糖尿病数据集,其中包括 768 名患者的健康数据和糖尿病状况。
让我们读取数据并打印前 5 行数据。如果患者患有糖尿病,则标签栏显示 1,如果患者没有糖尿病,则标签栏显示 0,我们要回答的问题是:
问题: 我们可以根据患者的健康测量结果预测其糖尿病状况吗?
我们定义特征度量 X 和响应向量 Y。我们使用 train_test_split 将 X 和 Y 分成训练集和测试集。
接下来,我们在训练集上训练逻辑回归模型。在拟合步骤中,logreg 模型对象正在学习 X_train 和 Y_train 之间的关系。最后我们对测试集进行类预测。
现在,我们已经对测试集进行了预测,我们可以计算分类准确率,简单来说就是正确预测的百分比。
但是,每当您使用分类准确性作为评估指标时,将其与空准确性进行比较非常重要,这是通过始终预测最频繁的类别可以获得的准确性。
空准确率回答了问题;如果我的模型能够 100% 地预测主要类别,那么它正确的概率是多少?在上面的场景中,y_test 的 32% 为 1(个)。换句话说,预测患者患有糖尿病的愚蠢模型68% 的时间是正确的(即零)。这提供了一个基线,我们可能希望根据该基线来衡量逻辑回归模型。
当我们比较 68% 的空精度和 69% 的模型精度时,我们的模型看起来不太好。这表明分类准确性作为模型评估指标的一个弱点。分类准确性并不能告诉我们有关测试测试的基本分布的任何信息。
总结:
现在让我们看看混淆矩阵。
混淆矩阵是描述分类模型性能的表格。
它有助于帮助您了解分类器的性能,但它不是模型评估指标;所以你不能告诉 scikit learn 选择具有最佳混淆矩阵的模型。然而,有很多指标可以从混淆矩阵中计算出来,并且可以直接用于在模型之间进行选择。
让我们解释一下它的一些基本术语。
让我们看看如何计算指标
结论:
以上是评估机器学习分类模型的详细内容。更多信息请关注PHP中文网其他相关文章!