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

Posted

技术标签:

【中文标题】神经网络/机器学习,如何将数据转化为数字?【英文标题】:Neural Nets/Machine Learning, how to turn data into numbers? 【发布时间】:2016-04-28 04:14:54 【问题描述】:

不知道怎么问这个,但是就这样吧。所以我一直在尝试理解机器学习和神经网络的使用。

我有一个简单的 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 用于训练网络,因此如果我手动输入模拟 x 和 y 输入,它将给我一个 1 或 0 与我有多少模式相关。

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

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

【问题讨论】:

【参考方案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)那样获得相同的“不相似度”

【讨论】:

【参考方案2】:

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

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]

【讨论】:

以上是关于神经网络/机器学习,如何将数据转化为数字?的主要内容,如果未能解决你的问题,请参考以下文章

BP神经网络-手写数字的识别-机器学习实验二

Python机器学习中文版

Python机器学习中文版

万方+网络+机器学习

MNIST机器学习入门

如何把时间序列问题转化为监督学习问题?通俗易懂的 Python 教程