估计用于运行数据挖掘服务的计算资源的制作方法

文档序号:13518289阅读:119来源:国知局
估计用于运行数据挖掘服务的计算资源的制作方法

本发明涉及一种估计用于运行数据挖掘任务的计算资源的方法,更具体地,涉及一种估计分布式计算系统(云环境)上的数据挖掘任务的成本的方法。



背景技术:

关于复杂操作的预期成本的信息对于作为服务提供品的软件至关重要,尤其是如果客户根据实际资源消耗动态计费的话。对于通常消耗大量cpu、盘i/o和主内存的数据挖掘/大数据分析等任务尤其如此。虽然已经有很多关于使用执行计划在大型数据库上估计(简单)sql查询所需的资源的工作,但是对于非平凡的统计任务来说,类似的工作还不存在,原因有三:

-大多数统计任务使用非平凡的迭代算法;

-算法的资源消耗取决于数据的统计特征及其尺寸;

-任务的结果通常不固定,但可以以影响资源消耗的不同质

量或准确性水平实现。

特别是在云计算中,强烈希望对数据挖掘任务进行定价。在云服务的用户想要在数据挖掘结果方面(通常在准确性方面)获得价格并想要利用所提供的算法的同时,云服务提供者想在成本(例如cpu使用率、内存使用率、盘使用率、i/o或网络使用率)方面对要执行的计算任务进行定价。这可以被视为“数据挖掘即服务”。



技术实现要素:

本发明的一个目的是提供独立权利要求中所限定的用于估计用于运行数据挖掘任务的计算资源的改进的计算机实现的方法、计算机程序产品和对应系统。本发明的实施例在从属权利要求中给出。如果不相互排斥,则本发明的实施例可以彼此自由地组合。

一方面,提供一种用于估计用于在分布式计算系统(例如,云计算环境)上运行数据挖掘任务的计算资源的计算机实现的方法。该方法包括:

-接收数据集和/或数据描述符,基于该数据集执行数据挖掘任务,该数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;

-接收所述数据挖掘任务的一个或多个控制值;

-接收一个或多个任务参数,所述任务参数定义要在所述数据集上执行的数据挖掘任务;

-基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值和所述一个或多个任务参数,估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

值得一提的是,实际工作流程不需要遵循上述步骤的顺序。实际工作流程可能需要在估计所需的计算资源及其价格之前,首先输入任务参数(例如,损失函数、规则化),其次输入数据集或数据描述符(例如,每个特征的观测值的数量、特征的数量、观测值特征矩阵的谱),最后输入控制值(例如,期望的精度和完成的最大挂钟时间)。

有利地,数据挖掘任务的复杂度可以从数据的上述统计参数和可以由所述一个或多个控制值定义的一定质量水平界定。对于客户来说,这消除了数据挖掘任务运行很长时间,导致非常高的成本,可能抵消了在此过程中获得的好处的风险。对于数据挖掘即服务的提供者,由于从上面界定其运行时间,所以更容易调度任务,并且由于所提供的算法可以容忍失败,所以更容易提高可靠性。此外,当指定其在挂钟时间方面完成的限制时,任务可能在其执行期间变得更容易暂停,“可延展”。换句话说,所提出的方法弥合了要在特定数据集上执行的给定数据挖掘任务与在云环境上执行所述任务所需的计算工作量之间的差距。因此,它为在云环境中提供数据挖掘任务作为服务提供了基础。

根据实施例,方法还包括基于执行数据挖掘任务所需的估计的计算资源来估计数据挖掘任务的成本。执行数据挖掘任务的成本可以在要执行的计算任务方面和/或在执行数据挖掘任务(调度)时的计算资源的可用性方面进行定义。因此,在导出关于要执行的计算任务的信息之后,可以通过将价格与各个计算任务相关联并且对多个价格进行求和来估计用于执行数据挖掘任务的成本,即价格。

根据实施例,通过导出成本描述符来估计成本,所述成本描述符至少包括关于计算数据挖掘任务所需的迭代次数的信息和关于每次迭代的运算的复杂度的信息。迭代次数可以是跨越所有坐标的数据传递(datapass)的数量。所述迭代次数可能强烈地取决于用于执行数据挖掘任务的计算实体的数量和期望的精度。关于每次迭代的运算的复杂度的信息可以是在单次数据传递期间执行的算术运算的数量,其也可以是所采用的计算实体的数量的函数。此外,成本描述符可以包括关于针对每次数据传递执行的广播操作的数量和在相应的广播操作中发送的字节/比特的数量的信息。最后,成本描述符可以包括关于在单次数据传递期间执行的点对点通信操作的数量和在相应的通信操作中发送的字节/比特的数量的信息。通过把某个数据挖掘任务分割在多个块(cpu成本、内存成本、i/o成本、网络成本等)中,可以精确地确定计算复杂度,这相应地改进了计算工作量的估计、数据挖掘任务的成本的估计。

根据实施例,所述一个或多个控制值是用于计算计算资源估计的期望精度和/或持续时间。所述控制值可以对数据挖掘任务的计算工作量有很大的影响。例如,估计精度可以与为了获得所述精度而对数据集执行的迭代次数相关联。计算持续时间可能影响所采用的计算实体的数量。控制值的另一个例子可以是应该开始或完成数据挖掘任务的时间点。开始或完成时间可能对任务成本有重大影响,因为在数据中心附近,夜晚数据中心的负载可能会低于白天。因此,考虑到某些控制值可能对估计结果有重大影响。

根据实施例,任务参数包括算法分类器,所述算法分类器定义要对数据执行的数据挖掘任务的类型。换句话说,算法分类器提供将数据挖掘任务的分类存储为数据元素的可能性。例如,分类可以包括数据挖掘任务作为回归任务、分类任务或聚类任务的声明。

根据实施例,在将数据挖掘任务分类为回归任务或分类任务的情况下,接收损失函数类型。所述损失函数可以是给定数据集与预测数据的相似度的量度。在数据挖掘过程中的目标可能是最小化所述损失函数,以便相应地降低估计误差,从而提高估计精度。例如,损失函数类型可以指示作为平方损失函数、对数损失函数或铰链平方损失函数(hingesquarelossfunction)的损失函数。

根据实施例,可以接收正则化函数。所述正则化函数可以为估计过程提供附加信息,以解决不适定(ill-posed)的问题,防止过度拟合或并入域知识。例如,可以使用l0范数或可用于解释稀疏数据集的l1范数。因此,通过利用所述正则化函数惩罚某些数据值,进一步提高了估计精度。

根据实施例,在聚类任务的情况下,接收到聚类或相似度函数,所述聚类函数提供将数据划分成多个数据群(cluster)的成本,或者针对指定的元素子集的列表内的每个元素子集提供在同一群中包括元素子集的成本。例如,聚类或相似度函数可以是k-均值函数或归一化切割函数(normalizedcutfunction)。基于所述聚类或相似度函数,可以以相同组(称为群)中的数据值比其他组(群)中的数据值彼此更相似的这种方式对一组数据值进行分组。

根据实施例,接收与数据集相关联的一个或多个数据描述符,所述数据属性定义影响运行数据挖掘任务的计算工作量的数据的特性。例如,所述数据描述符可以包括:

-数据集的特征数量或维数;

-数据集中描述的项目的数量;

-块的数量(如果有块结构);

-损失函数的部分可分离度(例如,在相应的超图中进行k切割)

-最大特征值的平方,l=σ2max(a);

-条件数σmax(a)/σmin(a)(要执行的迭代次数的重要性)

-项目特征矩阵的谱的各种其他属性;

-矩阵的任何列或块中的非零值的最大数量。

根据实施例,可以通过在所述数据集上应用数据描述符提取算法从数据集中提取出一个或多个数据描述符。数据描述符提取算法可以包括用于估计数据集上的数据描述符的例程。可替换地,可以提供数据描述符而不是用于估计数据挖掘任务的计算工作量的整个数据集。基于所述数据描述符,可以减少用于确定计算工作量信息的支出,或者至少提供了一个界限,基于此界限,减少计算工作量估计的复杂度。

根据实施例,通过评估数据挖掘任务的计算标准,从多种算法中选择出用于基于接收的数据集和/或接收的数据描述符、一个或多个控制值和一个或多个任务参数来估计数据挖掘任务的计算工作量的算法。换句话说,可以基于给定的输入参数为当前数据挖掘任务选择多种算法中的合适的算法。为了执行所述选择,可以提供适于基于给定的输入参数来选择用于求解特定数据挖掘任务的最合适算法的逻辑。因此,获得了增强所提出的方法的用户友好性的自动算法选择。

根据实施例,该方法还包括:

-提供关于执行数据挖掘任务所需的计算资源的信息和一个或多个控制值到部署调度器,所述部署调度器包括关于适于执行数据挖掘任务的多个分布式计算系统的信息;

-基于所述计算资源信息和所述一个或多个控制值选择一个或多个分布式计算系统;以及

-返回关于在某个分布式计算系统上部署数据挖掘任务的成本的信息。

换句话说,部署调度器自动调查用于执行给定的数据挖掘任务(由输入参数、控制值等定义)的合适的部署策略。例如,可以选择某种分布式计算系统,其也称为云环境,以确保以最低成本处理数据挖掘任务。根据其他实施例,可以选择分布式计算系统,其确保数据挖掘任务的最快处理。根据另一个实施例,可以选择分布式计算系统,其确保在某个安全级别处理数据挖掘任务。为了向相应的用户通知所选择的部署策略(为执行数据挖掘任务而选择的分布式计算系统),可以输出相应的信息,例如,在图形用户界面上输出相应的信息。

根据实施例,该方法还包括:

-接收要执行的数据挖掘任务的高级任务描述;

-通过使用任务定义应用,基于所述高级任务描述导出数据挖掘任务的参数;以及

-基于由任务定义应用提供的所述参数来估计用于执行数据挖掘任务的计算资源。

