【问题标题】:How do I print the calculated features in tensorflow (python)如何在张量流(python)中打印计算出的特征
【发布时间】:2021-04-11 20:38:35
【问题描述】:

我是一名刚开始学习 Python 的大学生,没有太多的编码经验,出于好奇一直在尝试使用 TensorFlow。我知道在尝试这样一个雄心勃勃的项目之前我应该​​更流利地学习 Python,但我真的很想通过实验来了解这一点。

所以我的目标是采用预先格式化的 CSV,其中包含股票的 RSI、RS、MACD 和信号,然后如果第二天该股票的价格上涨(相对于前一天) .它是否增加由 1 或 0 表示(1 表示增加,0 表示没有变化或减少)所以一切都是整数。我试图找到的是这些指标的哪些组合导致了增长。增加与否由班级指示。

到目前为止,我已经训练了模型并测试了我的测试集,并使其准确率达到 89%,但我想做的是打印它发现导致增加的值的组合。那么我如何从已经计算的已经训练好的模型中打印导致 Spy_label(class) =1 的 Spy_features?

如果需要更多信息,我会很乐意提供,我只是觉得我在第一个项目的这方面遇到了困难。最重要的是,我真的很想了解更多有关 Python 和机器学习的信息,因此非常感谢您提供有关如何进行此类操作的更多说明。

import tensorflow as tf

import numpy as np
import pandas as pd
from tensorflow.keras import layers
from tensorflow.keras.layers.experimental import preprocessing
import matplotlib.pyplot as plt
from IPython.display import clear_output
from six.moves import urllib



#Data files
SPY_Training = pd.read_csv(r'C:\Users\matth\Downloads\Spy_training(noheader).csv',names=["RSI","RS","MACD","signal","Class"])
SPY_Test = pd.read_csv(r'C:\Users\matth\Downloads\Spy_test(noheader).csv',names=["RSI","RS","MACD","signal","Class"])

SPY_Test.shape[0], SPY_Training.shape[0]

SPY_Training.head()

SpyTest_features = SPY_Test.copy()
SpyTest_labels = SpyTest_features.pop('Class')

Spy_features = SPY_Training.copy()
Spy_labels = Spy_features.pop('Class')

Spy_features = np.array(Spy_features)
Spy_features

print(Spy_features)

Spy_model = tf.keras.Sequential([
    layers.Dense(64),
    layers.Dense(1)
])

Spy_model.compile(loss = tf.losses.MeanSquaredError(),
                  optimizer= tf.optimizers.Adam(),  metrics=['accuracy'])
Spy_model.fit(Spy_features, Spy_labels, epochs=10)

test_loss, test_acc = Spy_model.evaluate(SpyTest_features, SpyTest_labels, verbose=2)
print('Test accuracy:', test_acc)

【问题讨论】:

    标签: python pandas tensorflow keras


    【解决方案1】:

    在神经网络中,每个值都会对结果产生影响(正面或负面)。

    所有 4 个输入都直接连接到 64 个隐藏单元,然后这些隐藏单元直接连接到 1 个输出单元。所以不能提前说,什么价值对输出有正面或负面的影响。

    您可以使用 matplotlib/seaborn 通过在值之间绘制多个图表来理解数据。

    【讨论】:

    • 那么我会将layers.dense(64) 减少到4,如果是这样我会放弃什么?而且您是说无法查看 4 个输入的哪种组合导致 1 个输出?如果可能的话,我可以做些什么来达到那个终点?
    • 我想说的是,这不是神经网络的工作方式。如果您想进一步了解它们,可以观看来自 youtube 的 Andrew Ng 视频。对于任何机器学习任务,您可以通过使用 matplotlib 绘制图形直接找到 b/w 两个值(例如信号和类)的关系。
    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2014-09-12
    • 2021-05-06
    • 2019-04-15
    相关资源
    最近更新 更多