神经网络/机器学习,如何将数据转化为数字
本文关键字:数据 数字 机器学习 神经网络 | 更新日期: 2023-09-27 18:31:18
不知道怎么问这个问题,但它就在这里。因此,我一直在努力理解机器学习和神经网络的使用。
我有一个在 C# 中学习神经网络的简单示例。我明白代码在这一点上在做什么,它非常简单,我有一个"模式.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
这个模式.csv用于训练网络,所以如果我手动输入模拟x和y输入,它会给我一个1或0,与我有多少模式相关。
现在我的问题是如何将实际数据转换为 x 和 y 输入?使用图像,甚至是简单的垃圾邮件过滤器?我只是真的不明白如何将实际数据转换为两个浮点数。
我假设这将是使用这个简单的神经网络示例的正确方法,如果有人有任何想法或解释或很酷的方法,请随时发布任何相关的感谢!
搜索的关键字是编码。 有一篇好文章:
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]
本文包含所谓的"数据规范化"的基本算法
您所要做的就是像
Lives in | IsMarried
Chicago | 1
New York | 1
New York | 0
...
到:
Chicago | New York | IsMarried
1 | 0 | 1
0 | 1 | 1
0 | 1 | 0
...
我敢打赌还有其他技术,但这是我们本学期在监督机器学习讲座中使用的技术。
一旦你有了这个规范化矩阵,你就可以使用任何聚类/机器学习算法。
也看看这里。这篇文章解释了为什么需要这种编码/规范化。
那为什么不干脆用0代替芝加哥,用1代替纽约,等等。
这不是一个好主意,因为某些机器学习算法将不同的值处理为"距离"。因此,芝加哥(0)和纽约(1)(距离为1)不会像纽约和第100个城市(距离为99)那样获得相同的"不相似性评级"。