为了提高该方法的可用性,可以提供适于以用户友好的语法(例如,用来自用户专家域的话)接收数据挖掘任务的高级描述的接口。基于所述高级描述,数据挖掘任务可以被细化,例如,选择潜在的数据挖掘算法和/或数据集被预处理以便导出数据描述符和/或成本描述符。所述细化处理的信息用作估计计算资源/计算成本的输入。所述特征具有用户不必关心数据挖掘过程的任何细节的有益效果,但是可能仅需要提供关于要执行的数据挖掘任务的基本信息,其显着增强了用户友好性。

根据另一方面,提供了一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机程序产品。该计算机程序产品包括具有与其一起实施的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使处理器执行所述方法,所述方法包括:

-接收数据集和/或数据描述符,基于该数据集执行数据挖掘任务,该数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;

-接收所述数据挖掘任务的一个或多个控制值;

-接收一个或多个任务参数,所述任务参数定义要在所述数据集上执行的数据挖掘任务;

-基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值和所述一个或多个任务参数,估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

根据另一方面,提供了一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机实现的方法,所述方法包括:

-接收要执行的数据挖掘任务的高级任务描述;

-接收所述数据挖掘任务的一个或多个控制值;

-执行任务定义应用,所述任务定义应用基于要执行的数据挖掘任务的高级任务描述提供数据挖掘任务的参数;

-基于所述参数和所述一个或多个控制值估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

根据实施例,所述方法还包括基于执行数据挖掘任务所需的估计的计算资源来估计数据挖掘任务的成本。

根据实施例,所述方法通过导出成本描述符来估计成本,所述成本描述符至少包括关于计算数据挖掘任务所需的迭代次数的信息和关于每次迭代的运算的复杂度的信息。

根据另一方面,提供了一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机程序产品。该计算机程序产品包括具有与其一起实施的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使处理器执行所述方法,所述方法包括:

-接收要执行的数据挖掘任务的高级任务描述;

-接收所述数据挖掘任务的一个或多个控制值;

-执行任务定义应用,所述任务定义应用基于要执行的数据挖掘任务的高级任务描述提供数据挖掘任务的参数;

-基于所述参数和所述一个或多个控制值估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

根据另一方面,提供了一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的系统。所述系统包括:

-用于接收数据集和/或数据描述符的接口,基于该数据集执行数据挖掘任务,该数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;

-用于接收所述数据挖掘任务的一个或多个控制值的接口;

-用于接收一个或多个任务参数的接口,所述任务参数定义要在所述数据集上执行的数据挖掘任务;

-数据处理模块,适于基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值和所述一个或多个任务参数,估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

附图说明

图1表示根据本发明一实施例的云计算节点;

图2表示根据本发明一实施例的云计算环境;

图3表示根据本发明一实施例的抽象模型层;

图4是示出至少部分地由第一实施例系统执行的第一实施例方法的流程图;

图5是第一实施例系统的机器逻辑(例如,软件)部分的框图;

图6表示根据本发明第二实施例的数据挖掘环境;

图7表示根据本发明第三实施例的数据挖掘环境;

图8表示根据本发明第四实施例的数据挖掘环境;

图9表示根据本发明第五实施例的数据挖掘环境。

具体实施方式

在数据挖掘服务通过分布式计算系统环境提供的情况下,估计数据挖掘的成本。对于具有指定属性的输入数据集的特定数据挖掘任务,估计系统要求。估计系统要求包括应用部分学习工具对来自输入数据集的样本数据进行操作。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本发明的各个方面的计算机可读程序指令的计算机可读存储介质(或多个计算机可读存储介质)。

计算机可读存储介质可以是可以保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或上述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、其上记录有指令的诸如穿孔卡或凹槽中的凸起结构的机械编码设备、以及上述的任何合适的组合。如本文所使用的,计算机可读存储介质不应被解释为暂时信号本身,例如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)或通过电线传输的电信号。

