gpt4 book ai didi

Python:使用 MLPRegressor 拟合 3D 函数

转载 作者:行者123 更新时间:2023-11-30 09:20:00 25 4
gpt4 key购买 nike

我正在尝试使用 MLPRegressor 来拟合预定义的 3D 函数。问题是我无法打印正确的结果,因此我的拟合在绘制时看起来很糟糕。

其功能如下:

def threeDFunc(xin,yin):
z = np.zeros((40,40))
for xIndex in range(0,40,1):
for yIndex in range(0,40,1):
z[xIndex,yIndex]=(np.exp(-(xin[xIndex]**2+yin[yIndex]**2)/0.1))
return z



xThD = np.arange(-1,1,0.05)
yThD = np.arange(-1,1,0.05)
zThD = threeDFunc(xThD, yThD)

3Dplot

上面的图是它的近似值。

3Dplot with approximation

红色就是它的作用。

代码如下所示:

classifier = neural_network.MLPRegressor(hidden_layer_sizes=(200, 200), activation='logistic', learning_rate='adaptive')

xy = np.array((xThD.flatten(),yThD.flatten()))

classifier.fit(np.transpose(xy), zThD)

pre = classifier.predict(np.transpose(xy))

import pylab
from mpl_toolkits.mplot3d import Axes3D

fig = pylab.figure()
ax = Axes3D(fig)
X, Y = np.meshgrid(xThD, yThD)
ax.plot_wireframe(X, Y, zThD)
ax.plot_wireframe(X, Y, pre, color='red')
print(np.shape(zThD))
print(np.shape(pre))
plt.show()

最佳答案

使用 activation='tanh' 将激活函数更改为双曲 tan 函数,使用 solver='lbfgs' 将求解器更改为 lbfgs。

如果您的分类器实例化如下所示,则红色和蓝色的图应该几乎相同:

classifier = neural_network.MLPRegressor(hidden_layer_sizes=(200, 200), solver='lbfgs', activation='tanh', learning_rate='adaptive')

关于Python:使用 MLPRegressor 拟合 3D 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43225813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com