神经网络/机器学习,如何将数据转换为数字?

时间:2016-01-21 18:45:27

标签: c# csv machine-learning neural-network

不知道怎么问这个,但在这里。所以我一直在努力了解机器学习和神经网络的使用。

我有一个C#中学习神经网络的简单例子。 我明白代码在这一点上做了什么很简单我有一个“Patterns.csv”文件。 它包含: x输入,y输入,0或1表示是或否。

0.11, 0.82, 0
0.13, 0.17, 0
0.20, 0.81, 0
0.21, 0.57, 1
0.25, 0.52, 1
0.26, 0.48, 1

这个Patterns.csv用于训练网络,所以如果我手动输入simular x和y输入,它会给我1或0与我有多少模式相关。

现在我的问题是如何将实际数据转换为x和y输入?通过使用字符串使用图像甚至是简单的垃圾邮件过滤器?我真的不明白如何将实际数据转换成两个浮点数。

我假设这是使用这个简单的神经网络示例的正确方法,如果有人有任何想法或解释或一个很酷的方法来做到这一点请随意发布任何相关的感谢!

2 个答案:

答案 0 :(得分:1)

This article文章包含所谓“数据规范化”的基本算法

您需要做的是转换

等数据
Lives in | IsMarried
Chicago  | 1
New York | 1
New York | 0
...

分为:

Chicago | New York | IsMarried
1       | 0        | 1
0       | 1        | 1
0       | 1        | 0
...

我打赌那里有其他技术,但这是我们在本学期受监督的机器学习讲座中使用的技术。

只要你有这个规范化的矩阵,就可以使用任何聚类/机器学习算法。

还有一个look here. This post解释了为什么需要这种编码/规范化。

  

那么为什么不将芝加哥替换为0,将纽约替换为1等等。

这不是一个好主意,因为一些机器学习算法将不同的值作为“距离”处理。因此,芝加哥(0)和纽约(1)(距离为1)不会像纽约和第100个城市(距离99)那样获得相同的“不相似性评级”

答案 1 :(得分:1)

您的搜索关键字为编码。有一篇好文章:

https://visualstudiomagazine.com/articles/2013/07/01/neural-network-data-normalization-and-encoding.aspx

很好地解释了这个概念。以下是演示帮助培训的技巧摘录:

  

独立分类数据的一个例子是预测变量   社区,可以采取“郊区”,“乡村”或“城市”的价值观。对于   我建议使用通常称为1-of(C-1)效果的数据   编码。效果编码并不明显,最好用   例如:

   suburban = [ 0.0,  0.0,  1.0] 
   rural    = [ 0.0,  1.0,  0.0] 
   city     = [-1.0, -1.0, -1.0]