深度学习:参数选择与结果解读

我有一个多类别(7个标签)的分类问题,使用多层感知机(MLP)实现。我试图根据一些数据对7种癌症进行分类。整体准确率相当低,约为58%。然而,在不同的参数设置下,某些癌症的分类准确率约为90%。下文中,癌症1、2、3等代表不同类型的癌症,例如1=乳腺癌,2=肺癌等。现在,对于不同的参数设置,我得到了不同的分类准确率。例如,

1. 超参数

    learning_rate = 0.001    training_epochs = 10    batch_size = 100    hidden_size = 256    #整体准确率53%,癌症2准确率91%,癌症5准确率88%,癌症6准确率89%

2. 超参数

    learning_rate = 0.01    training_epochs = 30    batch_size = 100    hidden_size = 128    #整体准确率56%,癌症2准确率86%,癌症5准确率93%,癌症6准确率75%

如您所见,对于不同的参数设置,我得到了完全不同的结果。癌症1、3、4、7的准确率非常低,因此我将它们排除在外。但癌症2、5、6的效果相对较好。然而,对于癌症6,结果根据参数设置的不同而有很大变化。

重要的一点是,这里整体准确率并不重要,但如果我能以超过90%的准确率分类2-3种癌症,这更重要。所以我的问题是,我该如何解读这些结果?在我的论文中,我应该如何展示这些结果?我应该展示/使用哪些参数设置?或者我应该为不同类型的癌症展示不同的参数设置?所以,基本上,如何处理这种情况?


回答:

数据不平衡?

你首先需要问自己的问题是,你的数据集是平衡的,还是存在数据不平衡?我指的是,你的训练和测试数据集中每个类别的实例有多少?

假设,例如,假设你数据集中90%的实例都是癌症2,其余10%分布在其他类别上。那么,你可以很容易地通过实现一个非常简单的分类器,将所有内容都分类为癌症2,从而获得90%的准确率。但这可能不是你想要的分类器结果。

结果解读

我建议报告混淆矩阵,而不是仅仅报告原始准确率数字。这将提供一些关于分类器将哪些类别混淆为哪些其他类别的信息,这可能很有趣(例如,如果不同类型的癌症经常被混淆,它们可能在某种程度上是相似的)。特别是如果你有数据不平衡,我还建议报告其他指标,如精确度和/或召回率,而不仅仅是准确率。

使用/展示哪些参数设置?

这取决于你真正想要解决的问题。每个类别的正确检测是否同样重要?如果是,那么整体准确率可能是最重要的指标。某些类别是否比其他类别更重要,需要准确检测?在这种情况下,你可能需要考虑“成本敏感分类”,其中不同的分类错误有不同的成本。如果你不知道(没有这个领域知识),我建议报告尽可能多的不同设置和指标。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注