Zeile Code in Frage:Überlauf/math Bereichsfehler für log oder exp
summing += yval * np.log( sigmoid(np.dot(w.transpose(),xi.transpose())))
+(1-yval)* np.log(max(0.001, 1-sigmoid(np.dot(w.transpose(),xi.transpose()))))
Fehler:
File "classify.py", line 67, in sigmoid
return 1/(1+ math.exp(-gamma))
OverflowError: math range error
Die Sigmoidfunktion ist nur 1/(1+ math.exp(-gamma))
.
Ich bekomme einen mathematischen Bereichsfehler. Wer sieht warum?
Überprüfen Sie den Wert von 'gamma'. Wenn "-gamma" größer als etwa 709 ist, erhalten Sie diesen Fehler. –
... und falls es unklar ist: das "warum" ist, exp() verwendet eine große Bandbreite sehr schnell – comingstorm
Siehe http://stackoverflow.com/questions/21106134/numpy-pure-functions-for-performance- Caching/21106536 # 21106536 für einige Informationen über die Sigmoid-Funktion in scipy. –