0
我想找到最少y = mx + b
這樣y > f(x)
。如何找到比我所有數據點都大的最小線性函數?
基本上,我已經得到了數據的藍,我想找到的功能在紅:
效率,而不是完全準確,是很重要的。我試過線性迴歸,但是它給出了一個與數據相交的值。
此外,我使用的是Java,但問題應該足夠普遍,因爲這沒關係。
紅色函數會被調用什麼,以及什麼是計算它的有效方法?
我想找到最少y = mx + b
這樣y > f(x)
。如何找到比我所有數據點都大的最小線性函數?
基本上,我已經得到了數據的藍,我想找到的功能在紅:
效率,而不是完全準確,是很重要的。我試過線性迴歸,但是它給出了一個與數據相交的值。
此外,我使用的是Java,但問題應該足夠普遍,因爲這沒關係。
紅色函數會被調用什麼,以及什麼是計算它的有效方法?
這可以通過例如用一種稱爲「約束優化BY線性近似(COBYLA)」的方法。 Scipy有一個FORTRAN實現的python包裝器。您可以指定任意數量的約束函數,例如強制該擬合始終大於數據。
如果你可以對「最少線」做更精確的描述,這可能會有所幫助。例如,假設你的數據在中間有一個最大值。然後,通過最大值的水平線將高於您的所有數據,但您可以將其旋轉一下以獲得最大值,並且stil在數據上方有一行。其中哪一個是最低的? – dmuir