设计用于销售预测的神经网络

时间:2011-04-06 17:46:29

标签: c# neural-network

我正在开发一个分布式系统,其中计划使用神经网络进行销售预测。

系统的小描述:系统结合了药房,病人(电子健康记录)和医生模块等模块的工作流程。

问题是:我有很多与药品销售相关的信息,我在设计神经网络时有点困惑。

我目前的设计: 输入(根据可从数据库中获取的数据):

  1. 日期:向客户出售药品的日期(YYYY / MM / DD格式)。
  2. 患者年龄类别:对应于患者年龄类别的值,例如:(1 - > 12:儿童,13 - > 30:年轻...... ..)
  3. 患者性别。
  4. 医学ID:与药物相对应的值。
  5. 疾病ID:与产生处方的医生发现的疾病相对应的值。
  6. 药物单位成本:与购买药物的成本相对应的值。
  7. 医药单位售价:与销售药品的成本相对应的值。
  8. 药房地址ID:与药房地址对应的值。
  9. 季节ID:与销售药品的季节相对应的值(夏季,冬季等)。
  10. 输出:

    1. 数量:与将要销售的药品数量相对应的值。
    2. 利润:与销售先前数量的利润金额相对应的价值。
    3. 问题是:我不确定这个设计是否有意义,是否有更好的建议?

      我应该用什么类型的网络来实现这个设计..我打算使用多层循环网络...这是一个不错的选择还是有更好的模型?

      注意:我打算使用带有“AForge.NET Framework”的c#实现网络。

      希望这个描述清晰简单,抱歉我的语言不好。

3 个答案:

答案 0 :(得分:3)

ID和类别对实际输入的选择较差,因为它们不是连续的,并且它们的相对大小没有什么意义。可能有用的ID是为不同的类别创建单独的网络,但是,鉴于您在此处定义的大量ID和类别,这意味着您拥有大量独立的网络,需要大量的培训数据,因为它将被大量稀释。二进制类别(如性别)可能有效,但任何一个类别都可能无法产生良好的结果。

对神经网络要非常小心,因为在足够大的网络中,你可以创建一些似乎能给出预测的东西,但这在训练集之外真的没有意义。确保您有一个没有参加培训的大型验证集。

答案 1 :(得分:1)

我怀疑日期(绝对值)是否为模型添加任何值。如果你有多年的数据,它可能会产生一些意义,但是一个衡量标准,比如季度是什么日期,是周末还是工作日,或者它是在重大节日之后的n天内(等等)更强大。

我不知道您的直接领域,所以我对网络拓扑没有任何意见。如果您查阅一些论文,可能会有针对您的研究领域的评论文章,讨论趋势是什么。

答案 2 :(得分:1)

这似乎缺少一些信息。

为了预测未来,你需要一个基线。例如,根据给定的处方,有人会重新填充它的可能性有多大?这种可能性是否与您的其他任何指标(年龄组,性别,销售日期)相关联?

同样季节只考虑患者的位置,并且可能仅针对某些类型的药物(我认为感冒/过敏/流感)。此外,为了提供任何真正的季节性准确性,您必须提供该季节的数据,如过敏原水平等。

接下来,药物成本和利润预期实际上只与实际药物有关,而不是预测销售可能性所必需的。