基于python的ANN多输出回归问题,应该如何处理输入数据和选择损失函数呢?
具体的数据类型如下:输入4个特征,输出两个回归值。
单输出回归问题,我是这样写的:
import和数据导入的部分省略了
X = data.loc[:,'X1':'X4']
y = data.loc[:,'y1']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1, random_state = 1)
model = MLPRegressor(solver = 'lbfgs',hidden_layer_sizes = (6,7), random_state = 123, max_iter = 10000)
model.fit(X_train_s,y_train)
可是多输出回归的时候,我把输入训练的数据这样写:
X = data.loc[:,'X1':'X4']
y = data.loc[:,'y1':'y2']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1, random_state = 1)
model = MLPRegressor(solver = 'lbfgs',hidden_layer_sizes = (6,7), random_state = 123, max_iter = 10000)
model.fit(X_train_s,y_train)
虽然能够训练,但损失函数一直不降(基于keras的也试了,也是不行。损失函数是mse)
请问进行神经网络的训练时,多输出该怎么处理数据,损失函数该怎么写呢,keras或skilearn中有现成的吗?还是需要自己编写呢?
谢谢!