我觉得这个问题有一个显而易见的,简单的解决方案,但我可能忽略了。
假设我有一个模型 f ,它依赖于某些输入 x 和一个参数集 p 来生成二进制分类输出 y 。我现在使用线性模型作为 f ,但是我想保持体系结构的灵活性,以便将来可以轻松替换神经网络或非线性模型。
我的问题是,不是训练模型来生成产生最高精度的最优参数集 p ,有没有一种方法可以根据手动插入的参数来计算模型的精度?我问的原因是因为我想分析一种整体方法,而不是拟合多个模型并平均/权衡它们的预测,而是想绕过训练并从指定分布中计算随机采样参数集 p 的准确性。
换句话说,我想指定如下内容:
model = linear
parameter_set = p #manually inserted array/distribution of possible parameters
sample_params = np.random.choice(parameter_set, size=100, replace=True) #a subset of the true parameter set
我现在需要计算样本参数的所有100个精度,就好像它们是100个独立模型一样,并基于某些条件拒绝它们。重要的是,我只想评估训练集上的模型。我查看了许多库,并在sklearn.model_selection中使用 validation_curve 和 gridsearch 找到了一些接近的东西,但是validate_curve也会评估测试集,而gridsearch会搜索最佳参数。我还研究了交叉验证技术,lmfit,scipy.optimize.curve_fit等。我知道我可以手动编写函数以及计算精度并使用参数集遍历该函数并根据我指定的阈值逐步拒绝的函数,但这显然违背了我要执行的操作的目的
我只是在检查是否有一个漂亮的说法:这是一个模型的体系结构,这是参数集,这是数据,请告诉我每个精度是多少,并拒绝具有以下含义的参数集/模型例如,精度小于0.5。任何想法或建议,将不胜感激。