首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANN与预测

ANN与预测
EN

Data Science用户
提问于 2016-11-17 20:01:40
回答 1查看 212关注 0票数 2

我有一张物品清单。每个对象都包含经度、纬度和单词列表。

我想做的是根据对象中包含的文本来预测位置(类似的文本应该有相似的位置)。现在,我使用余弦相似性来计算物体之间的相似性,文本,但我被困在如何利用这些信息来训练我的神经网络。我有一个矩阵,其中包含每个对象以及每个单词在该对象中出现的时间。F.x。如果我有这两件东西

代码语言:javascript
复制
Obj C:   54.123, 10.123,   [This is a text for object C]
Obj B:   57.321, 11.113,   [This is a another text for object B]

然后我得到了类似于下面的矩阵

代码语言:javascript
复制
       This is a text for object C another B
ObjC:   1   1  1   1   1    1    1   0     0
ObjB:   1   1  1   1   1    1    0   1     1

对于两个对象之间的距离,我也会有类似的东西(注意,数字不是真实的)。

代码语言:javascript
复制
        ObjC    ObjB
ObjC    1       0.25
ObjB    0.25    1

我已经研究过如何使用神经网络将事物分类(如A,B,C),或者预测像房价这样的东西,但是我发现没有任何东西对我的问题有帮助。

如果它在某个距离内,我会考虑正确的预测,因为我处理的是位置。这也许是个愚蠢的问题,但有人给我指明了正确的方向。

EN

回答 1

Data Science用户

发布于 2016-11-17 23:00:53

看起来,您正试图用相同的输入来预测两种不同的事物(纬度和经度)。因此,这是一个预测多输出的问题。然而,它是很容易理解的基本只有一个输出。我会用这种方式来描述。

比方说,您的目标只是一个变量Y,这是您的位置。转换后(可能是TF),您有一个功能矩阵X,其中一行表示一个示例,一个列表示一个特性。您现在需要做的是使用输入X和目标Y来训练ANN。这就是安的训练方式:

  1. 它将随机启动输入和网络外部的权重矩阵。如果只有一个隐藏层,那么权重矩阵的数目是2。
  2. ANN将通过某种激活函数传递您的输入,从它们获得一些输出,然后将这些输出转发到输出层以供进一步处理。查找一些关于实际数学的教程。但这就是直觉。
  3. 最后,基于权值和进一步的处理,神经网络将产生一定的输出。在大多数情况下,在第一次迭代中,它们不能在可接受的范围内。因此,ANN需要对随机选取的权重进行细化。这就是反向传播算法开始的地方。它使人工神经网络能够学习最合适的权重,从而得到最佳的预测结果。
  4. 这种反向传播算法需要一个代价函数,它试图最小化代价函数。这个成本函数通常是均方根误差函数。但是根据你的选择,这个成本函数可以是任意的。成本函数(大部分)需要两个输入。其中一个是您的真实位置(根据培训/验证数据),另一个是ANN在处理后得到的预测位置。当人工神经网络试图最小化预测输出和真实输出之间的差异时,它为网络找到了合适的权重。
  5. 当成本函数的错误减少到所需的值(或通过了预定义的迭代次数,或达到了容忍级别)时,ANN停止训练,并返回那些学习到的权重矩阵。
  6. 一旦您有了这些最终的权重矩阵,您就可以将它们应用于任何新的数据来获得预测。这些重量矩阵是你的神经网络。

由于您有多个输出问题,您需要一个ANN的实现,它同时支持最小化两个错误。这类似于多目标优化。Python在这里可以帮你。有关使用的详细信息,请参阅此sknn.mlp文档。它将接受多个输出,每个输出在目标矩阵中各自的列上。因此,您的Y将是形状n * 2,其中n是数据集中的样本数。只需使用上述格式的现有fitY调用X方法即可。一旦训练完成,你就得到了你的最小可行的神经网络。如何优化ANN的性能则是另一回事:)

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/15196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档