本文描述的计算机可读程序指令可以经由网络(例如,因特网、局域网、广域网和/或无线网络)从计算机可读存储介质或外部计算机或外部存储设备下载到相应的计算/处理设备。网络可以包括铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并将计算机可读程序指令转发以便存储在相应的计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者用一种或多种编程语言(包括诸如smalltalk、c++等的面向对象编程语言,以及诸如“c”编程语言或类似的编程语言的常规过程编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以全部地在用户的计算机上,部分地在用户的计算机上,作为独立的软件包,部分地在用户的计算机上并且部分地在远程计算机上,或者全部地在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过包括局域网(lan)或广域网(wan)的任何类型的网络连接到用户的计算机,或者可以(例如,使用因特网服务提供商通过因特网)与外部计算机连接。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各方面。

这里参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令,产生用于实现流程图和/或一个或多个框图的框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,计算机可读存储介质可引导计算机、可编程数据处理装置和/或其它设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制造品,该制造品包括执行流程图和/或一个或多个框图的框中指定的功能/动作的各方面的指令。

计算机可读程序指令也可以被加载到计算机、其它可编程数据处理装置或其他设备上,使在计算机、其它可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其它可编程装置或其他设备上执行的指令实现流程图和/或一个或多个框图的框中指定的功能/动作。

附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示包括用于实现指定的(一个或多个)逻辑功能的一个或多个可执行指令的模块、段或指令部分。在一些替代实现方式中,框中记录的功能可能不按附图所示的顺序发生。例如,根据涉及的功能,连续地示出的两个框事实上可以基本上同时地执行,或者这些框有时可以按照相反的顺序执行。还将注意到,框图和/或流程图的各个框以及框图和/或流程图中的框的组合可以由执行指定的功能或动作或者执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。

云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(pda)或移动电话54a,台式电脑54b、笔记本电脑54c和/或汽车计算机系统54n。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(iaas)、平台即服务(paas)和/或软件即服务(saas)。应当理解,图2显示的各类计算设备54a-n仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:

硬件和软件层60包括硬件和软件组件。硬件组件的例子包括大型机;基于risc(精简指令集计算机)架构的服务器;存储设备;网络和联网组件。在一些实施例中,软件组件包括网络应用服务器软件。

虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。

在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(sla)计划和履行功能:为根据sla预测的对云计算资源未来需求提供预先安排和供应。

工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及将在下面的详细描述部分的以下子部分中详细讨论的根据本发明的功能(参见功能块66a)。

本发明的一些实施例涉及一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机实现的方法,所述方法包括:(i)接收数据集,基于该数据集执行数据挖掘任务,并且/或者接收一组数据描述符,所述一组数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;(ii)接收所述数据挖掘任务的一组控制值;(iii)接收一组任务参数,所述一组任务参数定义要在所述数据集上执行的数据挖掘任务;(iv)基于所接收的数据集或所接收的一组数据描述符、所述一组控制值和所述一组任务参数,估计用于在分布式计算系统上执行数据挖掘任务的一组计算资源。

本发明的一些实施例包括基于一组控制变量的值范围提供一组成本数据。在本发明的一些实施例中,一组成本数据包括与一组控制变量相关联的多个成本值。在本发明的一些实施例中,在一段时间或精度范围内导出一组成本数据。在本发明的一些实施例中,通过图形用户界面向用户提供一组成本数据。在本发明的一些实施例中,一组成本数据被显示为一组控制变量的函数。在本发明的一些实施例中,一组成本数据作为曲线图提供给用户。在本发明的一些实施例中,一组成本数据被显示为对一组控制值的依赖性。

在本发明的一些实施例中,接收一组反馈信息。在本发明的一些实施例中,一组反馈信息包括关于一组先前的数据挖掘任务成本估计的信息。在本发明的一些实施例中,一组反馈信息包括一组先前的数据挖掘任务成本估计的一组实际成本。在本发明的一些实施例中,至少部分地基于一组先前的数据挖掘任务成本估计的一组实际成本和一组先前的数据挖掘任务成本估计来计算成本估计。在本发明的一些实施例中,成本估计的计算包括自适应机器学习算法。在本发明的一些实施例中,自适应机器学习算法改进了成本估计。在本发明的一些实施例中,自适应机器学习算法改进了一组成本估计,以减少一组成本估计与一组实际成本之间的差异。

本发明的一些实施例包括以下特征中的一个或多个:(i)计算用于处理数据挖掘任务的一组处理流程;(ii)估计为一组处理流程中的每个处理流程处理数据挖掘任务所需的计算工作量;(iii)估计在分布式计算系统上为一组处理流程中的每个处理流程处理数据挖掘任务的成本;和/或(iv)在处理数据挖掘任务的成本最低的一组处理流程中选择处理流程。在本发明的一些实施例中,在遵循一组其他约束的同时,根据最低成本选择一组处理流程中的处理流程。在本发明的一些实施例中,基于成本选择一组处理流程中的处理流程改进了一组未来成本估计。

图4示出了根据本发明的描绘用于估计数据挖掘任务的计算量(包括基于框图运行数据挖掘任务所需的计算资源)的方法的流程图450。图5示出了执行流程图450的至少一些方法步骤的程序500。现在将在以下段落的过程中,广泛参考图4(对于方法步骤块)和图5(对于软件块)来讨论该方法和相关联的软件。在该示例中,计算机系统/服务器12确定完成数据挖掘任务所需的资源。

处理从步骤s455开始,在步骤s455中接收数据集模块(“mod”)505接收要对其执行数据挖掘任务的数据集。在本发明的一些实施例中,数据集是一组数据描述符。在本发明的一些实施例中,数据是具有m行和n列的矩阵a,即,式(1):

a∈rm×n(1)

在本发明的一些实施例中,接收数据集模块505接收数据集和一组数据描述符。在本发明的一些实施例中,该组数据描述符描述了数据集中的数据的一组特征。在本发明的一些实施例中,该组数据描述符指示数据集是否具有特定的数据属性。在本发明的一些实施例中,该组数据描述符描述和/或界定与用于估计运行数据挖掘任务所需的计算资源相关的数据集的一组特征。在本发明的一些实施例中,该组数据描述符描述了用于基于框图运行数据挖掘任务所需的计算资源。

在本发明的一些实施例中,该组数据描述符描述了数据集的一组关键特征。在本发明的一些实施例中,该组数据描述符界定了数据集的一组关键特征。在本发明的一些实施例中,数据集的一组关键特征对于估计数据挖掘任务所需的计算资源是相关的。在本发明的一些实施例中,该组数据描述符与数据集的分离是复杂的。在一些实施例中,该组数据描述符由对数据集的一组计算产生。

处理进行到步骤s460,其中接收控制值模块510接收与数据挖掘任务相关联的一组控制值。在本发明的一些实施例中,该组控制值影响处理数据挖掘任务所需的计算资源量。在本发明的一些实施例中,控制值模块510受到估计的精度和直到估计必须完成的时间点的影响。在本发明的一些实施例中,接收控制值模块510从用户或应用接收一组控制值。在本发明的一些实施例中,接收控制值模块510从估计系统接收一组控制值。

处理进行到步骤s465,在步骤s465中接收任务参数模块515接收一组任务参数。在本发明的一些实施例中,该组任务参数定义了要在数据集上执行的数据挖掘任务的一组特征。在本发明的一些实施例中,该组任务参数包括算法分类器。在本发明的一些实施例中,算法分类器指定要用于执行数据挖掘任务的算法。在本发明的一些实施例中,算法分类器直接表示要使用的算法。在本发明的一些实施例中,算法分类器包括一组元数据。在本发明的一些实施例中,包括在算法分类器中的该组元数据指示特定的数据挖掘算法。在本发明的一些实施例中,算法分类器指示数据挖掘任务是回归任务。在本发明的一些实施例中,算法分类器指示数据挖掘任务是分类任务。在本发明的一些实施例中,算法分类器指示数据挖掘任务是聚类任务。

在本发明的一些实施例中,回归任务(或回归模型)涉及基于包括在数据集中的一组信息来预测连续值的数据挖掘功能。在本发明的一些实施例中,使用回归模型来基于包括关于房屋的因素(例如,位置、大小、附近的属性值)的数据集来预测房屋的价值。在本发明的一些实施例中,分类任务(或分类模型)涉及数据挖掘函数,以将一组项目分配给一组类别或一组类。在本发明的一些实施例中,使用分类模型来预测数据集中每个数据的目标类。在本发明的一些实施例中,分类模型用于将一组电子邮件分类为“垃圾邮件”或“非垃圾邮件”。在本发明的一些实施例中,聚类任务(或聚类模型)涉及基于一组特征来识别类似的数据集的数据挖掘功能。在本发明的一些实施例中,使用聚类模型来识别一组高质量群,使得群间相似度低。在本发明的一些实施例中,使用聚类模型来识别高质量群,使得群内相似度高。在本发明的一些实施例中,回归模型、分类模型和聚类模型被用于各种数据挖掘任务。

在本发明的一些实施例中,数据挖掘功能是受监督的数据挖掘过程。在本发明的一些实施例中,数据挖掘功能是无监督的数据挖掘过程。在本发明的一些实施例中,无监督的数据挖掘过程包括机器学习。在本发明的一些实施例中,回归模型是受监督的数据挖掘过程。在本发明的一些实施例中,分类模型是受监督的数据挖掘过程。在本发明的一些实施例中,聚类模型是无监督的数据挖掘过程。在本发明的一些实施例中,受监督的数据挖掘包括一组训练数据。在本发明的一些实施例中,计算机系统/服务器12必须将数据集以相似的方式与该组训练数据相关联,即“相似度”。在本发明的一些实施例中,回归模型产生连续的区间。在本发明的一些实施例中,分类模型产生一组离散的区间。在本发明的一些实施例中,一组训练数据由矩阵a表示,参见上式(1)。在本发明的一些实施例中,矩阵a中的行对应于向量y中的元素:

y∈rm(2)

在本发明的一些实施例中,矩阵a中的列被称为“特征”。在本发明的一些实施例中,矩阵a中的行被称为“观测值”。在本发明的一些实施例中,“相似度”由损失函数表示。在本发明的一些实施例中,损失函数测量项目有多么相似。在本发明的一些实施例中,损失函数可以是以下之一:

在本发明的一些实施例中,式(3)表示“平方损失”。在本发明的一些实施例中,式(4)表示“对数损失”。在本发明的一些实施例中,式(5)表示“铰链平方损失”。在本发明的一些实施例中,aj:表示矩阵a的第j行。

在本发明的一些实施例中,正则化函数捕获相似项目中的一组偏好。例如,人类喜欢解释起来简单的东西,这可以通过所需的数量系数来捕获。在本发明的一些实施例中,矩阵a中的列对应于向量x中的元素:

x∈rn(6)

在本发明的一些实施例中,使用复合函数来求向量x:

在本发明的一些实施方案中,表示损失表达式(2)、(3)或(4)之一。在本发明的一些实施例中,||x||1表示向量x的非零元素的数目。在本发明的一些实施例中,采用具有系数γ∈r的凸组合。

在本发明的一些实施例中,在步骤s455中接收的一组数据描述符随计算机系统-服务器12采用的数据挖掘功能的类型而变化。在本发明的一些实施例中,用于受监督的数据挖掘功能的一组数据描述符包括但不限于:(i)数据集(的维度)中的特征的数量n;(ii)数据集中的描述的项目的数量m;(iii)对于块结构的数据集,数据集中的块数;(iv)式(7)的平滑凸项的部分可分离度,(例如在对应的超图中的k切割);(v)最大特征值的幂,(vi)条件数,σmax(a)/σmin(a);和/或(vii)矩阵a的列或块i中的多个非零值的数量,||a:i||0。在本发明的一些实施例中,条件数是基于矩阵a的一组特征值。在本发明的一些实施例中,σmax(a)是矩阵a的最大特征值。在本发明的一些实施例中,σmin(a)是矩阵a的最小特征值。在本发明的一些实施例中,条件数与所执行的迭代次数有关。在本发明的一些实施例中,||a:i||0提供了对正则化函数的平滑度的约束。在本发明的一些实施例中,||a:i||0提供对正则化函数的部分可分离性的约束。在本发明的一些实施例中,||a:i||0替换招致更多计算资源的一组数据描述符。

在本发明的一些实施例中,无监督的数据挖掘(或无监督的机器学习)通过聚类来划分一组元素。在本发明的一些实施例中,聚类算法对矩阵a进行运算,由式(1)表示。在本发明的一些实施例中,矩阵a的行对应于一组实例(或一组观测值)。在本发明的一些实施例中,该组实例包括一组n个特征。在本发明的一些实施例中,一组聚类算法对加权图g=(v,w)进行运算。在本发明的一些实施例中,矩阵w(也是矩阵w(i,j))表示连接顶点i和j的一组权重。在本发明的一些实施例中,矩阵w是m×m矩阵。在本发明的一些实施例中,矩阵w由对应的图拉普拉斯矩阵l表示。在本发明的一些实施例中,聚类算法需要数据实例之间的相似度概念。在本发明的一些实施例中,聚类算法需要确定最佳数据划分的结构的目标函数。在本发明的一些实施例中,从该组组中选择聚类算法:

在本发明的一些实施例中,式(8)表示k均值聚类算法。在本发明的一些实施例中,式(9)是归一化切割聚类算法。

在本发明的一些实施例中,式(8)识别最佳k个群c1至ck,使得xj(矩阵a中的行)的实例与相应的群质心μk之间的一组欧氏距离最小化。在本发明的一些实施例中,式(9)与图输入一起工作以识别图上的顶点的聚类,以在对于群大小进行归一化时使要被“切割(cut)”的边缘权重最小化。

在本发明的一些实施例中,聚类算法使用一组数据描述符来描述或界定数据集的关键特征。在本发明的一些实施例中,数据集的关键特征与估计数据挖掘任务所需的计算资源相关。在本发明的一些实施例中,一组数据描述符包括但不限于:(i)训练集的特征(维度)的数量n;(ii)训练集中描述的项目的数量m;(iii)块结构中的块的数量;(iv)k特征向量条件数,使得σk(a)/σk+1(a)用于确定执行的迭代次数;(v)矩阵a的任何列或块i中的非零值的数量||a:i||0,用于确定矩阵a的谱分解的计算成本。

处理终止于步骤s470,在步骤s470中估计模块520基于在步骤s455中接收到的数据集、在步骤460中接收的所述一组控制值以及在步骤s465中接收的所述一组任务参数来估计数据挖掘任务所需的计算工作量。在本发明的一些实施例中,估计模块520把它的估计基于接收的数据集。在本发明的一些实施例中,估计模块520分别识别所接收的数据集和所述一组数据描述符。在本发明的一些实施例中,估计模块520把它的估计基于所述一组控制值。在本发明的一些实施例中,估计模块520把它的估计基于所述一组任务参数。在本发明的一些实施例中,估计模块520估计在分布式计算系统上执行数据挖掘任务所需的计算工作量。在本发明的一些实施例中,分布式计算系统是云计算环境中的一个节点。在本发明的一些实施例中,分布式计算系统包括云计算环境中的多个节点。在本发明的一些实施例中,估计模块520估计数据挖掘任务所需的处理能力。在本发明的一些实施例中,估计模块520估计数据挖掘任务所需的内存。在本发明的一些实施例中,估计模块520估计数据挖掘任务所需的i/o任务。在本发明的一些实施例中,估计模块520估计数据挖掘任务所需的网络任务。在本发明的一些实施例中,估计模块520考虑完成数据挖掘任务所需的对数据集的迭代次数。在本发明的一些实施例中,对数据集的迭代次数是估计的期望精度水平的函数。在本发明的一些实施例中,通过数据集的迭代(数据传递)的次数是用于处理估计算法的计算实体的数量的函数。在本发明的一些实施例中,估计模块520通过考虑一次数据传递中所需的算术运算的数量来执行估计。在本发明的一些实施例中,算术运算包括广播操作。在本发明的一些实施例中,广播操作发送一组字节。在本发明的一些实施例中,广播操作在点对点通信中发送一组字节。在本发明的一些实施例中,广播操作包括点对点通信。

在本发明的一些实施例中,由估计模块520产生的估计取决于任务参数是指示回归任务、分类任务还是聚类任务。在本发明的一些实施例中,由估计模块520产生的估计取决于损失函数。在本发明的一些实施例中,损失函数与任务参数相关。

在本发明的一些实施例中,估计模块520使用作业定义器定义数据挖掘任务。在本发明的一些实施例中,作业定义器构成用于处理数据挖掘任务的作业。在本发明的一些实施例中,作业定义器包括一组逻辑,用于至少部分地基于数据集、一组控制值和一组任务参数来选择处理数据挖掘任务的合适方法。在本发明的一些实施例中,估计模块520部分地基于作业定义来估计数据挖掘任务的计算复杂度。在本发明的一些实施例中,数据挖掘任务的计算复杂度部分地基于一组成本描述符。在本发明的一些实施例中,一组成本描述符包括关于与数据挖掘任务的一组组成部分相关联的成本的信息。

在本发明的一些实施例中,一组成本描述符包括但不限于:(i)作为所使用的机器的数量的函数的迭代次数;(ii)作为所使用的机器的数量的函数的跨越一组坐标的数据传递的数量;(iii)针对估计的可接受的错误概率;(iv)作为所使用的机器的数量的函数的数据传递的算术运算的数量;(v)每次数据传递的广播操作的数量;(vi)每个广播操作发送的字节数;(vii)每次数据传递的点对点通信操作的数量;和/或(viii)每个点对点通信发送的字节数。

本发明的一些实施例为一组受监督的数据挖掘任务提供成本描述符。在本发明的一些实施例中,受监督的数据挖掘任务包括回归任务和/或分类任务。在本发明的一些实施例中,执行的每次算术运算的成本至少部分地基于迭代次数和一组迭代的复杂度。在本发明的一些实施例中,执行的每个通信的成本至少部分地基于迭代次数和一组迭代的复杂度。在本发明的一些实施例中,迭代次数至少部分地基于数据传递的数量和坐标的数量。在本发明的一些实施例中,使用块结构,并且使用坐标的块的数量来代替坐标的数量。

在本发明的一些实施例中,确定迭代次数的概率上界。在本发明的一些实施例中,计算迭代计数。在本发明的一些实施例中,k是迭代计数。在本发明的一些实施例中,x0是初始点。在本发明的一些实施例中,0<ρ<1是目标置信度。在本发明的一些实施例中,在本发明的一些实施例中,∈>0。在本发明的一些实施例中,f*=maxxf(x)。在本发明的一些实施例中,一组常数包括但不限于:α,β,σ,s,和/或l。

在本发明的一些实施例中,迭代计数被确定为:

在本发明的一些实施例中,∈<f(x0)-f*。可替换地,迭代计数被确定为:

在本发明的一些实施例中,

在本发明的一些实施例中,存在概率函数,使得对于一个点xk,将非渐增校验应用于凸函数f。在本发明的一些实施例中,一组参数∈、ρ和l对于确定迭代次数是重要的。在本发明的一些实施例中,概率函数表示为:

prob(f(xk)-f*≤∈)≥1-ρ(12)

在本发明的一些实施例中,需要单次迭代。在本发明的一些实施例中,单次迭代需要一组运算以确定数据挖掘任务的成本。在本发明的一些实施例中,||a:i||0是矩阵a的列(或块)i中的非零值的数量。在本发明的一些实施例中,至少部分地基于矩阵a的特征值来减少数据挖掘任务的运算作数在本发明的一些实施例中,从包括但不限于以下的方法中选择运算数:(i)包括一组c-1个点对点消息的单个广播;(ii)包括一组2e1+e2个消息的单个广播;和/或(iii)零广播,其包括一组c-1个点对点消息。在本发明的一些实施例中,该组c-1个点对点消息包括数。在本发明的一些实施例中,数据挖掘任务包括c1的等待时间。在本发明的一些实施例中,数据挖掘任务包括c2的带宽。在本发明的一些实施例中,训练集包括m个例子。在本发明的一些实施例中,广播操作具有持续时间logc(c1+c2m)。在本发明的一些实施例中,广播操作具有持续时间在本发明的一些实施例中,是对h相交的中的部分的数量进行计数的函数。在本发明的一些实施例中,e1是在本发明的一些实施例中,e2是

在本发明的一些实施例中:

在本发明的一些实施例中:

在本发明的一些实施例中,使用零广播导致迭代次数的增加。在本发明的一些实施例中,运算数的确定取决于是否并行化计算。在本发明的一些实施例中,计算并行化需要基于可用内存。在本发明的一些实施例中,计算并行化需要基于分配输入的成本。在本发明的一些实施例中,计算并行化需要基于网络的各种属性的一组成本。在本发明的一些实施例中,确定一组成本的网络的一组各种属性包括但不限于:(i)网络等待时间;(ii)一组点对点连接的带宽;和/或(iii)广播的价格。在本发明的一些实施例中,算法的选择由数据挖掘任务调度器执行。

本发明的一些实施例实现拉普拉斯矩阵的单值分解(svd)。在本发明的一些实施例中,在聚类算法中实现拉普拉斯矩阵。在本发明的一些实施例中,拉普拉斯矩阵的svd在聚类算法中实现。在本发明的一些实施例中,拉普拉斯矩阵的svd涉及一组数据描述符和一组成本描述符。在本发明的一些实施例中,对于无监督的数据挖掘任务,实现拉普拉斯矩阵的svd。在本发明的一些实施例中,对于聚类算法数据挖掘任务,实现拉普拉斯矩阵的svd。在本发明的一些实施例中,归一化图拉普拉斯矩阵表示为:

l=d-1/2wd-1/2(15)

在本发明的一些实施例中,矩阵w(即矩阵w(i,j))表示连接顶点i和j的一组权重。在本发明的一些实施例中,矩阵d是对角矩阵。在本发明的一些实施例中,矩阵d包含一组图节点的度d(i,j)=∑jw(i,j)。

在本发明的一些实施例中,归一化拉普拉斯矩阵的svd是秩k。在本发明的一些实施例中,归一化拉普拉斯矩阵的svd与一组图聚类目标函数相关联。在本发明的一些实施例中,一组图聚类目标函数包括基于随机游走模型的函数的子集。在本发明的一些实施例中,归一化拉普拉斯矩阵的谱与p=d-1w的谱有关。在本发明的一些实施例中,p是右随机矩阵。在本发明的一些实施例中,p是矩阵w的概率转移矩阵。在本发明的一些实施例中,p是从节点i遍历到节点j的概率。在本发明的一些实施例中,由w(i,j)/d(i,j)表示从节点i遍历到节点j的概率。

在本发明的一些实施例中,归一化拉普拉斯矩阵的svd逼近聚类目标。在本发明的一些实施例中,归一化拉普拉斯矩阵的svd逼近聚类目标,以最小化在两个群之间遍历的概率。在本发明的一些实施例中,聚类目标表示为:

obj=p[a→b|a]+p[b→a|b](16)

在本发明的一些实施例中,pij表示概率转移矩阵p的元素。在本发明的一些实施例中,概率转移矩阵表示为:

在本发明的一些实施例中,表示节点i的固定分布。在本发明的一些实施例中,至少部分地基于概率转移矩阵p。在本发明的一些实施例中,π(a)表示群a中的一组节点的一组固定分布之和。在本发明的一些实施例中,聚类目标等同于归一化切割聚类。在本发明的一些实施例中,聚类目标被写为跟踪(trace)优化的等同形式。在本发明的一些实施例中,随机游走模型与归一化拉普拉斯矩阵的svd的修改版本相关联。

在本发明的一些实施例中,从拉普拉斯矩阵的特征值分布导出一组数据描述符。在本发明的一些实施例中,拉普拉斯矩阵的特征值分布与成本描述符有关。在本发明的一些实施例中,成本描述符与所需内存相关并且与确定数据挖掘任务所需的数据传递的数量相关。在本发明的一些实施例中,由于一组输入数据的大小,需要一组数据传递。在本发明的一些实施例中,一组输入数据不适合内存。在本发明的一些实施例中,涉及输入矩阵的计算从盘读取一组数据。在本发明的一些实施例中,输入矩阵的压缩版本适合于内存。在本发明的一些实施例中,输入矩阵的压缩版本与所需的内存成本相关联。在本发明的一些实施例中,一组特征值计算是良态的。在本发明的一些实施例中,一组特征向量计算取决于矩阵的特征值分布。在本发明的一些实施例中,估计模块520估计特征值分布。在本发明的一些实施例中,估计模块520估计成本描述符来计算矩阵的svd。在本发明的一些实施例中,特征值分布由数据描述符提取器导出。在本发明的一些实施例中,数据描述符提取器提供用于估计数据集的一组数据描述符的方法。

在本发明的一些实施例中,用于聚类数据挖掘任务的成本描述符是所需的内存。在本发明的一些实施例中,产生特征值分布和指示所需内存大小的成本描述符之间的关联。在本发明的一些实施例中,计算矩阵的svd的所需内存由随机高斯矩阵rg的大小确定。在本发明的一些实施例中,特征值分布和成本描述符之间的关联表示为:

在本发明的一些实施例中,随机高斯矩阵rg具有维度n×(k+p)。在本发明的一些实施例中,l表示拉普拉斯矩阵。在本发明的一些实施例中,表示拉普拉斯矩阵的秩k近似值。在本发明的一些实施例中,一组期望值界限提供误差的平均近似值。在本发明的一些实施例中,包括一组尾部界限。在本发明的一些实施例中,一组误差不具有高的方差。在本发明的一些实施例中,一组界限表示聚类算法的行为。在本发明的一些实施例中,利用两个数据传递来确定集合界限。在本发明的一些实施例中,一组界限将内存使用率与svd近似的质量界限相关联。

在本发明的一些实施例中,使用数据传递的数量来确定一组近似界限。在本发明的一些实施例中,使用一组近似界限来确定特征值分布和数据传递的数量之间的关系。在本发明的一些实施例中,特征值分布是数据描述符。在本发明的一些实施例中,数据传递的数量是成本描述符。在本发明的一些实施例中,数据传递的数量与近似的质量逆相关。在本发明的一些实施例中,在数据传递的数量与近似的质量之间存在权衡。在本发明的一些实施例中,近似界限表示为:

在本发明的一些实施例中,k+p表示随机高斯矩阵rg的大小。在本发明的一些实施例中,k+p表示一组内存使用率要求。在本发明的一些实施例中,2q+1表示数据传递的数量。在本发明的一些实施例中,终端用户不知道数据集的特征值分布。在本发明的一些实施例中,终端用户不具有数据集的特征值分布的估计。在本发明的一些实施例中,估计模块520对数据集的特征值分布进行近似。

图6描绘了数据挖掘环境600。数据挖掘环境600包括:数据集605;一组控制值610;一组任务参数615;完成目标620;作业定义器630;cpu成本640;内存成本645;i/o成本650;网络成本655;其他成本660;云接口665;成本估计670;部分学习680;以及数据描述符提取器690。在本发明的一些实施例中,数据挖掘环境中的一个或多个对象未被实现;例如,在本发明的一些实施例中,数据描述符提取器690未被实现,因为数据集605不包含一组数据描述符。在本发明的一些实施例中,省略了在数据挖掘环境600中描绘的一个或多个对象;例如,在本发明的一些实施例中,执行受监督的数据挖掘任务,并且,不需要部分学习680且省略它。

在本发明的一些实施例中,数据集605、所述一组控制值610、所述一组任务参数615和/或完成目标620作为一组输入被提供给作业定义器630。在本发明的一些实施例中,数据集605包括一组数据描述符。在本发明的一些实施例中,所述一组控制值610包括期望的精度。在本发明的一些实施例中,所述一组任务参数615包括算法分类器。在本发明的一些实施例中,完成目标620包括完成数据挖掘任务的时间段。在本发明的一些实施例中,数据挖掘环境600中的一组输入被表示为单个对象。在本发明的一些实施例中,作业定义器630确定要执行的数据挖掘任务。在本发明的一些实施例中,作业定义器630包括用于指定数据挖掘任务的一组逻辑。在本发明的一些实施例中,数据挖掘任务至少部分地基于作业定义器630接收的一组输入。在本发明的一些实施例中,作业定义器630选择算法来完成数据挖掘任务。在本发明的一些实施例中,作业定义器630适于基于收敛行为来选择算法。在本发明的一些实施例中,用于数据挖掘任务的一组算法以不同的速率收敛。在本发明的一些实施例中,算法的选择是数据挖掘环境600内的单独对象。

在本发明的一些实施例中,部分学习680是改进成本估计的算法。在本发明的一些实施例中,部分学习680从作业定义器630接收信息。在本发明的一些实施例中,部分学习680分析用于先前数据挖掘任务的一组先前成本估计。在本发明的一些实施例中,部分学习680分析用于先前数据挖掘任务的一组实际成本。在本发明的一些实施例中,部分学习680基于一组先前的数据挖掘任务来确定一组过高估计和一组过低估计。在本发明的一些实施例中,部分学习680确定一组不同成本细目的一组差异。在本发明的一些实施例中,部分学习680为一组不同的成本细目提供了一组缩放因子。在本发明的一些实施例中,通过部分学习680提供的一组缩放因子被作业定义器630并入到一组未来成本估计中。在本发明的一些实施例中,部分学习680基于先前的数据挖掘任务的先前的成本估计来提高当前的成本估计。在本发明的一些实施例中,部分学习680至少部分地基于先前的成本估计来细化一组估计参数。

在本发明的一些实施例中,数据描述符提取器690从数据集中提取一组数据描述符。在本发明的一些实施例中,由数据描述符提取器690引起附加计算成本。在本发明的一些实施例中,需要由数据描述符提取器690引起的附加计算成本的估计。在本发明的一些实施例中,数据描述符提取器690包括用于估计数据集中的一组数据描述符的算法。在本发明的一些实施例中,数据集仅包括一组数据描述符。在本发明的一些实施例中,使用一组数据描述符来至少部分地基于该组数据描述符的复杂度估计计算成本。

在本发明的一些实施例中,至少部分地基于所选择的算法来估计一组成本。在本发明的一些实施例中,一组成本估计对象在数据挖掘环境600内被表示为单个对象。在本发明的一些实施例中,一组成本基于使用区域被分解。在本发明的一些实施例中,成本被分成以下类别之一:(i)cpu成本640;(ii)内存成本645;(iii)i/o成本650;(iv)网络成本655;和/或(v)其他成本660。在本发明的一些实施例中,将一个或多个成本组合成单个对象。在本发明的一些实施例中,至少部分地基于从作业定义器630接收的算法来估计成本估计。在本发明的一些实施例中,成本对象把估计基于来自数据集605的一组数据描述符。

在本发明的一些实施例中,云接口665与一组云服务提供者交互。在本发明的一些实施例中,云接口665与用于云服务器的应用编程接口(api)进行交互。在本发明的一些实施例中,云接口665是用于云服务器的api。在本发明的一些实施例中,云服务提供者估计数据挖掘任务的云成本。在本发明的一些实施例中,云接口665估计数据挖掘任务的云成本。在本发明的一些实施例中,云接口665至少部分地基于以下中的一个或多个进行估计:(i)数据集605;(ii)一组控制值610;(iii)一组任务参数615;和/或(iv)完成目标620。

在本发明的一些实施例中,成本估计670从数据挖掘环境600编译一组成本。在本发明的一些实施例中,成本估计670确定数据挖掘任务的最终成本。

图7描绘了数据挖掘环境700。在本发明的一些实施例中,数据挖掘环境700包括利用数据挖掘环境600实现的可选对象。数据挖掘环境700包括:数据集605;一组控制值610;一组任务参数615;完成目标620;语义问题描述710;以及规则引擎720。

在本发明的一些实施例中,数据挖掘环境700为数据挖掘环境600提供额外的输入。在本发明的一些实施例中,接收到语义问题描述710作为输入。在本发明的一些实施例中,语义问题描述710是数据挖掘任务的简单语言描述。在本发明的一些实施例中,语义问题描述710由用户提供。在本发明的一些实施例中,语义问题描述710提供数据挖掘任务的高级描述。

在本发明的一些实施例中,规则引擎720指定数据挖掘任务的一组要求。在本发明的一些实施例中,规则引擎720确定其他输入的一组要求。在本发明的一些实施例中,规则引擎720将语义问题描述710转换为数据挖掘环境600可以理解的格式。在本发明的一些实施例中,规则引擎720包括一组频繁参数。在本发明的一些实施例中,数据挖掘环境700增加了与数据挖掘环境600的用户交互的容易性。

图8描绘了数据挖掘环境800。在本发明的一些实施例中,数据挖掘环境800包括利用数据挖掘环境600实现的可选对象。数据挖掘环境800包括:cpu成本640;内存成本645;i/o成本650;网络成本655;其他成本660;云调度器810;最低成本估计820;以及最佳部署策略830。

在本发明的一些实施例中,云调度器810从以下中的一个或多个接收一组信息:cpu成本640;内存成本645;i/o成本650;网络成本655;和/或其他成本660。在本发明的一些实施例中,云调度器810为数据挖掘任务提供一组处理包。在本发明的一些实施例中,一组处理包至少部分地基于数据挖掘任务的一组要求。在本发明的一些实施例中,数据挖掘任务的一组要求包括但不限于:(i)cpu功率要求;(ii)i/o设备负载;和/或(iii)网络负载。在本发明的一些实施例中,云调度器810提供不可行的处理包的子集。在本发明的一些实施例中,云调度器810提供可行的处理包的子集。在本发明的一些实施例中,云调度器810从可行的处理包的子集中选择处理包。在本发明的一些实施例中,云调度器810至少部分地基于一组控制变量来选择处理包。在本发明的一些实施例中,云调度器810接收处理包作为输入。

图9描绘了作业定义器230被分解成一组构成对象的示例分解。作业定义器230包括:数据统计估计器931;流程合成器算法932;一组流程934;以及基于流程的成本估算器935。

在本发明的一些实施例中,数据统计估计器931与数据挖掘环境600中的其他对象进行交互。在本发明的一些实施例中,数据统计估计器931从如下中的一个或多个接收一组信息:数据集605;一组控制值610;一组任务参数615;和/或完成目标620。在本发明的一些实施例中,数据统计估计器931从部分学习680和/或数据描述符提取器690接收信息。在本发明的一些实施例中,数据统计估计器931将信息发送到部分学习680和/或数据描述符提取器690。在本发明的一些实施例中,数据统计估计器931估计与数据集相关联的一组属性。在本发明的一些实施例中,与数据集相关联的一组属性包括但不限于:(i)数据值的稀疏性;(ii)数据的独立性;(iii)一组特征向量;和/或(iv)非零数据值的数量。在本发明的一些实施例中,与数据集相关联的一组属性与数据挖掘任务所需的计算工作量相关。在本发明的一些实施例中,数据统计估计器931改进了成本估计。

在本发明的一些实施例中,流程合成器算法932从数据统计估计器931接收信息。在本发明的一些实施例中,形成一组流程以执行数据挖掘过程。在本发明的一些实施例中,不同的数据挖掘任务需要不同数量的流程。在本发明的一些实施例中,不同的流程使用不同的算法来估计一组成本。在本发明的一些实施例中,不同的流程使用不同的数据描述符来估计一组成本。

在本发明的一些实施例中,一组流程934包括确定数据挖掘任务的各方面的一个或多个流程。在本发明的一些实施例中,包括在一组流程934中的流程的数量由流程合成器算法932确定。在本发明的一些实施例中,一组流程934中的不同流程确定数据挖掘任务的不同方面。在本发明的一些实施例中,包括在一组流程934中的多个流程使用单个算法来确定数据挖掘任务的单个方面。在本发明的一些实施例中,一组流程934确定一组成本估计。在本发明的一些实施例中,一组流程934确定构成一组成本估计的一组成分值。在本发明的一些实施例中,一组流程934中的不同流程分析完成数据挖掘任务的不同方法的算法。在本发明的一些实施例中,一组流程934中的不同流程分析与数据挖掘任务的不同部分相关联的算法。在本发明的一些实施例中,一组流程934分析具有一组控制变量的数据集。在本发明的一些实施例中,一组流程934以不同的值分析一组控制变量。在本发明的一些实施例中,一组流程934改变了处理速度和/或精度。

在本发明的一些实施例中,基于流程的成本估计器935从一组流程934接收一组值。在本发明的一些实施例中,基于流程的成本估计器935估计与数据挖掘任务相关联的成本。在本发明的一些实施例中。在本发明的一些实施例中,基于流程的成本估计器935部分地基于由一组流程934提供的值来选择算法。在本发明的一些实施例中,基于流程的成本估计器935基于一组算法确定用于数据挖掘任务的一组成本。在本发明的一些实施例中,基于流程的成本估计器935基于最低成本选择算法。在本发明的一些实施例中,基于流程的成本估计器935提供从一组流程934接收的一组值的图形显示。在本发明的一些实施例中,基于流程的成本估计器935向云接口665提供信息。在本发明的一些实施例中,在作业定义器630中包括cpu成本640、内存成本645、i/o成本650、网络成本655和/或其他成本660。在本发明的一些实施例中,cpu成本640、内存成本645、i/o成本650、网络成本655和/或其他成本660被省略。

本发明的一些实施例估计与在云基础设施上运行的数据挖掘算法相关联的一组成本。本发明的一些实施例可以包括以下特征、特性和/或优点中的一个或多个:(i)算法作业定义器,估计在具有结果目标的情况下在数据集上运行数据挖掘任务的系统要求;(ii)数据描述符工具,其可以用于与用户交互以进一步指定作为目标的输入数据集的属性;(iii)部分学习工具,其可用于通过在目标数据的子样本上运行来估计系统要求;和/或(iv)向最终用户或查询应用呈现成本评估结果的成本反馈ui。

本发明的一些实施例可以包括以下特征、特性和/或优点中的一个或多个:(i)提取系统要求以在目标数据集上执行数据挖掘任务;定价在云基础架构上部署这种数据挖掘任务的成本;(ii)使用部分学习或数据描述符估计执行数据挖掘任务的成本;和/或(iii)根据系统要求,创建不同级别的质量或精度的一组估计。

本发明的一些实施例涉及提供“数据挖掘即服务”。在本发明的一些实施例中,“数据挖掘即服务”是基于云的服务。本发明的一些实施例弥补了数据挖掘任务和执行数据挖掘任务所需的计算工作量之间的差距。在本发明的一些实施例中,至少部分地基于对执行数据挖掘任务所需的一组计算资源的估计来提供数据挖掘任务的成本估计。在本发明的一些实施例中,数据挖掘任务的成本估计是根据一组计算任务来定义的。在本发明的一些实施例中,数据挖掘任务的成本估计是根据要使用的一组计算资源来定义的。

在本发明的一些实施例中,通过导出一组成本描述符来估计一组成本。在本发明的一些实施例中,一组成本描述符包括但不限于关于计算数据挖掘任务的迭代次数的一组信息。在本发明的一些实施例中,一组成本描述符包括关于每次迭代执行的一组运算的复杂度的一组信息。在本发明的一些实施例中,迭代次数是跨越所有坐标的数据传递的数量。在本发明的一些实施例中,迭代次数取决于执行数据挖掘任务的计算实体的数量。在本发明的一些实施例中,迭代次数取决于期望的精度。在本发明的一些实施例中,关于每次迭代的一组运算的复杂度的一组信息是在数据传递期间执行的算术运算的数量。在本发明的一些实施例中,在数据传递期间执行的算术运算的数量是执行数据挖掘任务的计算实体的数量的函数。在本发明的一些实施例中,一组成本描述符包括关于每个数据传递执行的广播操作的数量的一组信息。在本发明的一些实施例中,一组成本描述符包括关于在广播操作中发送的字节数的一组信息。在本发明的一些实施例中,一组成本描述符包括关于在数据传递期间执行的点对点通信操作的数量的一组信息。在本发明的一些实施例中,一组成本描述符包括关于在通信操作中发送的字节数的一组信息。本发明的一些实施例将数据挖掘任务分割成多个块(例如,cpu成本、内存成本、i/o成本、网络成本)。在本发明的一些实施例中,将数据挖掘任务分割为多个块有助于确定数据挖掘任务的计算复杂度。在本发明的一些实施例中,确定数据挖掘任务的计算复杂度改进了计算工作量的估计。在本发明的一些实施例中,改进计算工作量的估计改进了对数据挖掘任务的成本的估计。

在本发明的一些实施例中,一组控制值包括期望的精度。在本发明的一些实施例中,一组控制值包括对计算资源估计进行计算的期望持续时间。在本发明的一些实施例中,一组控制值影响数据挖掘任务的计算工作量。在本发明的一些实施例中,估计精度与为了获得期望的精度而对数据集执行的迭代次数相关联。在本发明的一些实施例中,计算持续时间影响所采用的计算实体的数量。在本发明的一些实施例中,一组控制值包括数据挖掘任务的开始时间和/或结束时间。在本发明的一些实施例中,数据挖掘任务的开始时间和/或结束时间影响任务成本。在本发明的一些实施例中,数据中心负载随一天的时间而变化。在本发明的一些实施例中,在数据中心负载降低的时间期间,计算实体的成本降低。在本发明的一些实施例中,一组控制值的子集影响估计结果。

在本发明的一些实施例中,任务参数包括算法分类器。在本发明的一些实施例中,算法分类器定义要执行的数据挖掘任务的类型。在本发明的一些实施例中,算法分类器将数据挖掘任务的分类存储为数据元素。在本发明的一些实施例中,分类指示数据挖掘任务是以下之一:回归任务;分类任务;或聚类任务。

在本发明的一些实施例中,如果将数据挖掘任务分类为回归任务,则接收到损失函数类型。在本发明的一些实施例中,如果将数据挖掘任务分类为分类任务,则接收到损失函数类型。在本发明的一些实施例中,损失函数测量给定数据集与预测数据的相似度。在本发明的一些实施例中,数据挖掘过程的目标是使损失函数最小。在本发明的一些实施例中,使损失函数最小减少估计误差。在本发明的一些实施例中,使损失函数最小化提高了估计精度。在本发明的一些实施例中,损失函数类型指示损失函数为如下之一:平方损失函数;对数损失函数;或铰链平方损失函数。

在本发明的一些实施例中,接收正则化函数。在本发明的一些实施例中,正则化函数提供用于估计过程的一组附加信息。在本发明的一些实施例中,一组附加信息提高了解决不良问题的能力。在本发明的一些实施例中,一组附加信息提高了防止过拟合的能力。在本发明的一些实施例中,一组附加信息提高了结合域知识的能力。在本发明的一些实施例中,使用l0范数来解释稀疏数据集。在本发明的一些实施例中,使用l1范数来解释稀疏数据集。在本发明的一些实施例中,通过惩罚数据值的子集来增加估计精度。在本发明的一些实施例中,数据值的子集由正则化函数惩罚。

在本发明的一些实施例中,为聚类数据挖掘任务接收聚类函数(相似度函数)。在本发明的一些实施例中,聚类函数提供将一组数据划分成多个数据群的成本。在本发明的一些实施例中,聚类函数提供了在群中包括元素子集的成本。在本发明的一些实施例中,聚类函数提供了在指定的元素子集的列表内聚集元素子集的成本。在本发明的一些实施例中,聚类函数(相似度函数)是k均值函数。在本发明的一些实施例中,聚类函数(相似度函数)是归一化切割函数。在本发明的一些实施例中,一组数据被分组(聚集),使得组内(群内)相似度大于组间(群间)相似度。

在本发明的一些实施例中,接收与数据集相关联的一组数据描述符。在本发明的一些实施例中,一组数据描述符包括定义数据集的特性的一组属性。在本发明的一些实施例中,定义数据集的特性的一组属性影响数据挖掘任务的计算工作量。在本发明的一些实施例中,一组数据描述符包括但不限于:(i)数据集的特征(维度)的数量;(ii)数据集中的描述项目的数量;(iii)对于具有块结构的数据集,数据集中的块的数量;(iv)损失函数(例如,超图中的k切割函数)的部分可分离度;(v)最大特征值的平方,(vi)条件数σmax(a)/σmin(a);(vii)项目特征矩阵的谱的一组其他属性;和/或(viii)矩阵的列或块中的非零值的最大数目。在本发明的一些实施例中,使用条件数来确定要执行的迭代次数。

在本发明的一些实施例中,从用于估计数据挖掘任务的计算工作量的一组算法中选择算法。在本发明的一些实施例中,算法的选择基于数据集。在本发明的一些实施例中,算法的选择基于一组数据描述符。在本发明的一些实施例中,算法的选择基于一组控制值。在本发明的一些实施例中,算法的选择基于一组任务参数。在本发明的一些实施例中,算法的选择基于对数据挖掘任务的一组计算标准的评估。在本发明的一些实施例中,至少部分地基于一组输入参数来选择算法。在本发明的一些实施例中,提供一组逻辑用于选择算法。在本发明的一些实施例中,一组逻辑适于选择用于解决数据挖掘任务的最合适的算法。在本发明的一些实施例中,算法选择是自动的。在本发明的一些实施例中,自动化算法选择增强了数据挖掘任务的用户友好性。

本发明的一些实施例包括以下特征中的一个或多个:(i)提供关于执行数据挖掘任务所需的一组计算资源的信息;(ii)将关于一组控制值的信息提供给部署调度器;(iii)采用包括关于多个分布式计算系统的一组信息的所述部署调度器;(iv)基于一组计算资源信息选择一组分布式计算系统;(v)基于一组控制值选择一组分布式计算系统;和/或(vi)返回关于在分布式计算系统上部署数据挖掘任务的成本的一组信息。

在本发明的一些实施例中,部署调度器调查用于执行数据挖掘任务的合适的部署策略。在本发明的一些实施例中,选择分布式计算系统(云环境)以确保以最低成本处理数据挖掘任务。在本发明的一些实施例中,选择分布式计算系统以确保数据挖掘任务的最快处理。在本发明的一些实施例中,选择分布式计算系统来确保处理数据挖掘任务的期望安全性。在本发明的一些实施例中,关于分布式计算系统的选择的信息被显示在图形用户界面上。

本发明的一些实施例包括以下特征中的一个或多个:(i)接收数据挖掘任务的高级任务描述;(ii)使用任务定义应用基于高级任务描述来导出数据挖掘任务的一组参数;和/或(iii)至少部分地基于一组参数来估计执行数据挖掘任务所需的一组计算资源。

在本发明的一些实施例中,提供接口以增加数据挖掘任务的可用性。在本发明的一些实施例中,接口适于以用户友好的语法接收数据挖掘任务的高级描述。在本发明的一些实施例中,基于数据挖掘任务的高级描述来细化数据挖掘任务。在本发明的一些实施例中,数据挖掘任务的细化包括以下中的一个或多个:(i)选择数据挖掘算法;(ii)预处理数据集;(iii)导出一组数据描述符;和/或(iv)导出一组成本描述符。在本发明的一些实施例中,细化过程的结果是对数据挖掘任务所需的计算资源的估计的输入。在本发明的一些实施例中,细化过程的结果是对数据挖掘任务所需的计算成本的估计的输入。在本发明的一些实施例中,自动化细化过程增强了数据挖掘任务的用户友好性。

本发明的一些实施例提供用于运行数据挖掘任务的计算资源的估计。如果本发明的一些实施例不相互排斥,则它们彼此自由地相互组合。

本发明的一些实施例提供了用于在分布式计算系统上运行数据挖掘任务的计算资源的估计。本发明的一些实施例提供了用于在云计算环境上运行数据挖掘任务的计算资源的估计。本发明的一些实施例包括一个或多个步骤,其包括但不限于:(i)接收数据集和/或数据描述符,基于该数据集执行数据挖掘任务,该数据描述符描述或界定与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;(ii)接收用于所述数据挖掘任务的一个或多个控制值;(iii)接收一个或多个任务参数,所述任务参数定义将在所述数据集上执行的数据挖掘任务;和/或(iv)基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值以及所述一个或多个任务参数来估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

本发明的实施例的实际工作流程不需要遵循以上或本文列出的步骤的顺序。在本发明的一些实施例中,一组任务参数是第一输入;数据集是第二输入;并且一组控制值是第三输入;然后,产生了估计。

本发明的一些实施例认识到以下事实、潜在问题和/或相对于现有技术的改进的潜在领域:(i)数据挖掘任务使用非平凡迭代算法;和/或(ii)成本估计的资源消耗是一个额外的变量。

本发明的一些实施例包括与估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机实现的方法有关的以下特征中的一个或多个:(i)提供用于数据挖掘任务的一组控制变量(精度、完成时间等),所述控制变量影响数据挖掘任务所需的计算资源量;(ii)接收要被执行的数据挖掘任务的描述,其指示数据集、要在该数据集上执行的任务以及来自用户的可能的附加变量;(iii)接收数据集的数据描述符,所述数据描述符描述或界定与估计数据挖掘任务的计算资源相关的数据集的关键特征;(iv)基于作为数据描述符和控制变量的函数的数据挖掘任务以及分布式计算系统的维度和可用性,定义执行数据挖掘任务的作业并估计用于在分布式计算系统上执行该任务的计算资源;和/或(v)根据控制变量向用户呈现所估计的计算资源。

本发明的一些实施例涉及云中的数据挖掘任务的定价。本发明的一些实施例弥补了云提供商的基础设施成本与客户的精度结果之间的差距。本发明的一些实施例包括以下特征中的一个或多个:(i)启用在云基础设施上执行一组数据挖掘任务的自动价格设置;(ii)估计执行具有目标精度、完成时间或其他数据挖掘相关要求的数据挖掘作业组所需的一组系统资源和硬件资源;(iii)估计和/或改进与运行数据挖掘作业组相关联的成本的估计;和/或(iv)设定估计的价格并将其发布给预期的客户。

本发明的一些实施例包括以下特征中的一个或多个:(i)向用户请求对数据挖掘任务的描述;(ii)产生用于执行数据挖掘任务的一组执行计划和每个执行计划的一组估计的成本度量;(iii)要求用户澄清数据集或目标任务;(iv)进一步提取影响一组成本描述符的数据描述符(其描述了目标数据集的关键特征);(v)作为一组数据挖掘参数的函数向用户呈现一组成本;(vi)接收描述目标应用的一组高级标签;(vii)为数据挖掘任务提出一组要求;(viii)根据目标应用的系统和可用性要求提供一组包;(ix)选择包和部署策略来部署目标数据挖掘任务;(x)向用户呈现一组成本和部署策略。

上述特征的可能组合可以是以下项目:

1.一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机实现的方法,该方法包括:(i)接收数据集和/或数据描述符,基于该数据集执行数据挖掘任务,该数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;(ii)接收所述数据挖掘任务的一个或多个控制值;(iii)接收一个或多个任务参数,所述任务参数定义要在所述数据集上执行的数据挖掘任务;以及(iv)基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值和所述一个或多个任务参数,估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

2.项目1的计算机实现的方法,所述方法还包括:基于执行数据挖掘任务所需的估计的计算资源来估计数据挖掘任务的成本。

3.项目2的计算机实现的方法,所述方法通过导出成本描述符来估计成本,所述成本描述符至少包括关于计算数据挖掘任务所需的迭代次数的信息和关于每次迭代的运算的复杂度的信息。

4.项目2或3的计算机实现的方法,所述方法还包括:基于一个或多个控制变量的值范围提供一组成本数据,所述一组成本数据包括与所述一个或多个控制变量的某些值相关联的多个成本值。

5.前述项目中的任一项的计算机实现的方法,所述一个或多个控制值是估计计算资源的期望精度和/或用于计算计算资源估计的持续时间。

6.前述项目中的任一项的计算机实现的方法,任务参数包括算法分类器,所述算法分类器定义要对数据执行的数据挖掘任务的类型。

7.项目6的计算机实现的方法,算法分类器将数据挖掘任务分类为回归任务、分类任务或聚类任务。

8.项目7的计算机实现的方法,所述方法在回归任务或分类任务的情况下进一步接收损失函数类型。

9.项目8的计算机实现的方法,所述方法进一步接收正则化函数。

10.项目7的计算机实现的方法,所述方法在聚类任务的情况下进一步接收聚类或相似度函数,所述聚类或相似度函数评估将数据集中包括的数据划分成多个数据群的划分。

11.前述项目中的任一项的计算机实现的方法,所述方法进一步接收与包括在数据集中的数据相关联的一个或多个数据属性,所述数据属性定义影响运行数据挖掘任务的计算工作量的数据的特性。

12.前述项目中的任一项的计算机实现的方法,所述方法进一步提供:通过在数据集上应用数据描述符提取算法从数据集中提取一个或多个数据描述符。

13.前述项目中的任一项的计算机实现的方法,所述方法进一步提供:通过评估数据挖掘任务的计算标准,从多种算法中选择出用于基于接收的数据集和/或接收的数据描述符、一个或多个控制值和一个或多个任务参数来估计数据挖掘任务的计算工作量的算法。

14.前述项目中的任一项的计算机实现的方法,所述方法还包括:(i)提供关于执行数据挖掘任务所需的计算资源的信息和一个或多个控制值到部署调度器,所述部署调度器包括关于适于执行数据挖掘任务的多个分布式计算系统的信息;(ii)基于所述计算资源信息和所述一个或多个控制值选择一个或多个分布式计算系统;以及(iii)返回关于在某个分布式计算系统上部署数据挖掘任务的成本的信息。

15.项目14的计算机实现的方法,该方法进一步返回关于用于在某个分布式计算系统上处理数据挖掘任务的部署策略的信息。

16.前述项目2至15中的任一项的计算机实现的方法,所述方法还包括:(i)接收反馈信息,该反馈信息包括关于先前执行的数据挖掘任务的成本估计和在部署所述数据挖掘任务时发生的实际成本的信息;以及(ii)通过使用所述反馈信息来细化当前数据挖掘任务的成本估计。

17.前述项目中的任一项的计算机实现的方法,所述方法还包括:(i)计算用于处理数据挖掘任务的多个处理流程;(ii)为每个处理流程估计用于处理数据挖掘任务的计算工作量;(iii)为每个处理流程估计用于在分布式计算系统上处理数据挖掘任务的成本;以及(iv)向用户呈现多个处理流程成本或选择具有处理数据挖掘任务的最低成本的处理流程。

18.前述项目中的任一项的计算机实现的方法,所述方法还包括:(i)接收要执行的数据挖掘任务的高级任务描述;(ii)通过使用任务定义应用,基于所述高级任务描述导出数据挖掘任务的参数;以及(iii)基于由任务定义应用提供的所述参数来估计用于执行数据挖掘任务的计算资源。

19.项目18的计算机实现的方法,任务定义应用导出指示一个或多个合适的数据挖掘算法的参数、一个或多个数据描述符和/或一个或多个成本描述符。

20.一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机程序产品,所述计算机程序产品包括具有与其一起实施的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使处理器执行一种方法,所述方法包括:(i)接收数据集和/或数据描述符,基于该数据集执行数据挖掘任务,该数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;(ii)接收所述数据挖掘任务的一个或多个控制值;(iii)接收一个或多个任务参数,所述任务参数定义要在所述数据集上执行的数据挖掘任务;(iv)基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值和所述一个或多个任务参数,估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

21.一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机实现的方法,所述方法包括:(i)接收要执行的数据挖掘任务的高级任务描述;(ii)接收所述数据挖掘任务的一个或多个控制值;(iii)执行任务定义应用,所述任务定义应用基于要执行的数据挖掘任务的高级任务描述提供数据挖掘任务的参数;以及(iv)基于所述参数和所述一个或多个控制值估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

22.项目21的计算机实现的方法,所述方法还包括:基于估计的执行数据挖掘任务所需的计算资源来估计数据挖掘任务的成本。

23.项目22的计算机实现的方法,所述方法通过导出成本描述符来估计成本,所述成本描述符至少包括关于计算数据挖掘任务所需的迭代次数的信息和关于每次迭代的运算的复杂度的信息。

24.一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的计算机程序产品,所述计算机程序产品包括具有与其一起实施的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使处理器执行一种方法,所述方法包括:(i)接收要执行的数据挖掘任务的高级任务描述;(ii)接收所述数据挖掘任务的一个或多个控制值;(iii)执行任务定义应用,所述任务定义应用基于要执行的数据挖掘任务的高级任务描述提供数据挖掘任务的参数;以及(iv)基于所述参数和所述一个或多个控制值估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

25.一种用于估计用于在分布式计算系统上运行数据挖掘任务的计算资源的系统,所述系统包括:(i)用于接收数据集和/或数据描述符的接口,基于该数据集执行数据挖掘任务,该数据描述符描述或限制与估计用于运行数据挖掘任务的计算资源相关的数据集的特征;(ii)用于接收所述数据挖掘任务的一个或多个控制值的接口;(iii)用于接收一个或多个任务参数的接口,所述任务参数定义要在所述数据集上执行的数据挖掘任务;(iv)数据处理模块,适于基于所接收的数据集或所接收的数据描述符、所述一个或多个控制值和所述一个或多个任务参数,估计用于在分布式计算系统上执行数据挖掘任务的计算资源。

26.一种方法,包括:(i)接收一组任务参数,所述一组任务参数定义目标数据集和数据挖掘任务;(ii)接收一组控制值,所述一组控制值描述所述数据挖掘任务;(iii)接收一组数据描述符,所述一组数据描述符描述目标数据集;以及(iv)至少部分地基于所述一组任务参数、所述一组控制值、所述一组数据描述符以及分布式计算系统的可用性来估计在分布式计算系统上执行所述数据挖掘任务所需的一组计算资源;其中:至少所述估计步骤由在计算机硬件上运行的计算机软件执行。

27.项目26的方法,还包括:(i)通过导出一组成本描述符来生成执行数据挖掘任务所需的估计成本,所述一组成本描述符包括:执行数据挖掘任务所需的计算迭代次数,以及每次计算迭代的复杂度水平。

28.项目27的方法,还包括:报告执行数据挖掘任务所需的估计成本。

29.项目26的方法,还包括:定义数据挖掘任务的类型;其中:所述类型是回归任务、分类任务和聚类任务之一。

30.项目29的方法,还包括:对于聚类任务类型,接收用于评估包括在目标数据集中的数据被划分成多个数据群的划分的聚类函数。

31.项目26的方法,还包括:(i)接收数据挖掘任务的高级任务描述;(ii)使用任务定义应用,基于所述高级任务描述导出数据挖掘任务的一组导出参数;以及(iii)基于所述一组导出参数来估计用于执行数据挖掘任务的计算资源。

32.一种计算机程序产品,包括其上存储有如下指令的计算机可读存储介质:(i)第一指令,可由设备执行以使该设备接收一组任务参数,所述一组任务参数定义目标数据集和数据挖掘任务;(ii)第二指令,可由设备执行以使该设备接收一组控制值,所述一组控制值描述数据挖掘任务;(iii)第三指令,可由设备执行以使该设备接收一组数据描述符,所述一组数据描述符描述目标数据集;(iv)第四指令,可由设备执行以使该设备至少部分地基于所述一组任务参数、所述一组控制值、所述一组数据描述符以及分布式计算系统的可用性来估计在分布式计算系统上执行所述数据挖掘任务所需的一组计算资源。

33.项目32的计算机程序产品,还包括:第五指令,可由设备执行以使该设备通过导出一组成本描述符来生成执行数据挖掘任务所需的估计成本,所述一组成本描述符包括:执行数据挖掘任务所需的计算迭代次数、以及每次计算迭代的复杂度水平。

34.项目33的计算机程序产品,还包括:第六指令,可由设备执行以使该设备报告执行数据挖掘任务所需的估计成本。

35.项目32的计算机程序产品,还包括:第五指令,可由设备执行以使该设备定义数据挖掘任务的类型;其中:所述类型是回归任务、分类任务和聚类任务之一。

36.项目35的计算机程序产品,还包括:第六指令,可由设备执行以使该设备对于聚类任务类型,接收用于评估包括在目标数据集中的数据被划分成多个数据群的划分的聚类函数。

37.项目32的计算机程序产品,还包括:(i)第五指令,可由设备执行以使该设备接收数据挖掘任务的高级任务描述;(ii)第六指令,可由设备执行以使该设备使用任务定义应用,基于所述高级任务描述导出数据挖掘任务的一组导出参数;以及(iii)第七指令,可由设备执行以使该设备基于所述一组导出参数来估计用于执行数据挖掘任务的计算资源。

38.一种计算机系统,包括:处理器组;以及计算机可读存储介质;其中:处理器组被构造、定位、连接和/或编程以执行存储在计算机可读存储介质上的指令;并且所述指令包括:(i)第一指令,可由设备执行以使该设备接收一组任务参数,所述一组任务参数定义目标数据集和数据挖掘任务;(ii)第二指令,可由设备执行以使该设备接收一组控制值,所述一组控制值描述数据挖掘任务;(iii)第三指令,可由设备执行以使该设备接收一组数据描述符,所述一组数据描述符描述目标数据集;(iv)第四指令,可由设备执行以使该设备至少部分地基于所述一组任务参数、所述一组控制值、所述一组数据描述符以及分布式计算系统的可用性来估计在分布式计算系统上执行所述数据挖掘任务所需的一组计算资源。

39.项目38的计算机系统,还包括:第五指令,可由设备执行以使该设备通过导出一组成本描述符来生成执行数据挖掘任务所需的估计成本,所述一组成本描述符包括:执行数据挖掘任务所需的计算迭代次数、以及每次计算迭代的复杂度水平。

40.项目39的计算机系统,还包括:第六指令,可由设备执行以使该设备报告执行数据挖掘任务所需的估计成本。

41.项目38的计算机系统,还包括:第五指令,可由设备执行以使该设备定义数据挖掘任务的类型;其中:所述类型是回归任务、分类任务和聚类任务之一。

42.项目41的计算机系统,还包括:第六指令,可由设备执行以使该设备对于聚类任务类型,接收用于评估包括在目标数据集中的数据被划分成多个数据群的划分的聚类函数。

43.权利要求38的计算机系统,还包括:(i)第五指令,可由设备执行以使该设备接收数据挖掘任务的高级任务描述;(ii)第六指令,可由设备执行以使该设备使用任务定义应用,基于所述高级任务描述导出数据挖掘任务的一组导出参数;以及(iii)第七指令,可由设备执行以使该设备基于所述一组导出参数来估计用于执行数据挖掘任务的计算资源。

44.一种方法,包括:(i)接收数据集;(ii)接收一组控制值;(iii)接收一组数据挖掘任务参数;以及(iv)估计执行数据挖掘任务所需的一组计算资源;其中:所述一组控制值描述所述数据挖掘任务;所述一组数据挖掘任务参数定义数据集和数据挖掘任务;所述一组计算资源至少部分地基于所述数据集、所述一组控制值和所述一组数据挖掘任务参数;并且至少所述估计步骤由在计算机硬件上运行的计算机软件执行。

45.项目44的方法,其中:所述一组控制值包括精度和持续时间;所述精度是对所述一组计算资源的估计;并且所述持续时间是执行数据挖掘任务的时长。

46.项目44的方法,其中,估计所述一组计算资源包括:(i)回顾一组先前的计算资源估计;以及(ii)接收一组先前的计算资源成本;其中:所述一组先前的计算资源成本对应于所述一组先前的计算资源估计。

47.项目44的方法,其中,估计所述一组计算资源包括:(i)估计数据挖掘任务的一组处理流程;以及(ii)估计所述一组处理流程中的每个处理流程所需的一组计算资源;其中:所述一组处理流程中的不同流程表示完成数据挖掘任务的不同方式。

48.一种计算机系统,包括:处理器组;以及计算机可读存储介质;其中:处理器组被构造、定位、连接和/或编程以执行存储在计算机可读存储介质上的指令;并且所述指令包括:(i)第一指令,可由设备执行以使该设备接收数据集;(ii)第二指令,可由设备执行以使该设备接收一组控制值;(iii)第三指令,可由设备执行以使该设备接收一组数据挖掘任务参数;(iv)第四指令,可由设备执行以使该设备估计执行数据挖掘任务所需的一组计算资源;其中:所述一组控制值描述所述数据挖掘任务;所述一组数据挖掘任务参数定义数据集和数据挖掘任务;并且所述一组计算资源至少部分地基于所述数据集、所述一组控制值和所述一组数据挖掘任务参数。

49.项目48的计算机系统,其中,估计所述一组计算资源的第四指令包括:(i)第五指令,可由设备执行以使该设备回顾一组先前的计算资源估计;以及(ii)第六指令,可由设备执行以使该设备接收一组先前的计算资源成本;其中:所述一组先前的计算资源成本对应于所述一组先前的计算资源估计。

50.项目49的计算机系统,其中,估计所述一组计算资源的第四指令包括:(i)第五指令,可由设备执行以使该设备估计数据挖掘任务的一组处理流程;以及(ii)第六指令,可由设备执行以使该设备估计所述一组处理流程中的每个处理流程所需的一组计算资源;其中:所述一组处理流程中的不同流程表示完成数据挖掘任务的不同方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1