我拥有一个数据表和它的两个列产生一个情节,看起来像这样。请注意,Y轴是在日志中。
Don't mind the random Kanji. That's already fixed
我想这可能是一个好主意,显示通过使用TF和Keras通过机器学习产生非线性回归这种关系。代码如下所示:
def createModel():
model = Sequential()
model.add(Dense(50, activation='relu', input_dim=1))
model.add(Dense(25, activation='relu', input_dim=1))
model.add(Dense(1, activation='linear'))
return model
model1 = createModel()
model1.compile(SGD (lr=0.0001),loss='mse')
print(model1.summary())
Taisha_Learn=model1.fit(Heisei_Learn["竣工年月"],Heisei_Learn["平成27年まで詰めた堆砂容量_Percent"],batch_size=50, epochs=1000, validation_split=(0.08), verbose=2)
predictions = model1.predict(Heisei_Learn["竣工年月"], verbose=1)
plt.plot(Heisei_Learn["竣工年月"],predictions)
# plt.legend([ 'Predictated Y'])
plt.show()
该模型进行可怕的。损失几乎没有减少。随后,这是预测。
Absolutely horrible prediction
我已经打得四处不同的优化(亚当,RMSprop),学习有关的批量大小,没有积极的影响。我想着是否可能是一个数据问题,是由于异常值。我只是过滤它NaN的相应列。
Heisei = pd.read_excel("日本ダム/平成27.xlsx")
Heisei_Learn=Heisei.dropna(subset=['平成27年まで詰めた堆砂容量_Percent'])
我真的尝试了许多变化,但通常的损失看上去某事像这样:
必须有一个更好的方式来获得真正的非线性回归出来的数据。有没有关于他们......我必须改变?再次,PLZ看看张贴在原来的问题的图。这RLY乐不可支--. - ...
是否有任何像样的都来助阵愚蠢的人喜欢我?
既然你在回归设置,您的输出层的激活应该是线性的,并且绝对不使用SoftMax(其normaly仅用于分类);更改模型的最后一层
model.add(Dense(1, activation='linear'))
或者干脆
model.add(Dense(1))
因为默认激活(即,如果你不指定任何东西)是线性的(docs)。
这样做之后,开始绕0.001学习速率LR
值试验...