使用TensorFlow开发自编码器的输入数据字符串

我需要使用TensorFlow开发自编码器,当我查看文档和教程时,我看到很多使用图像数据和预处理过的数值数据MNIST_data的例子。

而在我的案例中,数据是以文本格式存在的

例如,

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

那么,我如何将这些数据转换成TensorFlow可以接受的数值格式。我在TensorFlow教程中找不到任何例子,

我是TensorFlow的新手,请帮助我。

更新

根据下面的说明,我通过参考这里的教程,创建了词向量映射

输入是pandas数据框

   host       method   orig_h        orig_p      trans_depth     uid0  ex1.com    POST    192.168.1.4      80            1          5fg2881  ex2.com   GET      192.168.1.3     443            2          2fg888

以及

 词袋模型 ---> ['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]

那么,我如何重塑这些数据以提供给TensorFlow呢?

应该像这样吗?

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个特征。这是可能的吗?


回答:

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

下面的链接提供了对sci-kit文档的一些有用参考,这些文档讨论了细节,这里就不再重述了:

在Python中使用多种特征类型的机器学习

阅读该指南后,你的一些数据将很容易转换,例如trans_depthorig_pmethod似乎是分类数据。在这种情况下,你将把它们转换为多个{1,0}值的特征,这些特征表示该类是否存在,例如,orig_p可能被表示为两个特征x1和x2。如果orig_p=80,则x1=1,否则为0;如果orig_p=443,则x2=1,否则为0。

你可以对host做同样的事情,但你可能需要考虑如何以及是否真的要使用host。例如,如果你认为它很重要,你可以定义一个分类特征,仅识别.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

我还包括以下参考,因为它们提供了迄今为止我见过的最好的教程,他们的机器学习介绍部分有一组非常有用的文章。虽然这与问题略有偏离,但我认为会很有用。

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

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注