小编Mat*_*son的帖子

如何使用多个数据集训练 LSTM?

尽管我尽了最大的努力,但我还没有找到这个问题的答案。

\n

I\xe2\x80\x99m 希望使用 Python 3.6 和 TensorFlow 简单地训练 LSTM 网络,使用多个 .csv 文件/数据集,例如使用多家公司的历史股票数据。

\n

这样做的原因是我想让模型适应各种价格范围,而不是在每个数据集上训练单独的模型。我该怎么做呢?

\n

我可以\xe2\x80\x99t 只是将一个数据集附加到另一个创建 1 个大数据集,因为在训练/测试拆分期间,价格可能会从 2 美元跳到 200 美元,具体取决于库存数据以及数据集缝合在一起的位置。

\n

做这样的事情的最佳实践是什么?

\n
    \n
  1. 只需为每个 .csv 文件创建一个循环,然后调用 .fit 函数,对每个文件依次进行一定数量的训练(更新其权重),并在找到最佳损失后使用早期停止?(我现在明白该怎么做了。)

    \n
  2. \n
  3. 有没有一种方法可以创建一个生成器,可以以某种方式从每个 .csv 生成不同的 x_train 和 y_train 元组,将模型与每个元组拟合,然后在从每个 .csv 文件中采样一个元组后有一个训练检查点?我的想法是,模型应该有机会在完成一个纪元之前从每个数据集中采样一部分。

    \n
  4. \n
\n

示例:let\xe2\x80\x99s 说我想使用 20 周期回溯/窗口大小来预测未来 t+1,并且我有 5 个 .csv 文件可供训练。生成器(理想情况下)将所有数据集加载到内存中,然后从第一个 .csv 文件中随机抽取 20 行样本,将其拟合到模型中,然后从第二个 .csv 文件中抽取另外 20 行,进行拟合,等等,然后一旦对所有 5 个样本进行了采样,就通过检查点来评估损失,然后进入下一个 epoch 并重新进行一遍。

\n

这可能有点矫枉过正,但想要彻底。如果选项 1. 能完成同样的事情,那么 \xe2\x80\x99 对我来说也很好,我只是还没有 \xe2\x80\x99t 找到答案。

\n

谢谢!

\n

更新 …

machine-learning python-3.x tensorflow

8
推荐指数
1
解决办法
4071
查看次数

Python 3-ValueError:找到具有0个样本的数组(shape =(0,11)),而MinMaxScaler至少需要1个

我真的很难尝试启动和运行我的这个项目,但是我仍然保持弹性,我想我已经接近了!

我正在尝试自定义此项目以使用我自己的数据集:

https://github.com/notadamking/Bitcoin-Trader-RL

基本上,该项目使用股票价格的OHLCV数据集进行训练和交易,但是我想使用一天的报价数据集,而不是使用项目中提供的OHLCV .csv文件多的列。包括时间,打开,关闭,最后一个,最后一个大小,出价,BidSize,询问,AskSize,交易量)。它将.csv文件内容放入其自己的数组中,然后使用MinMaxScaler将所有点转换为相对于其所在列的值在0-1之间的值。

我收到以下完整错误,我希望知道这里发生什么的人能够发现我所缺少的东西:

Traceback (most recent call last):
  File "main.py", line 23, in <module>
    model.learn(total_timesteps=200000)
  File "c:\users\windowshopr\desktop\python scripts\all tools\stable-baselines-master\stable_baselines\a2c\a2c.py", line 231, in learn
    runner = A2CRunner(self.env, self, n_steps=self.n_steps, gamma=self.gamma)
  File "c:\users\windowshopr\desktop\python scripts\all tools\stable-baselines-master\stable_baselines\a2c\a2c.py", line 310, in __init__
    super(A2CRunner, self).__init__(env=env, model=model, n_steps=n_steps)
  File "c:\users\windowshopr\desktop\python scripts\all tools\stable-baselines-master\stable_baselines\common\runners.py", line 19, in __init__
    self.obs[:] = env.reset()
  File "c:\users\windowshopr\desktop\python scripts\all tools\stable-baselines-master\stable_baselines\common\vec_env\dummy_vec_env.py", line 45, in reset
    obs = self.envs[env_idx].reset()
  File "C:\Users\windowshopr\Desktop\Current Python Project\1 - Matt's Bitcoin Trader (level 1)\env\BitcoinTradingEnv.py", line 90, in reset …
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x pandas scikit-learn

7
推荐指数
1
解决办法
481
查看次数

在获得最佳 TPOT 管道后获得 feature_importances_?

我已经通读了几页,但需要有人帮助解释如何进行这项工作。

我正在使用TPOTRegressor()以获得最佳管道,但从那里我希望能够绘制.feature_importances_它返回的管道:

best_model = TPOTRegressor(cv=folds, generations=2, population_size=10, verbosity=2, random_state=seed) #memory='./PipelineCache',       memory='auto',
best_model.fit(X_train, Y_train)
feature_importance = best_model.fitted_pipeline_.steps[-1][1].feature_importances_
Run Code Online (Sandbox Code Playgroud)

我在 Github 上的一个现已关闭的问题中看到了这种设置,但目前我收到错误消息:

Best pipeline: LassoLarsCV(input_matrix, normalize=True)

Traceback (most recent call last):
  File "main2.py", line 313, in <module>
    feature_importance = best_model.fitted_pipeline_.steps[-1][1].feature_importances_
AttributeError: 'LassoLarsCV' object has no attribute 'feature_importances_'
Run Code Online (Sandbox Code Playgroud)

那么,我如何从最佳管道中获得这些特征重要性,而不管它落在哪个管道上?或者这甚至可能吗?或者有人有更好的方法来尝试从 TPOT 运行中绘制特征重要性吗?

谢谢!

更新

为澄清起见,特征重要性的含义是确定数据集的每个特征 (X) 在确定预测 (Y) 标签方面的重要性,使用条形图绘制每个特征在得出其预测时的重要性级别。TPOT 不直接执行此操作(我不认为),所以我想我会抓住它提出的管道,在训练数据上重新运行它,然后以某种方式使用 a.feature_imprtances_然后能够绘制图形特征重要性,因为这些都是我正在使用的 sklearn 回归器?

python pipeline regression scikit-learn tpot

3
推荐指数
1
解决办法
1561
查看次数