《BI那点儿事》Microsoft 神经网络算法
Microsoft神经网络是迄今为止最强大、最复杂的算法。要想知道它有多复杂,请看SQL Server联机丛书对该算法的说明:“这个算法通过建立多层感知神经元网络,建立分类和回归挖掘模型。与Microsoft决策树算法类似,在给定了可预测属性的每个状态时, Microsoft神经网络算法计算输入属性每个可能状态的概率。然后可以用这些概率根据输入属性预测被预测属性的输出。”
什么时候用这个算法呢?推荐在其他算法无法得出有意义的结果时再用,如提升图输出的结果。我们经常把Microsoft神经网络作为“压箱底”的最后一招,在其他算法处理巨大而复杂的数据集无法得到有意义的结果时才使用它。这个算法可以接受Discrete或Continuous数据类型作为输入。在大型数据源上使用Microsoft神经网络之前,一定要用生产级别的负载好好测试,因为处理这类模型的开支太大了。同其他算法一样,在“算法参数”对话框中也有多个参数可以配置。同其他一些开支比较大的算法一样,只有在业务理由非常充分的情况下才有必要修改默认值。
Microsoft神经网络算法的一个变体是Microsoft逻辑回归算法。
下面我们进入主题,同样我们继续利用上次的解决方案,依次步骤如下:
数据源视图:
键:序列
输入:统率、武力、智力、政治、魅力
可预测:身分
数据内容类型:
Continuous(连续型):统率、武力、智力、政治、魅力
Discrete(离散型):身分
建模完成,产生数据挖掘结构接口包含Mining Structure(挖掘结构)、Mining Models(挖掘模型)、Mining Model Viewer(挖掘模型查看器)、Mining Accuracy Chart(挖掘精确度图表)以及Mining Model Prediction(挖掘模型预测);其中在Mining Structure(挖掘结构)中,主要是呈现数据间的关联性以及分析的变量。
挖掘模型:
在Mining Models(挖掘模型)中,主要是列出所建立的挖掘模型,也可以新增挖掘模型,并调整变量,变量使用状况包含Ignore(忽略)、Input(输入变量)、Predict(预测变量、输入变量)以及Predict Only(预测变量),如图所示。
在挖掘模型上点击鼠标右键,选择“设置算法参数...”可修改模型参数设置,如图所示
其中包含:
HIDDEN_NODE_RATIO:指定用于判断隐藏层中的节点数目。隐藏层内的节点数计算公式为:HIDDEN_NODE_RATIO *sqrt({输入节点的数目} * {输出节点的数目})。
HOLDOUT_PERCENTAGE:指定用于计算测试组预测错误的百分比,作为停止准则的一部分。
HOLDOUT_SEED:指定用于随机产生测试组的种子数据。如果未指定,算法会依据模型名称产生随机种子,以保证在重新处理模型时保持测试组相同。
MAXIMUM_INPUT_ATTRIBUTES:指定算法可处理的最大输入变量数目。将此值设置为0,会停用输入变量。
MAXIMUM_OUTPUT_ATTRIBUTES:指定算法可处理的最大输出变量数目。将此值设置为0,会停用输出变量。
MAXIMUM_STATES:指定算法所支持变量取值状态的最大数目。如果属性状态数大于该值,算法会截取最常用的状态,并将超过最大值的其余状态视为遗漏。
SAMPLE_SIZE:指定用来训练模型的案例数目。算法会取小于以下两者:SAMPLE_SIZE或total_cases *(1-HOLDOUT_PERCENTAGE/100)。
挖掘模型查看器:
“挖掘模型查看器”展示该挖掘模型的结果,通过通过柱状图表示某一变量的取值状态对预测变量影响的方向和大小。
提升图:
分类矩阵:
参考文献:
Microsoft 神经网络算法
http://msdn.microsoft.com/zh-cn/library/ms174941(v=sql.105).aspx