0
私はPythonを初めて使い、パラメータ最適化にCMA-ES関数を適用したいと考えています。私はRでCMA_ESパッケージを使用していましたが、この例の実装は単純明快です。今ではPythonでの実装はあまり明確ではありません。CMA-ESパラメータの最適化Python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
itr=np.array([ 803.3333,788.3333,779.5000,765.8333,753.3333,735.8333,
717.6666,704.6666,691.6666])
Tcell=np.array([39.5333,38.5499, 37.7999,37.5999,
38.3333,37.4166,37.4166,37.3833,36.5666])
#### THE MODEL######
def pvwatts2(Pdc0,gammapdc,Tref):
return itr/1000*Pdc0*(1+gammapdc*(Tcell-Tref))
r=(pvwatts2(75,-0.005,25))
####THE ORIGINAL DATA########
P=np.array([55.7666,54.6817,54.2812,
53.6679,52.6567,51.4856,50.4057,49.3098,48.8929])
#####RMSE#########
def RMSE(gammapdc):
return np.sqrt(((pvwatts2(75,gammapdc,25)-P)**2).mean())
print(RMSE(-0.005))# This is the value of RMSE 0.253590052077
ここで、PythonのCMAESの助けを借りてRMSEを最小限に抑えたいと思います。私は、gammapdcの理想的な値は、-0.005付近でなければならないことを知っています.RMSEの値は最小です。
########################### MINIMIZING THE RMSE WITH CMA_ES########
import cma
help(cma.fmin)
私にとっては、関数を使用してgamapdcの値を取得してRMSEを最小限に抑える方法が明確ではありません。どんな提案も感謝します。再現可能な例がありますか?