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

C# 神经网络/机器学习,如何将数据转化为数字?,c#,csv,machine-learning,neural-network,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输

我不知道该怎么问,但事情是这样的。所以我一直在努力理解机器学习和神经网络的使用

我有一个用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输入?使用图像,或者甚至是使用字符串的简单垃圾邮件过滤器?我真的不明白如何将实际数据转换成两个浮点数

我假设这将是使用这个简单的神经网络示例的正确方法。如果有人有任何想法或解释,或者有一个很酷的方法,请随时发布任何相关信息,谢谢

这篇文章包含了所谓的“数据规范化”的基本算法

您需要做的是像这样转换数据

Lives in | IsMarried
Chicago  | 1
New York | 1
New York | 0
...
进入:

我打赌还有其他技术,但这是我们在本学期的有监督机器学习课程中使用的技术

一旦有了这个标准化矩阵,就可以使用任何聚类/机器学习算法

还有一个例子解释了为什么需要这种编码/规范化

那为什么不把芝加哥换成0,把纽约换成1,等等


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

您搜索的关键字是encode。有一篇好文章:

这很好地解释了这个概念。下面是一个摘录,展示了一个有助于培训的技巧:

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

Chicago | New York | IsMarried
1       | 0        | 1
0       | 1        | 1
0       | 1        | 0
...
   suburban = [ 0.0,  0.0,  1.0] 
   rural    = [ 0.0,  1.0,  0.0] 
   city     = [-1.0, -1.0, -1.0]