用于自动编码器的张量流输入数据串

时间:2018-04-09 09:58:28

标签: tensorflow machine-learning

我需要使用tensorflow开发自动编码器,当我检查文档和教程时,我可以看到很多带有图像数据的例子和MNIST_data,这是预处理的数值数据。

在我的情况下,数据采用文本格式

 uid       orig_h       orig_p   trans_depth      method       host
======================================================================
5fg288   192.168.1.4      80       1               POST       ex1.com
2fg888   192.168.1.3      80       2               GET        ex2.com

那么如何将这些数据转换为数字格式,接受张量流。我在张量流教程中找不到任何例子,

我是张量流的初学者,请帮忙。

更新

根据下面的说明,我通过参考教程here

创建了矢量映射的单词

pandas dataframe中的输入

   host       method   orig_h        orig_p      trans_depth     uid
0  ex1.com    POST    192.168.1.4      80            1          5fg288
1  ex2.com   GET      192.168.1.3     443            2          2fg888

并且

 Bag of word ---> ['5fg288', '2fg888', '80', 'GET', '443', '1', 'ex2.com', '192.168.1.4', '192.168.1.3', '2', 'ex1.com', 'POST']

现在我的每个单元都有像

这样的值数组
192.168.1.4 ---> [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0]
ex1.com     ---> [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0]
80         ----> [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

那么如何重塑这些数据以给出张量流

应该是

data = array([
[[0.0,...],[0.0,...],[0.0,...],[0.0,...],[0.0,...],[0.0,...]],
[[0.0,...],[0.0,...],[0.0,...],[0.0,...],[0.0,...],[0.0,...]]
])

这是每个要素作为浮点数组,单个样本中有6个要素。这可能吗,

1 个答案:

答案 0 :(得分:2)

Tensorflow接受numpy格式的数据。可以使用df.as_matrix()函数将Pandas数据帧转换为numpy。但问题的关键在于如何将这些不同的数据类型转换为神经网络(或任何机器学习方法)的连续数值表示。

下面链接的答案为sci-kit文档提供了一些有用的参考,这些文档讨论了很多细节,这里有很多不能重写的内容:

Machine learning with multiple feature types in python

在阅读该指南后,您的部分数据会很容易翻译,例如trans_depth orig_pmethod,这些数据似乎是分类数据。在这种情况下,您会将它们转换为{1,0}值的多个要素,以表示该类是否存在,例如,orig_p可能表示为两个要素x1和x2。 x1=1如果orig_p=80,则为0;如果x2=1则为orig_p=443,否则为0。

您可能会对主机执行相同操作,但您可能需要考虑如何以及是否确实要使用主机。例如,如果您认为重要,那么您可以定义一个分类功能,仅标识.com.edu.org等域,因为单个主机名可能太多而无法表示

您可能还会考虑根据某个数据库(如果存在这样的东西)将主机名集群到主机类别中,并使用主机名所属的群集作为分类功能。

对于orig_h,您可以考虑按地区对IP进行分组,并为每个地区定义分类功能。

uid看起来每个用户都是唯一的,因此您可能不会使用该列数据。

您需要考虑每个数据点。从我链接的文档开始,但总的来说,这是一个标准数据挖掘的问题,任何关于数据挖掘的好书对于进一步理解这些概念都是非常宝贵的,这里很容易通过谷歌在线查找搜索:

https://books.google.com/books/about/Data_Mining_Concepts_and_Techniques.html?id=pQws07tdpjoC&printsec=frontcover&source=kp_read_button#v=onepage&q&f=false

我还将包括以下参考资料,因为它们提供了我见过的最好的教程,并且他们对ML部分的介绍有一组非常有用的文章。它与问题略有相反,但我希望它有用。

https://github.com/aymericdamien/TensorFlow-Examples