假设我有一个机器学习模型,该模型接受输入{X1 ... Xn}和输出y。如何在不迭代所有X值的情况下找到y的最大和最小点?
如果机器学习模型是线性回归,则有一个函数,因此问题很简单。我可以使用渐变并获得每个功能的最高/最低。
如果机器学习模型是神经网络,那么就没有泛化模型的功能。暴力是唯一的解决方案吗?
如果输出是y,那么很容易找到最大值或最小值,您可以简单地将其视为一个numpy数组,并使用numpy.min()
和numpy.max()
函数。
如果用输出表示最后一层的权重或最后一层的概率输出(softmax激活/ S型激活),那么您必须查找该特定库的文档(tensorflow,keras,pytorch等)。 。
对于大多数库,您可以获得每层(包括中间层)的输出。
在keras中,很容易获得softmax / Sigmoid激活输出。只需使用功能model.predict
而不是model.predict_classes
。