Neural network 神经网络新手

Neural network 神经网络新手,neural-network,prediction,predict,Neural Network,Prediction,Predict,在玩了一些基本的线性回归之后,我才开始玩神经网络。我是一名英语老师,所以没有数学背景,试图读一本关于这方面的书是我无法理解的。我认为这将是一个更好的途径来回答一些基本问题,尽管我怀疑没有简单的答案。只是想从外行的角度看一些一般性的指导。我正在使用名为NEURO XL的Excel加载项的试用版。如果这些问题太简单,我道歉 我的第一个项目是根据大量的考试成绩、GPA、实践考试成绩等以及一些定性数据预测学生在SAT上的口头成绩,性别:M=1,F=0;参加SAT预备班:Y=1,N=0;参加校队运动:Y=

在玩了一些基本的线性回归之后,我才开始玩神经网络。我是一名英语老师,所以没有数学背景,试图读一本关于这方面的书是我无法理解的。我认为这将是一个更好的途径来回答一些基本问题,尽管我怀疑没有简单的答案。只是想从外行的角度看一些一般性的指导。我正在使用名为NEURO XL的Excel加载项的试用版。如果这些问题太简单,我道歉

我的第一个项目是根据大量的考试成绩、GPA、实践考试成绩等以及一些定性数据预测学生在SAT上的口头成绩,性别:M=1,F=0;参加SAT预备班:Y=1,N=0;参加校队运动:Y=1,N=0

总的来说,我有21个变量要输入到网络中,输出为实际分数200-800

我有9000条跨越多年/学生的数据记录。以下是我的问题:

我应该使用9000的多少条记录来训练网络? 1a。我是应该完全随机选择这些训练数据,还是应该更多地参与其中,确保包括各种输出分数和各种输入变量

如果我将数据分成偶数,比如说9x1000或任意多个,并为每个数据创建一个网络,然后在其他8组数据集上测试这9个数据的结果,以确定样本中哪一个的MSE最低,如果我想预测这些数据中根本没有包含的即将入学的学生的分数,这是否是选择最佳网络的有效方法

由于我用作输入的测试分数在量表上有所不同,例如,有些分数在1-100,有些分数在1-20,我是否应该将所有输入标准化为各自的z分数?什么时候推荐与不推荐

我预测的是实际分数,但实际上,我并不关心确切的分数,而是更大的范围。如果我将输出分数分组,然后尝试预测这个数字而不是实际分数,我的网络会更准确吗

例如

750-800=10

700-740=9

等等

这样做有什么好处吗?或者我应该直接去预测准确的分数吗

如果我所关心的只是分数是高于还是低于600呢。然后,我会使输出0低于600还是1高于600

5a。我在某个地方读到,使用0和1并不好,而是使用0.1和0.9-为什么

5b。那么-1低于600,0正好是600,1高于600,这样行吗

5c。网络是否总是输出-1,0,1-或者它会输出分数,然后我必须进行取整或取整以最终确定预测

一旦我从问题3中找到了最好的网络,我是否会利用不同的参数——历元数、隐层神经元数、动量、学习率等来进一步优化它

6a。激活功能呢?Log sigmoid是否会起作用,或者我是否应该尝试我的软件的其他选项,以及阈值、双曲正切、基于零的Log sigmoid

6b。log sigmoid和基于零的log sigmoid之间有什么区别


谢谢

首先是关于问题本身的一点元内容,而不是关于你问题的答案

当你说‘如果这些问题太简单,我道歉’时,我不得不笑一笑。然后继续问一个最彻底、最深思熟虑的问题,这是我在SO上看到的某人的第一篇帖子。 我不会太担心人们会因为你问这些问题而对你嗤之以鼻

就所需知识的深度和范围而言,这是一个相当大的问题,尤其是所需的统计知识和对神经网络的熟悉程度。 您可能希望尝试将此问题分成几个问题,这些问题分布在不同的StackExchange站点上

不经意间,其中一些数据肯定属于statistics StackExchange,交叉验证:

你可能还想试试,一个专门针对机器学习和相关领域的测试版网站

也就是说,我认为我可以帮助回答其中的一些问题。 任何我没有回答的问题我都觉得没有资格帮助你

问题1 我应该使用9000的多少条记录来训练网络?1a。我是应该完全随机选择这些训练数据,还是应该更多地参与其中,确保包括各种输出分数和各种输入变量

随机选择训练数据可能不是一个好主意。 请记住,真正的随机数据包括集群。 随机挑选的学生可能恰好只包括那些在ACT考试中得分超过30分的学生,这可能会导致学生产生偏见 你的结果。 同样,如果你只选择SAT分数低于700的学生,你构建的分类器将没有任何能力区分预期分数为720的学生和预期分数为780的学生,因为分类器在没有相关信息的情况下进行了训练,所以它们看起来是一样的

您希望确保不同输入和不同输出的代表性样本。 因为您处理的是可能相关的输入变量,所以在选择这些数据时不应该做太复杂的事情,否则您可能会错误地在输入中引入另一个偏差。 也就是说,您不希望选择主要由异常值组成的训练数据集。 我建议尝试确保您的输入涵盖您观察的所有变量的所有可能值,以及SAT分数输出的所有可能结果,而不限制如何满足这些要求。 我确信有一些算法是专门设计来实现这一点的,但我自己并不了解它们——对于交叉验证来说,这本身可能是一个很好的问题

问题3 由于我用作输入的测试分数在量表上有所不同,例如,有些分数在1-100,有些分数在1-20,我是否应该将所有输入标准化为各自的z分数?什么时候推荐与不推荐

我的理解是,不建议将其作为神经网络的输入,但我可能错了

