python实例 优化目标函数_浅谈keras中的目标函数和优化函数MSE用法

mean_squared_error / mse 均方误差,常用的目标函数,公式为((y_pred-y_true)**2).mean()

model = Sequential()

model.add(Dense(64, init='uniform', input_dim=10))

model.add(Activation('tanh'))

model.add(Activation('softmax'))

sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)

model.compile(loss='mean_squared_error', optimizer=sgd)

补充知识:(Keras)——keras 损失函数与评价指标详解

1、目标函数

(1)mean_squared_error / mse 均方误差,常用的目标函数,公式为((y_pred-y_true)**2).mean()

(2)mean_absolute_error / mae 绝对值均差,公式为(|y_pred-y_true|).mean()

(3) mean_absolute_percentage_error / mape公式为:(|(y_true - y_pred) / clip((|y_true|),epsilon, infinite)|).mean(axis=-1) * 100,和mae的区别就是,累加的是(预测值与实际值的差)除以(剔除不介于epsilon和infinite之间的实际值),然后求均值。

(4)mean_squared_logarithmic_error / msle公式为: (log(clip(y_pred, epsilon, infinite)+1)- log(clip(y_true, epsilon,infinite)+1.))^2.mean(axis=-1),这个就是加入了log对数,剔除不介于epsilon和infinite之间的预测值与实际值之后,然后取对数,作差,平方,累加求均值。

(5)squared_hinge 公式为:(max(1-y_truey_pred,0))^2.mean(axis=-1),取1减去预测值与实际值乘积的结果与0比相对大的值的平方的累加均值。

(6)hinge 公式为:(max(1-y_truey_pred,0)).mean(axis=-1),取1减去预测值与实际值乘积的结果与0比相对大的值的的累加均值。

(7)binary_crossentropy: 常说的逻辑回归, 就是常用的交叉熵函

(8)categorical_crossentropy: 多分类的逻辑

2、性能评估函数:

(1)binary_accuracy: 对二分类问题,计算在所有预测值上的平均正确率

(2)categorical_accuracy:对多分类问题,计算再所有预测值上的平均正确率

(3)sparse_categorical_accuracy:与categorical_accuracy相同,在对稀疏的目标值预测时有用

(4)top_k_categorical_accracy: 计算top-k正确率,当预测值的前k个值中存在目标类别即认为预测正确

(5)sparse_top_k_categorical_accuracy:与top_k_categorical_accracy作用相同,但适用于稀疏情况

以上这篇浅谈keras中的目标函数和优化函数MSE用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 浅谈keras中的目标函数和优化函数MSE用法

本文地址: http://www.cppcns.com/jiaoben/python/318255.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PSO优化LSTM算法的具体代码实例如下所示: ```python import numpy as np import pyswarms as ps from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import LSTM, Dense # 加载数据集 data = np.loadtxt('data.csv', delimiter=',') X = data\[:, :-1\] y = data\[:, -1\] # 数据预处理 scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X) y_scaled = scaler.fit_transform(y.reshape(-1, 1)) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X_scaled, y_scaled, test_size=0.2, random_state=42) # 定义LSTM模型 model = Sequential() model.add(LSTM(50, activation='relu', input_shape=(X_train.shape\[1\], 1))) model.add(Dense(1)) model.compile(optimizer='adam', loss='mse') # 定义PSO优化器 def pso_optimizer(params): learning_rate = params\[0\] num_iterations = int(params\[1\]) num_hidden_units = int(params\[2\]) # 更新LSTM模型的超参数 model.optimizer.lr = learning_rate model.layers\[0\].units = num_hidden_units # 训练LSTM模型 model.fit(X_train, y_train, epochs=num_iterations, verbose=0) # 预测测试集 y_pred = model.predict(X_test) # 计算均方根误差 mse = np.mean((y_pred - y_test) ** 2) return mse # 定义PSO优化问题 options = {'c1': 0.5, 'c2': 0.3, 'w': 0.9} bounds = \[(0.001, 0.1), (10, 100), (10, 100)\] optimizer = ps.single.GlobalBestPSO(n_particles=10, dimensions=3, options=options, bounds=bounds) # 运行PSO优化算法 best_cost, best_params = optimizer.optimize(pso_optimizer, iters=50) # 输出最优参数和最小均方根误差 print("最优参数:", best_params) print("最小均方根误差:", best_cost) ``` 在这个代码实例,我们首先加载数据集并进行数据预处理。然后,我们定义了一个LSTM模型,并使用PSO优化器来寻找最优的超参数。在PSO优化,我们定义了一个pso_optimizer函数,该函数接受超参数作为输入,并使用这些超参数来训练LSTM模型并预测测试集。最后,我们使用PSO优化器来运行优化算法,并输出最优参数和最小均方根误差。 请注意,这只是一个简单的示例代码,实际应用可能需要根据具体情况进行修改和调整。 #### 引用[.reference_title] - *1* [基于改进粒子群IPSO与LSTM的短期电力负荷预测](https://blog.csdn.net/qq_41043389/article/details/103765363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三)](https://blog.csdn.net/weixin_44312889/article/details/128106614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [粒子群算法(PSO)优化双向长短期记忆神经网络的数据分类预测,PSO-BiLSTM分类预测,多输入单输出模型](https://blog.csdn.net/qq_43916303/article/details/128080072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值