LSTM简易通用版本

下载链接

因为在数学建模中用的很麻烦,写了个简易易使用版本。

以下代码为最终成品代码 demo 版本,不推荐使用,最新版本可点下载链接或可见 csdn

2022小美赛C题

主要讲解团队对2022小美赛C题的讲解,包含讲解与代码,赛题data。全部为python代码,基本不会提供代码注释及逻辑。

该题主要为时间序列分类,团队尝试的方法如下:

  1. 决策树、随机森林、极限森林分类(DecisionTreeClassifier、 RandomForestClassifier、 ExtraTreesClassifier)在文章中将简写为DTC、RFC、ETC
  2. 带有时间序列的决策树分类(MultivariateClassifier、 TimeSeriesForest)在文章中TimeSeriesForestClassifier将简写为TSFC
  3. LSTM 团队采用 DeepConvLSTM在文章中将简写为DCLSTM
  4. NSGA2剪枝优化

讲解顺序:python库→数据预处理:3\sigma与滤波→数据处理与导入(不含前一步的处理)→决策树等分类→TSFC→DCLSTM→GA决策树剪枝优化。总体结论:极限森林在赛题数据分类效果最好。

文章思路:数据处理→决策树分类→DCLSTM→算法对比→NSGA2对极限森林过拟合优化。

代码有前后关联性,后面代码没有的函数请到前面找。代码非常庞大,请耐心观看。

1.python库

python库

2. 3\sigma and filter

Preprocess

3. 数据处理

其中:num为选择哪些传感器,n_class为选择哪些活动进行分类

Data process

4. 决策树等分类

说明:代码包含k-fold cross-validation,其中注释代码可用作别的用途,具体你要画什么图就用什么代码。

Classifier

5. TFSC

TFSC

6. DCLSTM

DCLSTM

7. NSGA-ii剪枝优化

NSGA2

遗传算法背包问题

排列编码

格雷编码(选择编码)

两个编码方式有差异,我个人认为排列编码会比较好一点,逻辑更加高一些。代码中为EGA模板(即带有精英选择机制的遗传算法),测试下来可能NSGA-ii模板会更优一些,可以在测试的时候选择你想要的算法及结果。data.xlsx

强化学习 Pytorch

个人强化学习过程,Q-learning(基础)-> DQN -> AC -> A2C / A3C -> DDPG -> TD3

DQN

算法简要说明:采用经验回放与神经网络对Q-learning进行优化,使其能够输入连续的数,并更好的利用数据。

参考代码

Actor Critic

算法简要说明:Actor 基于概率选行为, Critic 基于 Actor 的行为评判行为的得分, Actor 根据 Critic 的评分修改选行为的概率。

说明:现已改正 CSDN 上错误代码并经行优化。Github上代码流程为跑完一次历程再进行网络优化,并且Actor和Critic共用同一个optimizer和loss,CSDN 上代码流程为原论文流程,即一边跑历程,一边训练网络,并且Actor和Critic具有不一样的optimizer和loss。

对比:原论文流程,即 CSDN 代码流程网络训练较慢,但收敛可能较快。但在跑 CartPole-v1 的时候效果还是Github 代码优异,只能说具体问题可以都试试,选择最优的代码流程。

CSDN 参考代码

Github 参考代码