数据挖掘算法是创建挖掘模型的机制。若要创建模型,算法将首先分析一组数据,查找特定模式和趋势。然后,算法将使用此分析的结果来定义挖掘模型的参数。
算法创建的挖掘模型可以采用多种形式,这包括:
说明在交易中如何将产品分组到一起的一组规则。 预测特定用户是否会购买某个产品的决策树。 预测销量的数学模型。
说明数据集中的事例如何相关的一组分类。
Microsoft SQL Server 2005 Analysis Services (SSAS) 提供了几个供您在数据挖掘解决方案中使用的算法。这些算法是所有可用于数据挖掘的算法的子集。您还可以使用符合 OLE DB for Data Mining 规范的第三方算法。有关第三方算法的详细信息,请参阅插件算法。
算法回顾
Analysis Services 包括了以下算法类型:
分类算法基于数据集中的其他属性预测一个或多个离散变量。分类算法的一个示例是 Microsoft 决策树算法。
回归算法基于数据集中的其他属性预测一个或多个连续变量,如利润或亏损。回归算法的一个示例是 Microsoft 时序算法。 分割算法将数据划分为组或分类,这些组或分类的项具有相似属性。分割算法的一个示例是 Microsoft 聚类分析算法。
关联算法查找数据集中的不同属性之间的相关性。这类算法最常见的应用是创建可用于市场篮分析的关联规则。关联算法的一个示例是 Microsoft 关联算法。
顺序分析算法汇总数据中的常见顺序或事件,如 Web 路径流。顺序分析算法的一个示例是 Microsoft 顺序分析和聚类分析算法。
应用算法
为特定的业务任务选择正确的算法很有挑战性。您可以使用不同的算法来执行同样的业务任务,每个算法会生成不同的结果,而某些算法还会生成多种类型的结果。例如,您不仅可以将 Microsoft 决策数算法用于预测,而且还可以将它用作一种减少数据集的列数的方法,因为决策树能够识别出不影响最终挖掘模型的列。
算法不必使用,在一个数据挖掘解决方案中可以使用一些算法来探析数据,而使用其他算法基于该数据预测特定结果。例如,可以使用聚类分析算法来识别模式,将数据细分成多少有点相似的组,然后使用分组结果来创建更好的决策数模型。可以在一个解决方案中使用多个算法
来执行不同的任务,例如,使用回归树算法来获取财务预测信息,使用基于规则的算法来执行市场篮分析。
挖掘模型可以预测值、生成数据摘要并查找隐含的相关性。为帮助您选择用于数据挖掘解决方案的算法,下表给出了可为特定的任务使用哪些算法的建议。
可使用的 Microsoft 任务 算法 Microsoft 决策树算法 Microsoft Naive Bayes 算法 预测离散属性。例如,预测目标邮件活动的收件人是否会购买某个产品。 Microsoft 聚类分析算法 Microsoft 神经网络算法 (SSAS) Microsoft 决策树算法 预测连续属性。例如,预测下一年的销量。 Microsoft 时序算法 Microsoft 顺序分析和预测顺序。例如,执行公司网站的点击流分析。 聚类分析算法 查找交易中的常见项的组。例如,使用市场篮分析来建议客户购买其他产品。 Microsoft 关联算法 Microsoft 决策树算法 Microsoft 聚类分析算查找相似项的组。例如,将人口统计数据分割为组以便更好地理解属性之间的关系。 法 Microsoft 顺序分析和聚类分析算法 因为各个模型返回不同类型的结果,所以 Analysis Services 为每个算法提供单独的查看器。在 Analysis Services 中浏览挖掘模型时,该模型会使用模型的相应查看器,显示在数据挖掘设计器的“挖掘模型查看器”选项卡上。有关详细信息,请参阅查看数据挖掘模型。
Microsoft 决策树算法
Microsoft 决策树算法是由 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的分类和回归算法,用于对离散和连续属性进行预测性建模。
对于离散属性,该算法根据数据集中输入列之间的关系进行预测。它使用这些列的值或状态预测指定的可预测列的状态。具体地说,该算法标识与可预测列相关的输入列。例如,在预测哪些客户可能购买自行车的方案中,假如在十名年轻客户中有九名购买了自行车,但在十名年龄较大的客户中只有两名购买了自行车,则该算法从中推断出年龄是自行车
购买情况的最佳预测因子。决策树根据朝向特定结果发展的趋势进行预测。
对于连续属性,该算法使用线性回归确定决策树的拆分位置。 如果有多个列设置为可预测列,或输入数据包含设置为可预测的嵌套表,则该算法将为每个可预测列分别生成一个决策树。
示例
Adventure Works Cycle 公司的市场部需要标识其以前客户的特征,这些特征可以指示这些客户以后是否有可能购买其产品。
AdventureWorks 数据库存储了描述其以前客户的人口统计信息。通过使用 Microsoft 决策树算法分析这些信息,市场部可以生成一个模型,该模型根据有关特定客户的已知列的状态(如人口统计或以前的购买模式)预测该客户是否会购买产品。
算法的原理
Microsoft 决策树通过在树中创建一系列拆分(也称为节点)来生成数据挖掘模型。每当发现输入列与可预测列密切相关时,算法便会向该模型中添加一个节点。该算法确定拆分的方式不同,主要取决于它预测的是连续列还是离散列。有关 Microsoft 决策树算法如何处理可预测的离散列的详细说明,请参阅 Scalable Classification over SQL Databases 和 Learning Bayesian Networks: The Combination of Knowledge and Statistical Data。有关 Microsoft 决策树算法
如何处理可预测的连续列的详细信息,请参阅 Autoregressive Tree Models for Time-Series Analysis的附录。
预测离散列
通过柱状图可以演示 Microsoft 决策树算法为可预测的离散列生成树的方式。下面的关系图显示了一个根据输入列 Age 绘出可预测列 Bike Buyers 的柱状图。该柱状图显示了客户的年龄可帮助判断该客户是否将会购买自行车。
该关系图中显示的关联将会使 Microsoft 决策树算法在模型中创建一个新节点。
随着算法不断向模型中添加新节点,便形成了树结构。该树的顶端节点描述了客户总体可预测列的分解。随着模型的不断增大,该算法将考虑所有列。
预测连续列
当 Microsoft 决策树算法根据可预测的连续列生成树时,每个节点都包含一个回归公式。拆分出现在回归公式的每个非线性点处。例如,请看下面的关系图。
该关系图包含可通过使用一条或两条连线建模的数据。不过,一条连线将使得模型表示数据的效果较差。相反,如果使用两条连线,则模型可以更精确地逼近数据。两条连线的相交点是非线性点,并且是决策树模型中的节点将拆分的点。例如,与上图中的非线性点相对应的节点可以由以下关系图表示。两个等式表示两条连线的回归等式。
使用算法
决策树模型必须包含一个键列、若干输入列和一个可预测列。
Microsoft 决策树算法支持特定的输入列内容类型、可预测列内容类型和建模标志,如下表所示。 输入列内容类型 可预测列Continuous、Cyclical、Discrete、Discretized、Key、Table 和 Ordered Continuous、Cyclical、Discrete、Discretized、Table 和 内容类型 Ordered MODEL_EXISTENCE_ONLY、NOT NULL 和 建模标志 REGRESSOR 所有 Microsoft 算法均支持一些通用的函数。但 Microsoft 决策树算法还支持其他函数,如下表所示。 IsDescendant IsInNode PredictAdjustedProbability PredictAssociation PredictHistogram PredictNodeId PredictProbability PredictStdev PredictSupport PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 决策树算法支持使用预测模型标记语言 (PMML) 创建挖掘模型。
Microsoft 决策树算法支持多个参数,这些参数会对所生成的挖掘模型的性能和准确性产生影响。下表对各参数进行了说明:
参数 说明 定义算法在调用功能选择之前可以处理的输入属性数。如果将MAXIMUM_INPUT_ATTRIBUTES 此值设置为 0,则表示关闭功能选择。 默认值为 255。 定义算法在调用功能选择之前可以处理的输出属性数。如果将此值设置为 0,则表示关闭功能MAXIMUM_OUTPUT_ATTRIBUTES 选择。 默认值为 255。 确定用于计算拆分分数的方法。可用选项包括:Entropy (1)、Bayesian with K2 Prior (2) SCORE_METHOD 或 Bayesian Dirichlet Equivalent (BDE) Prior (3)。 默认值为 3。 确定用于拆分节点的方法。可用选项包括:Binary (1)、SPLIT_METHOD Complete (2) 或 Both (3)。 默认值为 3。 确定在决策树中生成拆分所需MINIMUM_SUPPORT 的叶事例的最少数量。 默认值为 10。 控制决策树的增长。该值较低时,会增加拆分数;该值较高时,COMPLEXITY_PENALTY 会减少拆分数。默认值基于特定模型的属性数,详见以下列表:
对于 1 到 9 个属性,默认值为 0.5。 对于 10 到 99 个属性,默认值为 0.9。 对于 100 或更多个属性,默认值为 0.99。 强制算法将指示的列用作回归量,而不考虑算法为这些列计算FORCED_REGRESSOR 出的重要性。此参数只用于预测连续属性的决策树。 请参阅
Microsoft 聚类分析算法
Microsoft 聚类分析算法是由 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的分段算法。该算法使用迭代技术将数据集中的事例分组为包含类似特征的分类。在浏览数据、标识数据中的异常及创建预测时,这些分组十分有用。
聚类分析模型标识数据集中可能无法通过随意观察在逻辑上得出的关系。例如,在逻辑上可以得知,骑自行车上下班的人的居住地点通常离其工作地点不远。但该算法可以找出有关骑自行车上下班人员的其他并
不明显的特征。在下面的关系图中,分类 A 表示有关通常开车上班人员的数据,而分类 B 表示通常骑自行车上班人员的数据。
聚类分析算法不同于 Microsoft 决策树算法等其他数据挖掘算法,区别在于无需指定可预测列便能生成聚类分析模型。聚类分析算法严格地根据数据以及该算法所标识的分类中存在的关系定型。
示例
考虑这样一组人员,他们共享类似的人口统计信息并从 Adventure Works 公司购买类似的产品。这组人员就表示一个数据分类。数据库中可能存在多个这样的分类。通过观察构成分类的各列,可以更清楚地了解数据集中的记录如何相互关联。
算法的原理
Microsoft 聚类分析算法首先标识数据集中的关系并根据这些关系生成一系列分类。散点图是一种非常有用的方法,可以直观地表示算法如何对数据进行分组,如下面的关系图所示。散点图可以表示数据集中的所有事例,在该图中每个事例就是一个点。分类对该图中的点进行分组并阐释该算法所标识的关系。
在最初定义分类后,算法将通过计算确定分类表示点分组情况的适合程度,然后尝试重新定义这些分组以创建可以更好地表示数据的分类。该算法将循环执行此过程,直到它不能再通过重新定义分类来改进结果为止。
Microsoft 聚类分析算法提供下列两种方法来计算点在分类中的适合程度:Expectation Maximization (EM) 和 K-Means。对于 EM 聚类分析,该算法使用一种统计方法来确定分类中存在数据点的概率。对于 K-Means,该算法使用距离度量值将数据点分配给其最接近的分类。
生成分类时不使用其用法设置为只预测的列。在生成分类后,将计算这些列在分类中的分布。
有关 Microsoft 聚类分析算法工作原理的更详细说明,请参阅 Scaling EM (Expectation Maximization) Clustering to Large Databases。
使用算法
聚类分析模型必须包含一个键列和若干输入列。还可以将输入列定义为可预测列。
该算法支持特定输入列内容类型、可预测列内容类型和建模标志,如下表所示。
输入列内容Continuous、Cyclical、Discrete、Discretized、Key、类型 Table 和 Ordered 可预测列内Continuous、Cyclical、Discrete、Discretized、Table 容类型 和 Ordered 建模标志 MODEL_EXISTENCE_ONLY 和 NOT NULL 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 聚类分析算法还支持下表中列出的其他函数。 Cluster ClusterProbability IsDescendant IsInNode PredictAdjustedProbability PredictAssociation PredictHistogram PredictCaseLikelihood PredictNodeId PredictProbability PredictStdev PredictSupport PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 聚类分析算法支持使用预测模型标记语言 (PMML) 创建挖掘模型。
Microsoft 聚类分析算法支持多个参数,这些参数会对所生成的挖掘模型的性能和准确性产生影响。下表对各参数进行了说明:
参数 说明 指定算法要使用的聚类分析方法。有下列聚类分析方法可用:scalable EM (1)、non-scalable CLUSTERING_METHOD EM (2)、scalable K-Means (3) 和 non-scalable K-Means (4)。 默认值为 1。 指定将由算法生成的大致分类数。如果无法基于相应的数据生成该CLUSTER_COUNT 大致数目的分类,则算法将生成尽可能多的分类。如果将 CLUSTER_COUNT 设置为 0,则算法将使用试探性方法最准确地确定要生成的分类数。 默认值为 10。 指定在为建模初始阶段随机生成CLUSTER_SEED 分类时所要使用的种子数字。 默认值为 0。 指定每个分类中的最小事例数。 MINIMUM_SUPPORT 默认值为 1。 指定在聚类分析过程中构建的示MODELLING_CARDINALITY 例模型数。 默认值为 10。 指定一个值,它可确定何时达到收敛而且算法完成建模。当分类概率中的整体变化小于 STOPPING_TOLERANCE STOPPING_TOLERANCE 参数与模型大小之比时,即达到收敛。 默认值为 10。 SAMPLE_SIZE 如果 CLUSTERING_METHOD 参数设置为其中一个可缩放聚类分析方法,请指定算法在每个传递中使用的事例数。如果将 SAMPLE_SIZE 参数设置为 0,则会在单个传递中对整个数据集进行聚类分析操作,从而导致内存和性能问题。 默认值为 50000。 指定算法在调用功能选择之前可以处理的最大输入属性数。如果将此值设置为 0,则指定不输入MAXIMUM_INPUT_ATTRIBUTES 属性的最大数量。 默认值为 255。 指定算法支持的最大属性状态数。如果属性的状态数大于该最大状MAXIMUM_STATES 态数,算法将使用该属性的最常见状态,同时忽略剩余状态。 默认值为 100。 Microsoft Naive Bayes 算法
Microsoft Naive Bayes 算法是 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的一种分类算法,用于预测性建模。该算法在假定列互不相关的前提下计算输入列和可预测列之间的条件概率。该算法的名称 Naive Bayes 即由这一无关性假定而来,因为基于这种理想化的假定,该算法未将可能存在的依赖关系考虑在内。 与其他 Microsoft 算法相比,该算法所需的运算量小,因而能够快速生成挖掘模型,以发现输入列和可预测列之间的关系。可以使用该算法进行初始数据探测,然后根据该算法的结果使用其他运算量较大、更加精确的算法创建其他挖掘模型。
示例
作为正在进行的促销策略,Adventure Works Cycle 公司的市场部已经决定通过发送宣传资料将目标定位为潜在的客户。为了降低成本,他们只向有可能做出反应的客户发送宣传资料。该公司将有关客户统计数据以及对上一邮件的反映的信息存储在数据库中。他们希望利用这些数据将潜在客户和具备相同特征并曾经购买过公司产品的客户进行对比,以了解年龄和位置等统计数据如何帮助预测客户对促销的响应。他们尤其希望找出购买自行车的客户与未购买自行车的客户之间的差别。 使用 Microsoft Naive Bayes 算法,市场部能够快速预测特定客户群的结果,进而确定最有可能对邮件做出响应的客户。而使用 Business Intelligence Development Studio 中的 Microsoft Naive Bayes
查看器,他们还能够以直观的方式专门调查哪些输入列有助于对宣传资料做出积极响应。
算法的原理
在给定可预测列的各种可能状态的情况下,Microsoft Naive Bayes 算法将计算每个输入列的每种状态的概率。使用 Business
Intelligence Development Studio 中的 Microsoft Naive Bayes 查看器可以直观地观察算法分布状态的方式,如下图所示。
Microsoft Naive Bayes 查看器可列出数据集中的每个输入列。如果提供了可预测列的每种状态,它还会显示每一列中状态的分布情况。可以利用该视图确定在区分可预测列状态中具有重要作用的输入列。例
如,在此图的 Commute Distance 列中,通勤距离为一至二英里的客户购买自行车的概率是 0.387,不购买自行车的概率是 0.287。在本示例中,该算法使用从诸如上下班路程之类的客户特征得出的数字信息来预测客户是否会购买自行车。有关如何使用 Microsoft Naive Bayes 查看器的详细信息,请参阅使用 Microsoft Naive Bayes 查看器查看挖掘模型。
使用算法
Naive Bayes 模型必须包含一个键列、若干输入列以及一个可预测列。所有列都必须是离散列或经过离散化的列。有关离散化列的详细信息,请参阅离散化方法。
Microsoft Naive Bayes 算法支持特定输入列内容类型、可预测列内容类型和建模标志,如下表所示。
输入列内容类Cyclical、Discrete、Discretized、Key、Table 和 型 可预测列内容Cyclical、Discrete、Discretized、Table 和 Ordered 类型 建模标志 MODEL_EXISTENCE_ONLY 和 NOT NULL Ordered 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft Naive Bayes 算法还支持其他函数,如下表所示。
IsDescendant PredictAdjustedProbability PredictAssociation PredictHistogram PredictNodeId PredictProbability PredictSupport 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft Naive Bayes 算法不支持使用预测模型标记语言 (PMML) 创建挖掘模型。
Microsoft Naive Bayes 算法支持对所生成挖掘模型的性能和精度有影响的若干参数。下表对各参数进行了说明:
参数 说明 指定算法在调用功能选择之前可以处理的最大输入属性数。如果将此值MAXIMUM_INPUT_ATTRIBUTES 设置为 0,则为输入属性禁用功能选择。 默认值为 255。 指定算法在调用功能选择之前可以处理的最大输出属性数。如果将此值MAXIMUM_OUTPUT_ATTRIBUTES 设置为 0,则为输出属性禁用功能选择。 默认值为 255。 指定输入属性和输出属性之间的最小依赖关系概率。该值用于算法生成的内容大小。该属性可设置为介于 0 和 1 MINIMUM_DEPENDENCY_PROBABILITY 之间的值。该值越大,模型内容中的属性数就越少。 默认值为 0.5。 指定算法支持的最大属性状态数。如果属性的状MAXIMUM_STATES 态数大于该最大状态数,算法将使用该属性的最常见状态,并将剩余状态视为不存在。 默认值为 100。
Microsoft 关联算法
Microsoft 关联算法是指 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的关联算法,对建议引擎非常有用。建议引擎根据客户已购买的项或者客户已对其表现出兴趣的项向他们推荐产品。Microsoft 关联算法对市场篮分析也非常有用。有关市场篮分析的详细信息,请参阅“数据挖掘教程”中的第 4 课:生成市场篮方案。 关联模型基于包含各事例的标识符及各事例所包含项的标识符的数据集生成。事例中的一组项称为“项集”。关联模型由事例中一系列项集和说明这些项如何分组的规则组成。算法标识的规则可用于根据客户购物车中已有的项来预测客户将来可能购买的产品。以下关系图显示了项集中的一系列规则。
正如该关系图中所示,Microsoft 关联算法可能会在数据集中找到许多规则。该算法使用两个参数(support 和 probability)来说明项集以及该算法生成的规则。例如,如果 X 和 Y 表示购物车中可能有的两
个项,则 support 参数是数据集中包含 X 和 Y 这两项组合的事例的数目。通过将 support 参数与用户定义的 MINIMUM_SUPPORT 和 MAXIMUM_SUPPORT 参数结合使用,该算法可控制生成的项集数。probability 参数也称为“置信度”,表示数据集中既包含 X 也包含 Y 的一部分事例。通过将 probability 参数与
MINIMUM_PROBABILITY 参数结合使用,该算法可控制生成的规则数。
示例
Adventure Works Cycle 公司正在重新设计其网站的功能。重新设计的目的是提高产品的零售量。由于该公司在事务数据库中记录了每个销售,因此它们可以使用 Microsoft 关联算法来标识倾向于集中购买的产品集。然后,它们可以根据客户购物篮中已有的项预测客户可能感兴趣的其他项。
算法的原理
Microsoft 关联算法遍历数据集以查找同时出现在某个事例中的项。然后,该算法将最少出现了由 MINIMUM_SUPPORT 参数指定的最少事例数次数的关联项分为项集。例如,项集可以为“Mountain 200=Existing, Sport 100=Existing”,并且支持的数目可以为 710,那么该算法将根据项集生成规则。可以使用这些规则根据是否存在该算法标识为重要项的其他特定项,预测数据库中的某项是否存在。例如,某规则可以为“if Touring 1000=existing and Road bottle
cage=existing, then Water bottle=existing”,并且其概率可能为 0.812。在此例中,该算法发现由于购物篮中存在 Touring 1000 轮胎和水壶套,因此预测购物篮中也可能存在水壶。
使用算法
关联模型必须包含一个键列、多个输入列以及一个可预测列。输入列必须为离散列。关联模型的输入数据通常包含在两个表中。例如,一个表可能包含客户信息,而另一个表可能包含客户购物情况。您可以使用嵌套表将该数据输入到模型中。有关嵌套表的详细信息,请参阅嵌套表。 Microsoft 关联算法支持下表中列出的特定输入列内容类型、可预测列内容类型以及建模标志。
输入列内容类Cyclical、Discrete、Discretized、Key、Table 和 型 可预测列内容Cyclical、Discrete、Discretized、Table 和 Ordered 类型 建模标志 MODEL_EXISTENCE_ONLY 和 NOT NULL Ordered 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 关联算法还支持下表中列出的其他函数。 IsDescendant PredictHistogram IsInNode PredictAdjustedProbability PredictAssociation PredictNodeId PredictProbability PredictSupport 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 关联算法不支持使用预测模型标记语言 (PMML) 创建挖掘模型。
Microsoft 关联算法支持数个影响生成的挖掘模型的性能和准确性的参数。下表对各参数进行了说明:
参数 说明 指定在该算法生成规则之前必须包含项集的事例的最小数目。将该值设置为小于 1 将指定MINIMUM_SUPPORT 最小事例数作为事例总计的百分比。将该值设置为大于 1 的整数将指定最小事例数作为必须包含项集的事例的绝对数。如果内存有限,则该算法可能会增大此参数的值。 默认值为 0.03。 指定支持项集的事例的最大数目。如果该值小于 1,则表示事例总计的百分比。大于 1 的MAXIMUM_SUPPORT 值表示可以包含项集的事例的绝对数。 默认值为 1。 指定一个项集中允许的最小项MINIMUM_ITEMSET_SIZE 数。 默认值为 1。 指定一个项集中允许的最大项数。将该值设置为 0 将指定对MAXIMUM_ITEMSET_SIZE 项集的大小没有。 默认值为 3。 指定要生成的最大项集数。如果MAXIMUM_ITEMSET_COUNT 未指定数目,则该算法将生成所有可能的项集。 默认值为 200000。 指定规则为 True 的最小概率。例如,将该值设置为 0.5 MINIMUM_PROBABILITY 将指定不生成概率小于百分之五十的规则。 默认值为 0.4。 定义为进行预测而需要缓存或OPTIMIZED_PREDICTION_COUNT 优化的项数。 Microsoft 顺序分析和聚类分析算法
Microsoft 顺序分析和聚类分析算法是由 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的一种顺序分析算法。您可以使用该算法来研究包含可通过下面的路径或“顺序”链接到的事件的数据。该算法通过将相同的顺序分到一组或一类中来查找最常见的顺序。这些顺序可以采取多种格式,包括:
用来说明用户浏览网站时的点击路径的数据。
用来说明客户将商品添加到在线零售商的购物车中的顺序的数据。
该算法类似于 Microsoft 聚类分析算法。不过,Microsoft 顺序分析和聚类分析算法不是查找包含类似属性的事例的分类,而是查找顺序中包含类似路径的事例的分类。
该算法创建的挖掘模型在数据中包含了最常见顺序的说明。您可以使用这些说明来预测新顺序的下一个可能步骤。在对记录进行分类时,该算法还在数据中对与顺序没有直接关系的列进行了说明。因为该算法包括了非相关列,所以您可以使用得到的模型来识别顺序数据和没有出现在顺序中的数据之间的关系。 示例
Adventure Works 公司的网站收集有关站点用户访问什么页面的信息和有关网页访问顺序的信息。因为该公司提供在线订购,所以用户必须登录到此站点。这可以为该公司的各个客户配置文件提供点击信息。通过对此数据使用 Microsoft 顺序分析和聚类分析算法,该公司可以查找具有相同的点击模式或点击顺序的客户组或分类。然后,该公司可以使用这些分类来分析用户如何在网站中移动,来识别哪些页面与特定产品的销售关系最密切及预测接下来哪些页面最有可能被访问。
算法的原理
该算法采用期望最大化 (EM) 聚类分析方法来识别分类及其顺序。该算法明确地使用某种概率性方法来确定某个数据点存在于某个分类中的概率。有关 Microsoft 聚类分析算法中如何使用此聚类分析方法的说明,请参阅 Microsoft 聚类分析算法。
Microsoft 顺序分析和聚类分析算法使用的输入列之一是一个嵌套表,该表中包含序列数据。此数据是某个数据集(例如产品购买或 Web 点击)中的各个事例的一系列状态转换。为确定哪个顺序列用作聚类分析
的输入列,该算法度量该数据集中所有可能顺序之间的差异或距离。在度量完这些距离后,该算法将该顺序列用作聚类分析的 EM 方法的输入。
使用算法
顺序聚类分析模型需要一个用来标识记录的键和一个包含顺序相关列(例如标识顺序中的事件的网页标识符)的嵌套表。每个顺序只允许有一个顺序相关列,且每个模型中只允许有一种类型的顺序。若要在本主题前面提到的示例方案中创建一个模型,您需要创建一个包含两个表的数据源。第一个表用来包含订单,第二个表用来包含订单放置到购物车的顺序。
Microsoft 顺序分析和聚类分析算法支持下表中列出的特定输入列内容类型、可预测列内容类型和建模标志。
输入列内Continuous、Cyclical、Discrete、Discretized、Key、容类型 Key Sequence、Table 和 Ordered 可预测列Continuous、Cyclical、Discrete、Discretized、Table 和 内容类型 Ordered 建模标志 MODEL_EXISTENCE_ONLY 和 NOT NULL 所有 Microsoft 算法均支持一些通用的函数。不过,Microsoft 顺序分析和聚类分析算法支持下表中列出的其他函数。
Cluster ClusterProbability IsDescendant IsInNode PredictAdjustedProbability PredictAssociation PredictCaseLikelihood PredictHistogram PredictNodeId PredictProbability PredictSequence PredictStdev PredictSupport PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 顺序分析和聚类分析算法不支持使用预测性模型标记语言 (PMML) 来创建挖掘模型。
Microsoft 顺序分析和聚类分析算法支持几个影响所得到的挖掘模型的性能和准确性的参数。下表对各参数进行了说明:
参数 CLUSTER_COUNT 说明 指定将由算法生成的大致分类数。如果无法基于相应的数据生成该大致数目的分类,则算法将生成尽可能多的分类。如果将 CLUSTER_COUNT 设置为 0,则算法将使用试探性方法最准确地确定要生成的分类数。 默认值为 10。 指定每个分类中的最小事例数。 MINIMUM_SUPPORT 默认值为 10。 指定一个顺序可以拥有的最大状态数。将该值设置为大于 100 的数将导致算法创建一个不提供有MAXIMUM_SEQUENCE_STATES 意义的信息的模型。 默认值为 。 指定算法支持的非顺序属性的最大状态数。如果某个非顺序属性的MAXIMUM_STATES 状态数大于该最大状态数,则算法将使用该属性最常见的状态并将剩余状态视为不存在。 默认值为 100。 Microsoft 时序算法
Microsoft 时序算法是 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的回归算法,用于创建数据挖掘模型以预测连续列,如预测方案中的产品销售额。其他 Microsoft 算法创建依靠给定输入列来预测可预测列的模型(如决策树模型),而时序模型的预测则仅根据算法在创建模型时从原始数据集派生的趋势。以下关系图显示了一个典型模型,用于预测各个时间的销售额。
关系图中显示的该模型由两部分组成:历史信息以红色显示,预测信息以蓝色显示。红色数据代表算法用于创建模型的信息,而蓝色数据则代表模型作出的预测。由红色数据和蓝色数据联合形成的线称为“序列”。每个预测模型必须包含一个事例序列,即区分序列列中不同点的列。例如,因为关系图中的数据显示了几个月中的历史和预测销售额序列,因此数据列为事例序列。
Microsoft 时序算法的一个重要功能就是可以执行交叉预测。也就是说,如果使用两个单独但相关的序列为该算法定型,就可以使用得到的模型根据其他序列的行为预测一个序列的结果。例如,一个产品的实际销售额可能会影响另一个产品的预测销售额。
示例
Adventure Works Cycle 公司的管理层希望预测来年的自行车每月销售额。该公司尤其关注的是不同型号的自行车的销售是否彼此相关,一种自行车型号的销售情况是否可用于预测另一种型号的销售情况。通过对过去三年的历史数据使用 Microsoft 时序算法,该公司可以生成一个数据挖掘模型,用于预测未来的自行车销售情况。此外,该公司还可以执行交叉预测,以查看各个自行车型号的销售趋势是否相关。
算法的原理
Microsoft 决策树算法通过使用自动回归决策树来为模型定型。每个模型都包含一个 KEY TIME 列,该列定义了模型将定义的时间段。该算法将过去的项的可变数目关联到要预测的每个当前项目。 有关 Microsoft 时序算法如何运行的详细说明,请参阅 Autoregressive Tree Models for Time-Series Analysis。 可以用两种方式定义 Microsoft 时序模型的输入数据。为了了解第一种方法,请考虑下表中的输入事例:
TimeID Product Sales Volume 1/2001 2/2001 1/2001 2/2001 A A B B 1000 1100 500 300 600 500 900 0 表中的 TimeID 列包含一个时间标识符,每个日期有两个条目。Product 列定义数据库中的产品。Sales 列说明指定产品一天的毛利润,Volume 列说明仓库中保存的指定产品的数量。在本例中,模型可以包含两个可预测列:Sales 和 Volume。 此外,时序模型的输入数据可定义为如下表所示:
TimeID A_Sales A_Volume B_Sales B_Volume 1/2001 2/2001 1000 1100 600 500 500 300 900 0 在上表中,Sales 和 Volume 列分别被拆分成两列,每个列都用产品名称作前缀。结果,TimeID 列中每天只有一个条目。该模型包含了四个可预测列:A_Sales、A_Volume、B_Sales 和 B_Volume。 这两种定义输入数据的方法都会使模型中显示相同信息,而输入事例的格式将改变定义挖掘模型的方式。
使用算法
时序算法要求要预测的列必须是连续的。每个模型只允许使用一个事例序列。
Microsoft 时序算法支持特定输入列内容类型、可预测列内容类型和建模标志,这些类型和标志如下表所列。 输入列内容类型 Continuous、Key、Key Time 和 Table 可预测列内容类型 Continuous 和 Table 建模标志 NOT NULL 和 REGRESSOR 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 时序算法还支持下表所列的其他函数。 Lag PredictNodeId PredictStdev PredictTimeSeries PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 时序算法不支持使用预测模型标记语言 (PMML) 创建挖掘模型。
Microsoft 时序算法支持多个参数,这些参数可影响生成的挖掘模型的性能和准确性。下表对各参数进行了说明:
参数 说明 指定在每个时序树中生成一个MINIMUM_SUPPORT 拆分所需的最小时间段数。 默认值为 10。 控制决策树的增长。减少该值将增加拆分的可能性。增加该值将COMPLEXITY_PENALTY 降低拆分的可能性。 默认值为 0.1。 提供算法的有关数据周期的提示。例如,如果销售逐年变化,序列中的度量单位是月,则周期PERIODICITY_HINT 为 12。此参数采用 {n [, n]} 的格式,其中的 n 是任意正数。方括号 [] 中的 n 是可选项,可以按需重复多次。 默认值为 {1}。 指定用于填充历史数据中空白的方法。默认情况下,数据中不允许存在不规则的空白或参差不齐的边缘。以下是可用来填充MISSING_VALUE_SUBSTITUTION 不规则空白或边缘的方法:使用以前的值、使用平均值或使用特定数值常量。 指定一个介于 0 和 1 之间的数字值,用于检测周期。如果将此值设置为更接近于 1 的数,则允许查找许多接近周期的模式并允许自动生成周期提示。处AUTO_DETECT_PERIODICITY 理大量的周期提示可能会导致模型定型时间明显加长,模型更准确。如果将此值设置为更接近于 0 的数,则只检测周期性强的数据的周期。 默认值为 0.6。 HISTORIC_MODEL_COUNT 指定将要生成的历史模型的数量。 默认值为 1。 Microsoft 神经网络算法
在 Microsoft SQL Server 2005 Analysis Services (SSAS) 中,Microsoft 神经网络算法通过构造多层感知器网络创建分类和回归挖掘模型。与 Microsoft 决策树算法相类似,当给定可预测属性的每个状态时,Microsoft 神经网络算法可以计算输入属性的每个可能状态的概率。之后,可以根据输入属性,使用这些概率预测被预测属性的结果。
示例
Microsoft 神经网络算法对分析复杂输入数据(如来自制造或商业流程的数据)很有用;对于那些提供了大量定型数据,但使用其他算法很难为其派生规则的业务问题,这种算法也很有用。 在以下情况下,建议使用 Microsoft 神经网络算法:
营销和促销分析,如评估直接邮件促销或一个电台广告活动的成功情况。
根据历史数据预测股票升降、汇率浮动或其他频繁变动的金融信息。
分析制造和工业流程。
算法的原理
Microsoft 神经网络算法使用由三层神经元(即感知器)组成的多层感知器网络,该网络也称为反向传播 Delta 法则网络。这些层分别是输入层、可选隐藏层和输出层。在一个多层感知器网络中,每个神经元接收一个或多个输入,产生一个或多个相同的输出。每个输出都是对神经元的输入之和的简单非线性函数。输入只是从输入层中的节点传递到隐藏层中的节点,最后传递到输出层。同一层中的神经元之间没有连接。(如果没有隐藏层,则输入从输入层中的节点传递到输出层中的节点。)有关多层感知器神经网络的详细探讨不属于本文档的范围。
使用 Microsoft 神经元网络算法构造的挖掘模型可以包含多个网络,这取决于用于输入和预测的列的数量,或者取决于仅用于预测的列的数量。一个挖掘模型包含的网络数取决于挖掘模型使用的输入列和预测列包含的状态数。
在使用 Microsoft 神经网络算法创建的神经网络中,存在三种神经元类型:
输入神经元
输入神经元提供数据挖掘模型的输入属性值。对于离散输入属性,输入神经元通常代表输入属性的单个状态,其中包括缺少的值。例如,一个二进制输入属性生成一个输入节点,该节点说明缺少的或现有的状态,并指示该属性是否存在值。用作输入属性的 Boolean 列可生
成三个输入神经元:一个神经元用于 True 值,一个神经元用于 False 值,还有一个神经元用于缺少或现有的状态。具有两个以上状态的离散输入属性可为每个状态生成一个输入神经元,并为缺少的或现有的状态生成一个输入神经元。一个连续的输入属性可生成两个输入神经元:一个是针对缺少的或现有的状态的神经元,一个是针对连续属性自身的值的神经元。输入神经元可向一个或多个隐藏神经元提供输入。 隐藏神经元
隐藏神经元接收来自输入神经元的输入,并向输出神经元提供输出。 输出神经元
输出神经元代表数据挖掘模型的可预测属性值。对于离散输入属性,输出神经元通常代表可预测属性的单个预测状态,其中包括缺少的值。例如,一个二进制可预测属性可生成一个输出节点,该节点说明缺少的或现有的状态,以指示该属性是否存在值。用作可预测属性的 Boolean 列可生成三个输出神经元:一个神经元用于 True 值,一个神经元用于 False 值,还有一个神经元用于缺少或现有的状态。具有两种以上状态的离散可预测属性可为每个状态生成一个输出神经元,并为缺少的或现有的状态生成一个输出神经元。连续可预测列可生成两个输出神经元:一个是针对缺少的或现有的状态的神经元,
一个是针对连续列本身的值的神经元。如果通过检查可预测列集生成了 500 个以上的输出神经元,则 Analysis Services 将在挖掘模型中生成一个新的网络,用于代表超出部分的输出神经元。 神经元可接收多个输入:对于输入神经元,神经元接收来自原始数据的输入;对于隐藏神经元和输出神经元,神经元接收来自神经网络中其他神经元的输出的输入。输入在神经元之间建立了关系,而这些关系可用作分析特定事例集时的路径。
为每个输入都分配了一个称为“权重”的值,该值用于说明特定的输入对于隐藏神经元或输出神经元的相关性和重要性。分配给输入的权重值越大,则该输入与算法在确定该输入是否成功分类一个特定事例时所收到的神经元的相关性就越高,重要性也就越大。另请注意,权重可以是负值,表示输入可能抑制而不是激活特定神经元。输入值与权重相乘可以强调特定神经元的输入。(对于负权重值,输入值与权重相乘可降低重要性。)
相应地,每个神经元都分配有一个称为“激活函数”的简单非线性函数,用于说明特定神经元对于神经网络层的相关性或重要性。隐藏神经元使用双曲正切函数作为其激活函数,但输出神经元使用 S 函数 (Sigmoid) 作为其激活函数。这两个函数都是非线性连续函数,允许神经网络在输入和输出神经元之间建立非线性关系模型。
为神经网络定型
在为使用 Microsoft 神经网络算法的数据挖掘模型定型时,涉及到若干个步骤。这些步骤与为该算法的可用参数指定的值紧密相关。 该算法首先根据数据源处理并提取定型数据。定型数据的百分比(称为“维持数据”)保留用于度量生成的模型的结构的准确性。在定型过程中,在每次迭代定型数据后,根据维持数据处理模型。当模型的准确性不再提高时,定型过程便会停止。SAMPLE_SIZE 和
HOLDOUT_PERCENTAGE 参数的值用于确定定型数据中作为示例的事例数以及供维持数据备用的事例数。HOLDOUT_SEED 参数用于随机确定供维持数据备用的单个事例。
该算法下一步是确定挖掘模型支持的网络的数目和复杂性。如果挖掘模型包含一个或多个仅用于预测的属性,该算法将创建一个代表所有这些属性的单一网络。如果挖掘模型包含一个或多个同时用于输入和预测的属性,则该算法提供程序将为每个这样的属性创建一个网络。如果输入属性数或可预测属性数分别大于 MAXIMUM_INPUT_ATTRIBUTES 参数或 MAXIMUM_OUTPUT_ATTRIBUTES 参数的值,则将使用功能选择算法来降低挖掘模型中包含的网络的复杂性。功能选择可以将输入属性或可预测属性的数目减少到与该模型在统计上最相关的数目。 对于具有离散值的输入和可预测属性,每个输入或输出神经元各自表示一个单一状态。对于具有连续属性值的输入属性和可预测属性,每个输入或输出神经元分别代表属性值的范围和分布。每种情况下支持的最大状态数取决于 MAXIMUM_STATES 算法参数的值。如果特定属性的
状态数超过 MAXIMUM_STATES 算法参数的值,则尽可能选择该算法最普遍或相关的状态,剩下的状态作为缺少的值分为一组,用于分析。 然后,该算法使用 HIDDEN_NODE_RATIO 参数的值来确定要为隐藏层创建的神经元的初始数目。可以将 HIDDEN_NODE_RATIO 设置为 0,以避免在该算法为挖掘模型生成的网络中创建隐藏层,以便将神经网络作为逻辑回归处理。
算法提供程序通过接受之前保留的定型数据集并将维持数据中的每个事例的实际已知值与网络的预测进行比较,即通过一个称为“批学习”的进程来同时迭代计算整个网络的所有输入的权重。该算法处理了整个定型数据集后,将检查每个神经元的预测值和实际值。该算法将计算错误程度(如果有错误),并调整与神经元输入关联的权重,并通过一个称为“回传”的过程从输出神经元返回到输入神经元。然后,该算法对整个定型数据集重复该过程。该算法支持多个权重和输出神经元,因此这个渐变的算法用于引导定型过程来分配和计算输入权重。有关渐变算法的探讨不属于本文档的范围。
使用算法
神经网络模型必须包含一个键列、一个或多个输入列以及一个或多个可预测列。
Microsoft 神经网络算法支持特定输入列内容类型、可预测列内容类型和建模标志,这些类型和标记如下表所列。
输入列内容Continuous、Cyclical、Discrete、Discretized、Key、类型 Table 和 Ordered 可预测列内Continuous、Cyclical、Discrete、Discretized 和 容类型 Ordered 建模标志 MODEL_EXISTENCE_ONLY 和 NOT NULL 分布标志 Normal、Uniform 和 Log Normal 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 神经网络算法还支持下表所列的其他函数。 IsDescendant PredictAdjustedProbability PredictHistogram PredictProbability PredictStdev PredictSupport PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
使用 Microsoft 神经网络算法创建的模型不支持钻取或数据挖掘维度,因为挖掘模型中节点的结构不必与基础数据直接对应。
Microsoft 神经网络算法支持多个参数,这些参数可以影响生成的挖掘模型的性能和准确性。下表对各参数进行了说明:
参数 说明 指定隐藏神经元相对于输入和输出神经元的比率。以下公式可确定隐藏层中神经元的初始数目: HIDDEN_NODE_RATIO HIDDEN_NODE_RATIO * SQRT(Total input neurons * Total output neurons) 默认值为 4.0。 指定定型数据中用于计算维持错误的事例的百分比,定型挖掘HOLDOUT_PERCENTAGE 模型时的停止条件中将用到此百分比。 默认值为 30。 指定一个数字,用作在算法随机HOLDOUT_SEED 确定维持数据时伪随机生成器的种子。如果该参数设置为 0,算法将基于挖掘模型的名称生成种子,以保证重新处理期间模型内容的一致性。 默认值为 0。 确定在应用功能选择前,可应用于算法的输入属性的最大数。如MAXIMUM_INPUT_ATTRIBUTES 果将此值设置为 0,则为输入属性禁用功能选择。 默认值为 255。 确定在应用功能选择前,可应用于算法的输出属性的最大数。如果将此值设置为 0,则为输出属MAXIMUM_OUTPUT_ATTRIBUTES 性禁用功能选择。 默认值为 255。 指定算法支持的每个属性的离散状态的最大数。如果特定属性MAXIMUM_STATES 的状态数大于为该参数指定的数,则算法将使用该属性最普遍的状态并将剩余状态作为缺少的状态处理。 默认值为 100。 指定用来给模型定型的事例数。该算法使用此数或 HOLDOUT_PERCENTAGE 参数指定的包含在维持数据中的事例总数的百分比,取两者中较小的一个。 SAMPLE_SIZE 换而言之,如果 HOLDOUT_PERCENTAGE 设置为 30,则该算法将使用此参数的值或总事例数的 70% 的值,取两者中较小的一个。 默认值为 10000。
Microsoft 逻辑回归算法
Microsoft 逻辑回归算法是 Microsoft 神经网络算法的变化形式,其中将 HIDDEN_NODE_RATIO 参数设置为 0。这样设置便可以创建
不包含隐藏层的神经网络模型,从而使该神经网络模型与逻辑回归等效。
假定可预测列仅包含两种状态,但仍希望进行回归分析,以将输入列与可预测列包含特定状态的概率关联起来。下图展示了将可预测列的状态设置为 1 和 0,计算该列包含特定状态的概率以及对输入变量执行线性回归时将获得的结果。
X 轴表示输入列的值。Y 轴表示可预测列为某状态或其他状态的概率。此时的问题是,线性回归无法将该列在 0 和 1 之间,即使它们分别是该列的最小值和最大值。解决此问题的一种方法是进行逻辑回归。逻辑回归将创建一条包含最大和最小约束的 S 形曲线,而不是一条直线。下图展示的是对上例中的数据进行逻辑回归后得到的结果。
请注意这条曲线的走向使其未超出由 1 和 0 确定的边界。可以使用逻辑回归来说明在确定可预测列状态时输入列的重要程度。
使用算法
使用 Microsoft 神经网络查看器可浏览线性回归挖掘模型。 逻辑回归模型必须包含一个键列、一个或多个输入列以及一个或多个可预测列。
Microsoft 逻辑回归算法支持特定的输入列内容类型、可预测列内容类型和建模标志,如下表所示。
输入列内容Continuous、Cyclical、Discrete、Discretized、Key、类型 Table 和 Ordered 可预测列内Continuous、Cyclical、Discrete、Discretized 和 容类型 Ordered 建模标志 MODEL_EXISTENCE_ONLY 和 NOT NULL 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 逻辑回归算法还支持其他函数,如下表所示。 IsDescendant PredictAdjustedProbability PredictHistogram PredictProbability PredictStdev PredictSupport PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
使用 Microsoft 逻辑回归算法的模型不支持钻取和数据挖掘维度,因为挖掘模型中节点的结构不一定直接与基础数据对应。
Microsoft 逻辑回归算法支持对所生成挖掘模型的性能和精度有影响的若干参数。下表对各参数进行了说明:
参数 说明 指定在用于计算维持错误的定HOLDOUT_PERCENTAGE 型数据中事例所占的百分比。在对挖掘模型定型时,HOLDOUT_PERCENTAGE 被用作停止条件的一部分。 默认值为 30。 指定一个数字,以在随机确定维持数据时作为伪随机生成器的种子。如果将 HOLDOUT_SEED 设置为 0,HOLDOUT_SEED 则算法将根据挖掘模型的名称生成种子,以保证模型内容在重新处理的过程中保持不变。 默认值为 0。 定义算法在调用功能选择之前可以处理的输入属性数。如果将MAXIMUM_INPUT_ATTRIBUTES 此值设置为 0,则表示关闭功能选择。 默认值为 255。 定义算法在调用功能选择之前可以处理的输出属性数。如果将MAXIMUM_OUTPUT_ATTRIBUTES 此值设置为 0,则表示关闭功能选择。 默认值为 255。 指定算法支持的最大属性状态数。 如果属性的状态数大于该最大状态数,算法将使用该属性MAXIMUM_STATES 的最常见状态,同时忽略剩余状态。 默认值为 100。 指定用来给模型定型的事例数。算法提供程序将使用该数字或不包含在由 HOLDOUT_PERCENTAGE 参数指定的维持百分比中的总的事例百分比,取两者中较小值。 SAMPLE_SIZE 换言之,如果将 HOLDOUT_PERCENTAGE 设置为 30,则算法将使用该参数的值或等于实例总数百分之七十的值,取两者中较小值。 默认值为 10000。 Microsoft 线性回归算法
Microsoft 线性回归算法是 Microsoft 决策树算法的变体,其中的 MINIMUM_LEAF_CASES 参数设置为大于或等于算法为挖掘模型定型时所用的数据集中的事例总数。通过以这种方式设置该参数,算法将绝不创建拆分,从而执行线性回归。
可以使用线性回归确定两个连续列之间的关系。该关系采用的表示形式是最能代表数据序列的线的公式。例如,以下关系图中的线是数据最可能的线性表示形式。
表示该关系图中的线的公式采用了 y = ax + b 这个一般形式,该公式称为回归公式。变量 Y 表示输出变量,X 表示输入变量,a 和 b 是可调整系数。关系图中的每个数据点都有一个与该数据点与回归线之间距离关联的错误。回归方程式中的系数 a 和 b 可以调整回归线的角度和位置。可以调整 a 和 b,直到与点关联的错误总数达到最低数目,以此获得回归方程式。
使用算法
使用 Microsoft 树查看器可以浏览线性回归挖掘模型。
一个线性回归模型必须包含一个键列、输入列和至少一个可预测列。 Microsoft 线性回归算法支持特定的输入列内容类型、可预测列内容类型和建模标志,这些类型和标记如下表所列。
输入列内容类型 Continuous、Cyclical、Key、Table 和 Ordered 可预测列内容类Continuous、Cyclical 和 Ordered 型 建模标志 NOT NULL 和 REGRESSOR 所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 线性回归算法还支持下表所列的其他函数。 IsDescendant IsInNode PredictHistogram PredictNodeId PredictStdev PredictSupport PredictVariance 有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 线性回归算法支持多个参数,这些参数可以影响生成的挖掘模型的性能和准确性。下表对各参数进行了说明:
参数 说明 定义算法在调用功能选择之前可以处理的输入属性数。如果将MAXIMUM_INPUT_ATTRIBUTES 此值设置为 0,则表示关闭功能选择。 默认值为 255。 定义算法在调用功能选择之前可以处理的输出属性数。如果将此值设置为 0,则表示关闭功能MAXIMUM_OUTPUT_ATTRIBUTES 选择。 默认值为 255。 强制算法将指示的列用作回归FORCED_REGRESSOR 量,而不考虑算法计算出的列的重要性。
数据挖掘中的功能选择
当您在 Microsoft SQL Server 2005 Analysis Services (SSAS) 中生成数据挖掘模型时,尽管在生成模型后您都很难断定什么是必需的,但数据集中包含的信息通常多于生成模型所需的信息。例如,一个数据集可能包含 500 个用来说明客户特征的列,但是这些列中可能只有 50 个被用于生成一个特定的模型。虽然其他的列不影响模型的输出,但是它们增加了处理模型所需的时间和存储模型所需的空间。为了解决这个问题,某些 Microsoft 算法实现了“功能选择”。功能选择自动地选择数据集中最可能用于模型中的属性。下列算法支持功能选择:
Naive Bayes 决策树 聚类分析 神经网络
功能选择作用于输入和可预测属性,或者作用于列中的状态数,这取决于算法。您可以使用算法参数 MAXIMUM_INPUT_ATTRIBUTES、MAXIMUM_OUTPUT_ATTRIBUTES 和 MAXIMUM_STATES 对何时启用功能选择进行控制。如果某个模型包含的列多于
MAXIMUM_INPUT_ATTRIBUTES 参数中指定的数目,则算法将忽略它计算后认为无用的任何列。同样,如果某个模型包含的可预测列多于 MAXIMUM_OUTPUT_ATTRIBUTES 参数中指定的数目,则算法将忽略它计算后认为无用的任何列。如果某个模型包含的事例多于
MAXIMUM_STATES 参数中指定的数目,则最不常见的状态将被分到一组且被视为不存在。如果这些参数中的任何一个被设置为 0,则功能选择将被关闭,这会影响处理时间和性能。
只有算法选择的输入属性和状态才会包含在模型生成过程中并可用于预测。功能选择忽略的可预测列也可被用于预测,但这些预测只是基于模型中存在的全局统计信息进行的。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务