我想使用神经网络拟合一个函数,输出为0/1。 请帮我找到最好的方法。
实际上我想知道MATLAB中的拟合函数,特别是在神经网络工具箱中。我不知道哪种方法适合用二进制输出建模函数。
无论如何,在MATLAB中我还能获得权重吗?
答案 0 :(得分:3)
如果你有binary classification task(0/1输出),那么你可以训练一个NN,它有两个输出节点,每个类一个,诀窍是在输出节点上使用logistic function这样它总是在[0,1]
范围内(如果你使用NEWPR
函数,这是默认值)。它可以被解释为概率,然后您可以使用默认值0.5
作为阈值,或者使用ROC curves为您的案例找到更好的阈值。
请参阅this post以获取MATLAB中学习XOR二元运算符的简单示例。
答案 1 :(得分:0)
通常神经网络用于决策,所以0/1答案就是你想要的:“是”或“否”。
为了实际适合网络,人们使用两组已知会产生“是”和“否”的答案。然后计算Type I and Type II errors的速率(通常称为纯度和1-效率)作为网络参数的函数。
这些函数的值介于0和1之间。拟合的目标是找到一组网络参数,这些参数在I类和II类错误之间产生可接受的平衡,同时使它们尽可能小。