网络的融合应该为您解决这一问题。 网络中的每个节点将为其输入分配一个权重,乘以它们的权重,并将这些乘积相加,作为其计算的核心部分。 这意味着网络中的每个节点都在为其每个输入搜索某些系数。 要做到这一点,所有输入都将转换为数值——因此,性别等条件将转换为0=男性、1=女性或类似的值

例如,在给定的时间点,节点的度量可能如下所示:

2*ACT_分数+0*性别+-5*各种运动

每个值的系数正是网络在收敛时所搜索的。 如果你改变了一个值的比例,比如ACT_分数,你只需要改变系数的比例,这个系数可以通过比例因子的倒数找到。 结果应该还是一样的

在准确性方面还有其他问题,计算机在表示可能进入这一领域的小分数和速度方面的能力有限,但由于不熟悉NEURO XL,我不能说它们是否适用于这项技术

问题4 我预测的是实际分数,但实际上,我并不关心确切的分数,而是更大的范围。如果我将输出分数分组,然后尝试预测这个数字而不是实际分数,我的网络会更准确吗

这将降低精度,尽管您应该以更少的可能输出分数更快地收敛到解决方案

神经网络实际上在其输入变量中描述非常高维的函数。 如果降低该函数的输出空间的粒度,则本质上表示不关心该函数中的局部极小值和极大值,尤其是在输出分数之间的边界附近。 因此,您牺牲的信息可能是您正在搜索的真正功能的重要组成部分


我希望这会有所帮助,但你真的应该将这个问题分解为许多部分,并在不同的网站上分别提问——其中一些可能也属于StackOverflow网站。

首先介绍一些关于问题本身的元内容,而不是关于你问题的答案

当你说‘如果这些问题太简单,我道歉’时,我不得不笑一笑。然后继续问一个最彻底、最深思熟虑的问题,这是我在SO上看到的某人的第一篇帖子。 我不会太担心人们会因为你问这些问题而对你嗤之以鼻

就所需知识的深度和范围而言,这是一个相当大的问题,尤其是所需的统计知识和对神经网络的熟悉程度。 您可能希望尝试将此问题分成几个问题,这些问题分布在不同的StackExchange站点上

不经意间,其中一些数据肯定属于statistics StackExchange,交叉验证:

你可能还想试试,一个专门针对机器学习和相关领域的测试版网站

也就是说,我认为我可以帮助回答其中的一些问题。 任何我没有回答的问题我都觉得没有资格帮助你

问题1 我应该使用9000的多少条记录来训练网络?1a。我是应该完全随机选择这些训练数据,还是应该更多地参与其中,并确保包括各种训练数据 输出分数和每个输入变量的广泛范围

随机选择训练数据可能不是一个好主意。 请记住,真正的随机数据包括集群。 随机挑选的学生可能恰好只包括ACT考试得分超过30分的学生,这可能会导致你的成绩出现偏差。 同样,如果你只选择SAT分数低于700的学生,你构建的分类器将没有任何能力区分预期分数为720的学生和预期分数为780的学生,因为分类器在没有相关信息的情况下进行了训练,所以它们看起来是一样的

您希望确保不同输入和不同输出的代表性样本。 因为您处理的是可能相关的输入变量,所以在选择这些数据时不应该做太复杂的事情,否则您可能会错误地在输入中引入另一个偏差。 也就是说,您不希望选择主要由异常值组成的训练数据集。 我建议尝试确保您的输入涵盖您观察的所有变量的所有可能值,以及SAT分数输出的所有可能结果,而不限制如何满足这些要求。 我确信有一些算法是专门设计来实现这一点的,但我自己并不了解它们——对于交叉验证来说,这本身可能是一个很好的问题

问题3 由于我用作输入的测试分数在量表上有所不同,例如,有些分数在1-100,有些分数在1-20,我是否应该将所有输入标准化为各自的z分数?什么时候推荐与不推荐

我的理解是,不建议将其作为神经网络的输入,但我可能错了

网络的融合应该为您解决这一问题。 网络中的每个节点将为其输入分配一个权重,乘以它们的权重,并将这些乘积相加,作为其计算的核心部分。 这意味着网络中的每个节点都在为其每个输入搜索某些系数。 要做到这一点,所有输入都将转换为数值——因此,性别等条件将转换为0=男性、1=女性或类似的值

例如,在给定的时间点,节点的度量可能如下所示:

2*ACT_分数+0*性别+-5*各种运动

每个值的系数正是网络在收敛时所搜索的。 如果你改变了一个值的比例,比如ACT_分数,你只需要改变系数的比例,这个系数可以通过比例因子的倒数找到。 结果应该还是一样的

在准确性方面还有其他问题,计算机在表示可能进入这一领域的小分数和速度方面的能力有限,但由于不熟悉NEURO XL,我不能说它们是否适用于这项技术

问题4 我预测的是实际分数,但实际上,我并不关心确切的分数,而是更大的范围。如果我将输出分数分组,然后尝试预测这个数字而不是实际分数,我的网络会更准确吗

这将降低精度,尽管您应该以更少的可能输出分数更快地收敛到解决方案

神经网络实际上在其输入变量中描述非常高维的函数。 如果降低该函数的输出空间的粒度,则本质上表示不关心该函数中的局部极小值和极大值,尤其是在输出分数之间的边界附近。 因此,您牺牲的信息可能是您正在搜索的真正功能的重要组成部分


我希望这对您有所帮助,但您确实应该将此问题分解为多个部分,并在不同的站点上分别提问-其中一些问题可能也属于StackOverflow上的问题。

在stackexchange上提问会更幸运。在stackexchange上提问会更幸运。