CN105247487B - 用于非平稳数据的凝聚群集的并行方法 - Google Patents
用于非平稳数据的凝聚群集的并行方法 Download PDFInfo
- Publication number
- CN105247487B CN105247487B CN201480030706.0A CN201480030706A CN105247487B CN 105247487 B CN105247487 B CN 105247487B CN 201480030706 A CN201480030706 A CN 201480030706A CN 105247487 B CN105247487 B CN 105247487B
- Authority
- CN
- China
- Prior art keywords
- processor
- thread
- data point
- cluster
- point stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/043—Distributed expert systems; Blackboards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本公开涉及对数据点流进行群集。一方面接收数据点流,确定多个群集质心,在多个线程和/或处理器间划分该多个群集质心,向该多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分,以及组合由该多个线程和/或处理器生成的多个群集以生成全局群集域。一方面向多个线程和/或处理器中的每个线程和/或处理器指派数据点流的一部分,其中该多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕该一个或多个群集质心的一个或多个群集,以及组合来自该多个线程和/或处理器中的每个线程和/或处理器的一个或多个群集以生成全局群集域。
Description
发明背景
1.发明领域
本公开的诸方面涉及用于非平稳数据的凝聚群集的并行方法。
2.相关技术描述
群集是将数据点编群成群集。群集的实践应用包括无监督分类和分类法生成、最近邻居搜索、科学发现、向量量化、文本分析、以及导航。
一种常见的群集算法是k均值群集算法。该算法假定要被群集的数据“对象”作为d维欧氏空间中的点(或向量)而可用。k均值算法寻求对数据的最小方差编群,其使与某些群集质心的欧氏距离的平方和最小化。k均值算法的普及性可归因于其相对易于解读、实现简单化、可缩放性、收敛速度、对稀疏数据的适用性、以及易于核外(在单个处理器的本地存储器外)实现。
群集的问题在于其可能要耗费大量存储器和处理功率。例如,接收到的数据点通常被存储于存储器中并且被群集成单个群集域。为了加快对所存储数据的处理,可采用并行处理技术来对数据进行群集。然而,如果群集是由移动设备执行的,并且数据是由传感器(诸如加速计或话筒)生成的,那么可能有太多数据要存储于存储器中并随后处理。取而代之,数据必须“在运行中”被处理。
概述
本公开的诸方面涉及对数据点流进行群集。一种用于对数据点流进行群集的方法包括接收数据点流,确定多个群集质心,在多个线程和/或处理器间划分该多个群集质心,向该多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分,以及组合由该多个线程和/或处理器生成的多个群集以生成全局群集域。
一种用于对数据点流进行群集的方法包括接收数据点流,向多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分,其中该多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕该一个或多个群集质心的一个或多个群集,以及组合来自该多个线程和/或处理器中的每个线程和/或处理器的一个或多个群集以生成全局群集域。
一种用于对数据点流进行群集的装置包括配置成接收数据点流的逻辑,配置成确定多个群集质心的逻辑,配置成在多个线程和/或处理器间划分该多个群集质心的逻辑,配置成向该多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分的逻辑,以及配置成组合由该多个线程和/或处理器生成的多个群集以生成全局群集域的逻辑。
一种用于对数据点流进行群集的装置包括接配置成收数据点流的逻辑,配置成向多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分的逻辑,其中该多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕该一个或多个群集质心的一个或多个群集,以及配置成组合来自该多个线程和/或处理器中的每个线程和/或处理器的一个或多个群集以生成全局群集域的逻辑。
一种用于对数据点流进行群集的装备包括用于接收数据点流的装置,用于确定多个群集质心的装置,用于在多个线程和/或处理器间划分该多个群集质心的装置,用于向该多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分的装置,以及用于组合由该多个线程和/或处理器生成的多个群集以生成全局群集域的装置。
一种用于对数据点流进行群集的装备包括用于接收数据点流的装置,用于向多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分的装置,其中该多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕该一个或多个群集质心的一个或多个群集,以及用于组合来自该多个线程和/或处理器中的每个线程和/或处理器的一个或多个群集以生成全局群集域的装置。
一种用于对数据点流进行群集的非瞬态计算机可读介质包括用于接收数据点流的至少一条指令,用于确定多个群集质心的至少一条指令,用于在多个线程和/或处理器间划分该多个群集质心的至少一条指令,用于向该多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分的至少一条指令,以及用于组合由该多个线程和/或处理器生成的多个群集以生成全局群集域的至少一条指令。
一种用于对数据点流进行群集的非瞬态计算机可读介质包括用于接收数据点流的至少一条指令,用于向多个线程和/或处理器中的每个线程和/或处理器指派该数据点流的一部分的至少一条指令,其中该多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕该一个或多个群集质心的一个或多个群集,以及用于组合来自该多个线程和/或处理器中的每个线程和/或处理器的一个或多个群集以生成全局群集域的至少一条指令。
附图简述
对本公开的各方面及其许多伴随优点的更完整领会将因其在参考结合附图考虑的以下详细描述时变得更好理解而易于获得,附图仅出于解说目的被给出而不对本公开构成任何限定,并且其中:
图1解说了根据本公开的一方面的无线通信系统的高级系统架构。
图2是解说示例性用户装备(UE)的各种组件的框图。
图3解说了根据本公开的一方面的包括配置成执行功能性的逻辑的通信设备。
图4解说了实现k均值算法的代表性计算机程序指令的示例性列表。
图5解说了可由UE执行的用于对数据点流进行群集的示例性流程。
图6解说了可由UE执行的用于对数据点流进行群集的示例性流程。
详细描述
在以下描述和相关附图中公开了各个方面。可以设计替换方面而不会脱离本公开的范围。另外,本公开中众所周知的元素将不被详细描述或将被省去以免湮没本公开的相关细节。
措辞“示例性”和/或“示例”在本文中用于意指“用作示例、实例或解说”。本文描述为“示例性”和/或“示例”的任何方面不必被解释为优于或胜过其他方面。类似地,术语“本公开的各方面”不要求本公开的所有方面都包括所讨论的特征、优点或操作模式。
此外,许多方面以将由例如计算设备的元件执行的动作序列的方式来描述。将认识到,本文描述的各种动作能由专用电路(例如,专用集成电路(ASIC))、由正被一个或多个处理器执行的程序指令、或由这两者的组合来执行。另外,本文描述的这些动作序列可被认为是完全体现在任何形式的计算机可读存储介质内,其中存储有一经执行就将使相关联的处理器执行本文所描述的功能性的相应计算机指令集。因此,本公开的各方面可以用数种不同形式来体现,所有这些形式都已被构想为落在所要求保护的主题内容的范围内。另外,对于本文所描述的诸方面中的每一个方面,任何此类方面的相应形式可在本文中描述为例如“配置成执行所描述的动作的逻辑”。
客户端设备(在本文中被称为用户装备(UE))可以是移动的或驻定的,并且可以与无线电接入网(RAN)通信。如本文所使用的,术语“UE”可以互换地被称为“接入终端”或“AT”、“无线设备”、“订户设备”、“订户终端”、“订户站”、“用户终端”或UT、“移动终端”、“移动站”及其各种变型。一般地,UE可以经由RAN与核心网通信,并且通过核心网,UE能够与外部网络(诸如因特网)连接。当然,连接到核心网和/或因特网的其他机制对于UE而言也是可能的,诸如通过有线接入网、WiFi网络(例如,基于IEEE 802.11等)等。UE可以通过数种类型设备中的任何设备来实现,包括但不限于PC卡、致密闪存设备、外置或内置调制解调器、无线或有线电话等。UE藉以向RAN发送信号的通信链路被称为上行链路信道(例如,反向话务信道、反向控制信道、接入信道等)。RAN籍以向UE发送信号的通信链路被称为下行链路或前向链路信道(例如,寻呼信道、控制信道、广播信道、前向话务信道等)。如本文所使用的,术语话务信道(TCH)可以指上行链路/反向或下行链路/前向话务信道。
图1解说了根据本公开的一方面的无线通信系统100的高级系统架构。无线通信系统100包含UE 1…N。UE 1…N可包括蜂窝电话、个人数字助理(PDA)、寻呼机、膝上型计算机、台式计算机等。例如,在图1中,UE 1…2被解说为蜂窝呼叫电话,UE 3…5被解说为蜂窝触摸屏电话或智能电话,而UE N被解说为台式计算机或个人计算机(PC)。
参照图1,UE 1…N配置成在物理通信接口或层(在图1中被示为空中接口104、106、108)和/或直接有线连接上与接入网(例如,RAN 120、接入点125等)通信。空中接口104和106可以遵循给定的蜂窝通信协议(例如,码分多址(CDMA)、演进数据优化(EV-DO)、演进型高速率分组数据(eHRPD)、全球移动通信系统(GSM)、增强型数据速率GSM演进(EDGE)、宽带CDMA(W-CDMA)、长期演进(LTE)等),而空中接口108可以遵循无线IP协议(例如,IEEE802.11)。RAN 120包括通过空中接口(诸如,空中接口104和106)服务UE的多个接入点。RAN120中的接入点可被称为接入节点或AN、接入点或AP、基站或BS、B节点、演进型B节点等。这些接入点可以是陆地接入点(或地面站)或卫星接入点。RAN 120配置成连接到核心网140,核心网140可以执行各种各样的功能,包括在由RAN 120服务的UE与由RAN 120或完全不同的RAN服务的其他UE之间桥接电路交换(CS)呼叫,并且还可中介与外部网络(诸如因特网175)的分组交换(PS)数据交换。因特网175包括数个路由代理和处理代理(出于方便起见未在图1中示出)。在图1中,UE N被示为直接连接到因特网175(即,与核心网140分开,诸如通过WiFi或基于802.11的网络的以太网连接)。因特网175可藉此用于经由核心网140在UE N与UE 1…N之间桥接分组交换数据通信。图1还示出了与RAN 120分开的接入点125。接入点125可以独立于核心网140地(例如,经由光通信系统,诸如FiOS、线缆调制解调器等)连接到因特网175。空中接口108可通过局部无线连接(诸如在一个示例中是IEEE 802.11)来服务UE 4或UE 5。UE N被示为具有到因特网175的有线连接(诸如到调制解调器或路由器的直接连接)的台式计算机,在一示例中该调制解调器或路由器可对应于接入点125自身(例如,对于具有有线和无线连通性两者的Wi-Fi路由器)。
参照图1,应用服务器170被示为连接到因特网175、核心网140、或这两者。应用服务器170可被实现为多个在结构上分开的服务器,或者替换地可对应于单个服务器。如下文将更详细地描述的,应用服务器170配置成针对能够经由核心网140和/或因特网175连接到应用服务器170的UE支持一个或多个通信服务(例如,网际协议语音(VoIP)会话、即按即讲(PTT)会话、群通信会话、社交联网服务等)。
图2是解说示例性UE 200的各种组件的框图。为简单化,图2的框图中所解说的各种特征和功能是使用共同总线连接在一起的,其旨在表示这些各种特征和功能起作用地耦合在一起。本领域技术人员将认识到,其他连接、机制、特征、功能或诸如此类可被提供并且按需适配以起作用地耦合和配置实际的便携式无线设备。另外,还认识到,图2的示例中所解说的特征或功能之中的一个或多个可被进一步细分,或者图2中所解说的特征或功能之中的两个或更多个可被组合。
UE 200可包括可连接至一个或多个天线202的一个或多个广域网(WAN)收发机204。WAN收发机204包括适合用于与WAN-WAP(诸如接入点125)通信和/或检测去往/来自WAN-WAP的信号和/或直接与网络内的其他无线设备通信的设备、硬件和/或软件。在一个方面,WAN收发机204可包括适合用于与具有无线基站的CDMA网络进行通信的CDMA通信系统;然而在其他方面,无线通信系统可包括另一类型的蜂窝电话网络,诸如举例而言TDMA或GSM。另外,可以使用任何其他类型的广域无线联网技术,例如WiMAX(802.16)等。UE 200还可包括可连接至一个或多个天线202的一个或多个局域网(LAN)收发机206。LAN收发机206包括适合用于与LAN-WAP(诸如接入点125)通信和/或检测去往/来自LAN-WAP的信号和/或直接与网络内的其他无线设备通信的设备、硬件和/或软件。在一个方面,LAN收发机206可包括适合用于与一个或多个无线接入点进行通信的Wi-Fi(802.11x)通信系统;然而在其他方面,LAN收发机206包括另一类型的局域网、个域网(例如,蓝牙)。另外,可以使用任何其他类型的无线联网技术,例如超宽带、ZigBee、无线USB等。
如本文中所使用的,缩写的术语“无线接入点”(WAP)可被用来指代LAN-WAP和/或WAN-WAP。具体而言,在以下给出的描述中,当使用术语“WAP”时,应当理解诸实施例可包括能利用来自多个LAN-WAP、多个WAN-WAP、或这两者的任何组合的信号的UE 200。正被UE 200利用的WAP的具体类型可取决于操作环境。而且,UE 200可动态地在各种类型的WAP之间进行选择以得出准确的位置解。在其他实施例中,各种网络要素可按对等方式进行操作,籍此例如可以用WAP来替代UE 200,反之亦然。其他对等实施例可包括代替一个或多个WAP进行动作的另一UE(未示出)。
卫星定位系统(SPS)接收机208也可被包括在UE 200中。SPS接收机208可被连接至一个或多个天线202以接收卫星信号。SPS接收机208可包括任何适合用于接收和处理SPS信号的硬件和/或软件。SPS接收机208在恰适的场合向其他系统请求信息和操作,并且使用由任何合适的SPS算法所获得的测量来执行对于确定UE 200的位置而言所必需的演算。
运动传感器212可耦合至处理器210以提供独立于从由WAN收发机204、LAN收发机206和SPS接收机208所接收到的信号推导出的运动数据的移动和/或取向信息。
作为示例,运动传感器212可利用加速计(例如,微机电系统(MEMS)器件)、陀螺仪、地磁传感器(例如,罗盘)、高度计(例如,大气压力高度计)、和/或任何其他类型的移动检测传感器。而且,运动传感器212可包括多个不同类型的器件,并组合其输出来提供运动信息。例如,运动传感器212可使用多轴加速计和取向传感器的组合来提供计算2-D和/或3-D坐标系中的位置的能力。
处理器210可被连接至WAN收发机204、LAN收发机206、SPS接收机208以及运动传感器212。处理器210可包括提供处理功能以及其他演算和控制功能性的一个或多个微处理器、微控制器和/或数字信号处理器。处理器210还可包括用于存储数据和软件指令以用于在UE 200内执行经编程的功能性的存储器214。存储器214可以板载在处理器210上(例如,在同一集成电路(IC)封装内),和/或该存储器可以是处理器外部的存储器并且在数据总线上功能性地耦合。以下将更详细地讨论与本公开的各方面相关联的功能细节。
数个软件模块和数据表可驻留在存储器214中并由处理器210利用以管理通信和定位确定功能性两者。如图2中所解说的,存储器214可包括和/或以其他方式容纳基于无线的定位模块216、应用模块218、以及定位模块228。应该领会,如图2中所示的存储器内容的组织仅是示例性的,并且由此,可取决于UE 200的实现按不同的方式来组合、分开和/或结构化这些模块和/或数据结构的功能性。
应用模块218可以是在UE 200的处理器210上运行的进程,该进程向基于无线的定位模块216请求位置信息。应用通常在软件架构的上层内运行。基于无线的定位模块216可使用从根据与多个WAP交换的信号测量的时间信息推导出的信息来推导UE 200的位置。为了使用基于时间的技术来准确地确定位置,对由每个WAP的处理时间所引入的时间延迟的合理估计可被用来校准/调整从这些信号所获得的时间测量。如本文中所使用的,这些时间延迟被称为“处理延迟”。
可使用由运动传感器212获得的信息来执行用于进一步细化WAP的处理延迟的校准。在一个实施例中,运动传感器212可直接向处理器210提供位置和/或取向数据,其可被存储在存储器214的位置/运动数据模块226中。在其他实施例中,运动传感器212可提供应该由处理器210进一步处理以推导用于执行校准的信息的数据。例如,运动传感器212可提供加速度数据和/或取向数据(单轴或多轴),可使用定位模块228来处理这些数据以推导用于调整基于无线的定位模块216中的处理延迟的位置数据。
在校准之后,该位置可随后被输出给应用模块218以作为对其前述请求的响应。另外,基于无线的定位模块216可利用参数数据库224来交换操作参数。此类参数可包括所确定的关于每个WAP的处理延迟、普通坐标系中的WAP位置、与网络相关联的各种参数、初始处理延迟估计等。
在其他实施例中,附加信息可任选地包括可从运动传感器212以外的其他源(诸如从SPS测量)确定的辅助位置和/或运动数据。该辅助位置数据可以是间歇的和/或有噪的,但取决于UE 200在其中操作的环境而作为用于估计WAP的处理延迟的另一独立信息源可能是有用的。
例如,在一些实施例中,从SPS接收机208推导出的数据可补充由运动传感器212供应的位置数据(直接来自位置/运动数据模块226或由定位模块228推导出)。在其他实施例中,位置数据可与通过附加网络使用非RTT技术(例如,CDMA网络内的高级前向链路三边测量(AFLT))所确定的数据相组合。在某些实现中,运动传感器212和/或SPS接收机214可提供所有或部分辅助位置/运动数据226而无需由处理器210进一步处理。在一些实施例中,辅助位置/运动数据226可由运动传感器212和/或SPS接收机208直接提供给处理器210。
虽然图2中所示的这些模块在本示例中被解说为包含在存储器214中,但应认识到,在某些实现中,此类规程可使用其他或附加机制来提供或者以其他方式被可操作性地安排。例如,基于无线的定位模块216和/或应用模块218的全部或一部分可在固件中提供。另外,虽然在该示例中基于无线的定位模块216和应用模块218被解说为分开的特征,但应认识到,例如,此类规程可被组合在一起作为一个规程或者或许与其他规程相组合,或者以其他方式进一步划分成多个子规程。
处理器210可包括适用于至少执行本文中所提供的技术的任何形式的逻辑。例如,处理器210可基于存储器214中的指令被起作用地配置成选择性地发起将运动数据用在UE200的其他部分中的一个或多个例程。
UE 200可包括用户接口250,用户接口250提供任何合适的接口系统,诸如允许用户与UE 200交互的话筒/扬声器252、按键板254、以及显示器256。话筒/扬声器252使用WAN收发机204和/或LAN收发机206来提供语音通信服务。按键板254包括供用户输入用的任何合适的按钮。显示器256包括任何合适的显示器,诸如背光液晶显示器(LCD),并且还可包括用于附加用户输入模式的触摸屏显示器。
如本文中所使用的,UE 200可以是可配置成捕获从一个或多个无线通信设备或网络传送的无线信号以及向一个或多个无线通信设备或网络传送无线信号的任何便携式或可移动设备或机器。如图2中所示,UE 200代表此类便携式无线设备。因此,作为示例但非限定,UE 200可包括无线电设备、蜂窝电话设备、计算设备、个人通信系统(PCS)设备、或者其他类似的装备有无线通信的可移动设备、设施、或机器。术语“用户装备”还旨在包括诸如通过短程无线、红外、有线连接、或其他连接与个人导航设备(PND)通信的设备——不管卫星信号接收、辅助数据接收、和/或位置相关处理是发生在该设备处还是在PND处。而且,“用户装备”旨在包括能够诸如经由因特网、Wi-Fi、或其他网络与服务器通信的所有设备,包括无线设备、计算机、膝上型设备等,而不管卫星信号接收、辅助数据接收、和/或位置相关处理是发生在该设备处、服务器处、还是与网络相关联的另一设备处。以上的任何可操作组合也被认为是“用户装备”。
如本文中所使用的,术语“无线设备”、“移动站”、“移动设备”、“用户装备”等可以指可在网络上传输信息并且还具有位置确定和/或导航功能性的任何类型的无线通信设备。无线设备可以是任何蜂窝移动终端、个人通信系统(PCS)设备、个人导航设备、膝上型设备、个人数字助理、或任何其他能够接收和处理网络和/或SPS信号的合适设备。
图3解说了包括配置成执行功能性的逻辑的通信设备300。通信设备300可对应于上文提及的通信设备中的任一者,包括但不限于UE 200、RAN 120的任何组件、核心网140的任何组件、与核心网140和/或因特网175耦合的任何组件(例如,应用服务器170)等。因此,通信设备300可对应于配置成通过图1的无线通信系统100与一个或多个其它实体通信(或促成与一个或多个其它实体的通信)的任何电子设备。
参照图3,通信设备300包括配置成接收和/或传送信息的逻辑305。在一示例中,如果通信设备300对应于无线通信设备(例如,UE 200),则配置成接收和/或传送信息的逻辑305可包括无线通信接口(例如,蓝牙、WiFi、2G、CDMA、W-CDMA、3G、4G、LTE等),诸如无线收发机和相关联的硬件(例如,射频(RF)天线、调制解调器、调制器和/或解调器等)。在另一示例中,配置成接收和/或传送信息的逻辑305可对应于有线通信接口(例如,串行连接、通用串行总线(USB)或火线连接、可藉以接入因特网175的以太网连接等)。因此,如果通信设备300对应于某种类型的基于网络的服务器(例如,应用服务器170),则配置成接收和/或传送信息的逻辑305在一示例中可对应于以太网卡,该以太网卡经由以太网协议将基于网络的服务器连接至其它通信实体。在进一步示例中,配置成接收和/或传送信息的逻辑305可包括传感或测量硬件(例如,加速计、温度传感器、光传感器、用于监视本地RF信号的天线等),通信设备300可藉由该传感或测量硬件来监视其本地环境。配置成接收和/或传送信息的逻辑305还可包括配置成接收数据点流的逻辑。配置成接收和/或传送信息的逻辑305还可包括在被执行时准许配置成接收和/或传送信息的逻辑305的相关联硬件执行其(诸)接收和/或传送功能的软件。然而,配置成接收和/或传送信息的逻辑305不单单对应于软件,并且配置成接收和/或传送信息的逻辑305至少部分地依赖于硬件来实现其功能性。
参照图3,通信设备300进一步包括配置成处理信息的逻辑310。在一示例中,配置成处理信息的逻辑310可至少包括处理器。可由配置成处理信息的逻辑310执行的处理类型的示例实现包括但不限于执行确定、建立连接、在不同信息选项之间作出选择、执行与数据有关的评价、与耦合至通信设备300的传感器交互以执行测量操作、将信息从一种格式转换为另一种格式(例如,在不同协议之间转换,诸如,.wmv到.avi等),等等。配置成处理信息的逻辑310可包括:配置成接收数据点流的逻辑;配置成确定多个群集质心的逻辑;配置成在多个线程和/或处理器间划分该多个群集质心的逻辑;配置成将数据点流的一部分指派给该多个线程和/或处理器中的每个线程和/或处理器的逻辑;以及配置成组合由该多个线程和/或处理器生成的多个群集以生成全局群集域的逻辑。配置成处理信息的逻辑310还可包括配置成接收数据点流的逻辑;配置成将数据点流的一部分指派给多个线程和/或处理器中的每个线程和/或处理器的逻辑,其中该多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕该一个或多个群集质心的一个或多个群集;以及配置成组合来自该多个线程和/或处理器中的每个线程和/或处理器的一个或多个群集以生成全局群集域的逻辑。配置成处理信息的逻辑310中所包括的处理器可对应于被设计成执行本文所描述功能的通用处理器、数字信号处理器(DSP)、ASIC、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。配置成处理信息的逻辑310还可包括在被执行时准许配置成处理信息的逻辑310的相关联硬件执行其处理功能的软件。然而,配置成处理信息的逻辑310不单单对应于软件,并且配置成处理信息的逻辑310至少部分地依赖于硬件来实现其功能性。
参照图3,通信设备300进一步包括配置成存储信息的逻辑315。在一示例中,配置成存储信息的逻辑315可至少包括非瞬态存储器和相关联的硬件(例如,存储器控制器等)。例如,配置成存储信息的逻辑315中所包括的非瞬态存储器可对应于RAM、闪存、ROM、可擦除式可编程ROM(EPROM)、EEPROM、寄存器、硬盘、可移动盘、CD-ROM、或本领域中已知的任何其他形式的存储介质。配置成存储信息的逻辑315还可包括在被执行时准许配置成存储信息的逻辑315的相关联硬件执行其存储功能的软件。然而,配置成存储信息的逻辑315不单单对应于软件,并且配置成存储信息的逻辑315至少部分地依赖于硬件来实现其功能性。
参照图3,通信设备300进一步可任选地包括配置成呈现信息的逻辑320。在一示例中,配置成呈现信息的逻辑320可至少包括输出设备和相关联的硬件。例如,输出设备可包括视频输出设备(例如,显示屏、能承载视频信息的端口(诸如USB、高清多媒体接口(HDMI)等))、音频输出设备(例如,扬声器、能承载音频信息的端口(诸如话筒插孔、USB、HDMI等))、振动设备和/或信息可藉此被格式化以供输出或实际上由通信设备300的用户或操作者输出的任何其它设备。例如,如果通信设备300对应于如图2中所示的UE 200,则配置成呈现信息的逻辑320可包括显示器256和/或扬声器252。在进一步示例中,对于某些通信设备(诸如不具有本地用户的网络通信设备(例如,网络交换机或路由器、远程服务器等))而言,配置成呈现信息的逻辑320可被省略。配置成呈现信息的逻辑320还可包括在被执行时准许配置成呈现信息的逻辑320的相关联硬件执行其呈现功能的软件。然而,配置成呈现信息的逻辑320不单单对应于软件,并且配置成呈现信息的逻辑320至少部分地依赖于硬件来实现其功能性。
参照图3,通信设备300进一步可任选地包括配置成接收本地用户输入的逻辑325。在一示例中,配置成接收本地用户输入的逻辑325可至少包括用户输入设备和相关联的硬件。例如,用户输入设备可包括按钮、触摸屏显示器、键盘、相机、音频输入设备(例如,话筒或可承载音频信息的端口(诸如话筒插孔等))、和/或可用来从通信设备300的用户或操作者接收信息的任何其它设备。例如,如果通信设备300对应于如图2中所示的UE 200,则配置成接收本地用户输入的逻辑325可包括话筒252、按键板254、显示器256等。在进一步示例中,对于某些通信设备(诸如不具有本地用户的网络通信设备(例如,网络交换机或路由器、远程服务器等))而言,配置成接收本地用户输入的逻辑325可被省略。配置成接收本地用户输入的逻辑325还可包括在被执行时准许配置成接收本地用户输入的逻辑325的相关联硬件执行其输入接收功能的软件。然而,配置成接收本地用户输入的逻辑325不单单对应于软件,并且配置成接收本地用户输入的逻辑325至少部分地依赖于硬件来实现其功能性。
参照图3,尽管所配置的逻辑305到325在图3中被示为分开或相异的块,但将领会,相应各个所配置的逻辑藉以执行其功能性的硬件和/或软件可部分交迭。例如,用于促成所配置的逻辑305到325的功能性的任何软件可被存储在与配置成存储信息的逻辑315相关联的非瞬态存储器中,从而所配置的逻辑305到325各自部分地基于由配置成存储信息的逻辑315所存储的软件的操作来执行其功能性(即,在这一情形中为软件执行)。同样地,直接与所配置的逻辑之一相关联的硬件可不时地被其它所配置的逻辑借用或使用。例如,配置成处理信息的逻辑310的处理器可在数据由配置成接收和/或传送信息的逻辑305传送之前将此数据格式化为恰适格式,从而配置成接收和/或传送信息的逻辑305部分地基于与配置成处理信息的逻辑310相关联的硬件(即,处理器)的操作来执行其功能性(即,在这一情形中为数据传输)。
一般而言,除非另外明确声明,如贯穿本公开所使用的短语“配置成……的逻辑”旨在调用至少部分地用硬件实现的方面,而并非旨在映射到独立于硬件的仅软件实现。同样,将领会,各个框中的所配置的逻辑或“配置成…的逻辑”并不限于具体的逻辑门或元件,而是一般地指代执行本文描述的功能性的能力(经由硬件或者经由硬件和软件的组合)。因此,尽管共享措词“逻辑”,但如各个框中所解说的所配置的逻辑或“配置成......的逻辑”不必被实现为逻辑门或逻辑元件。从以下更详细地描述的各方面的概览中,各个框中的逻辑之间的其它交互或协作将对本领域普通技术人员而言变得清楚。
群集是将数据点编群成群集。群集的实践应用包括无监督分类和分类法生成、最近邻居搜索、科学发现、向量量化、文本分析、以及导航。
一种常见的群集算法是k均值群集算法。该算法假定要被群集的数据“对象”作为d维欧氏空间中的点(或向量)而可用。k均值算法寻求对数据的最小方差编群,其使与某些群集质心的欧氏距离的平方和最小化。k均值算法的普及性可归因于其相对易于解读、实现简单化、可缩放性、收敛速度、对稀疏数据的适用性、以及易于核外(在单个处理器的本地存储器外)实现。
图4解说了实现k均值算法的代表性计算机程序指令的示例性列表,如美国专利No.6,269,376中所解说的。k均值算法实质上包括四个步骤:
(a)初始化:选择k个起始点的集合(如图4的第5行中所示)。可随机地、或根据某种启发法来执行该选择。
(b)距离计算:针对每个数据点,计算它到每个群集质心的欧氏距离并找出最近的群集质心(如图4的第14-21行中所示)。将每个此类数据点指派给最近的群集质心。
(c)质心重算:针对每个群集质心,将该群集质心重新计算为被指派给它的数据点的平均(如图2的第22-26行中所示)。
(d)收敛条件:重复步骤(b)和(c)直至满足某个收敛条件(如图4的第28行中所示)。
k均值算法可被认为是梯度下降算法,其以各初始起始群集质心开始并迭代地更新这些质心以减少数据点的最小方差群集。这种k均值算法将总是收敛至局部最小值,但该特定局部最小值可能不是全局最小值,并且该特定局部最小值取决于初始起始群集点。在该算法收敛之前,步骤(b)和(c)必须被执行多次。k均值迭代的次数是可取决于初始起始群集质心而变化的正整数,即使针对相同数据集亦然。
群集的问题在于其可能要耗费大量存储器和处理功率。例如,接收到的数据点通常被存储于存储器中并且被群集成单个群集域。为了加快对所存储数据的处理,可采用并行处理技术来对数据进行群集。
在将数据点指派给最近的群集质心的过程期间执行的迭代主导了总计算时间。由于图4的第14-21行中所示的距离计算可针对每个数据点异步地且并行地执行,并且由于这些行中执行的计算主导了步骤(b)和(c)的计算复杂度,因此当数据点的数目很大时,可实现降低计算复杂度的有效并行化策略。
通过在具有P个处理器的分布式存储器机器上实现k均值算法的一种版本,总计算时间可减少到约1/P。该策略是将N个数据点划分成P个块(每块大小约为N/P)并且针对这些块中的每一块在不同的处理器上并行地计算第14-21行。通过在P个处理器间划分该N个数据点,大数据集可以由该P个处理器的组合存储器来处置。例如,2千兆字节的数据集对于大多数的单个处理器而言将是难以处置的,但当在16个各有256兆字节主存储器的处理器间划分时,该数据集可被容易地处理。
这种方法还需要该P个处理器之间的共享存储器。在共享存储器内存储并更新质心,由此实现对该P个处理器的努力的协调。
然而,如果群集是由移动设备执行的,并且数据是由传感器(诸如加速计或话筒)生成的,那么可能有太多数据要存储于存储器中并随后处理。取而代之,数据必须“在运行中”处理。
所提议的解决方案将接收到的数据点按循环方式指派给在UE(诸如UE200)的处理器(诸如处理器210)上运行的多个线程(和/或多个处理器——如果移动设备是如此配备的)。并非为每个线程置备全局质心集来围绕这些质心对其传入数据点集进行群集,而是每个线程被置备全局质心集的子集。例如,给定5个线程和100个群集质心,并非向每个线程置备这100个质心,而是可向这5个线程中的每个线程置备20个质心。
一旦每个线程已对其获指派的数据点进行了群集,这些群集就被组合成单个/全局群集域。例如,如果存在5个线程和100个质心,则这些质心可被划分成5个群,每个群中有20个质心。包括20个质心的每个群将由将对数据执行群集的不同线程独立地采用。当群集完成时,这5个群将被级联在一起以创建包括100个质心的单个群。
如果数据是随机且平稳的,即,被分发给每个线程的数据点是彼此相似的,那么由每个线程生成的群集有可能将与由其他线程生成的群集交叠。在此情形中,可利用后处理步骤来合并冗余的群集。
并不是所有群集技术都可以支持这种将数据划分且独立地对每个分段进行群集并随后将结果级联的办法。最值得注意的是,k均值群集可能导致较差的数据表示,因为用于移动质心(即,调整质心的值)的k均值准则仅取决于抵达的新数据。如此,k均值算法具有跟随数据漂移的趋势。一种用于非平稳数据的在线凝聚群集方法(称为faddc)可能更适合于这种办法,因为用于移动质心的准则被解释为使系统的“忘性”最小化。这种群集方法在I.D.Guedalia等人所著的“An on-line agglomerative clustering method fornonstationary data(用于非平稳数据的在线凝聚群集方法)”中描述。
可采用混合式办法,藉此对于在每个群独立工作时的第一步骤利用k均值算法,而在各群被级联时的后处理步骤中利用faddc算法。然而,这将需要在k均值群集期间存储通常被省略的附加信息,诸如每个质心所表示的数据点的数目。
一旦群集被组合,UE就可对组合群集执行特征提取或数据挖掘。
如果存在太多数据点或者数据点是冗余的,则UE可丢弃数据点或减小采样率(例如,在数据点正由一个或多个传感器生成的场合)。此外,如果若干UE通过高速数据链路(无论是有线还是无线)被耦合,则并行处理可分布在该多个UE上。生成传感器数据的UE可将传感器数据指派给其他设备并接收群集结果。
作为以循环或随机方式向多个线程指派数据点的替代,可使用阶层式分发方法来指派数据点。在此情形中,单个非常小的群集质心集(例如,四个群集质心)被置备,并且每个质心对应于一线程。随着每个新数据点抵达,其按照该质心集进行群集,并随后基于“获胜”质心(即,该数据点围绕其群集的质心),该数据点被指派给相应的线程,该线程随后执行详细群集。
在阶层式分发的更复杂示例中,在小质心集中存在的群集质心可能比存在的线程更多。在此情形中,分发可附加地由与较小/较高层级的质心集中的质心相关联的计数来偏置。
图5解说了可由UE(诸如UE 200)执行的用于对数据点流进行群集的示例性流程。在510,UE接收数据点流。UE可从一个或多个传感器(诸如加速计、陀螺仪、磁力计、话筒、和/或诸如此类)接收数据点流。如果数据点流包含太多要高效地处理的数据点,则即使在有多个线程和/或处理器的情况下,UE也可丢弃数据点以减少它将不得不处理的数据点的数目。例如,UE可每隔一个数据点丢弃一个数据点、或者它可仅保留每第十个数据点。替换地,UE可降低生成数据点流的一个或多个传感器的采样率以减少它将不得不处理的数据点的数目。
在520,UE确定多个群集质心。替换地,该多个线程中的一者或多者可在运行时期间确定一个或多个质心。这些质心可以是预定数目的或者它们可基于需要被指派。例如,如果数据点到现有质心的欧氏距离被确定为太大,则线程可决定要将该数据点用作新质心。此质心可随后被添加到多个现有质心并且可随后被用于将来对传入数据点的匹配。
在530,UE在多个线程和/或处理器间划分该多个群集质心。UE可向每个线程和/或处理器指派基本上相等数目的质心。这些线程和/或处理器可驻留在该UE或与该UE处于通信中的一个或多个其他UE上。
在540,UE向该多个线程和/或处理器中的每个线程和/或处理器指派数据点流的一部分。UE可按循环方式、随机地、按阶层式方式等向该多个线程和/或处理器指派数据点。如果UE按阶层式方式来指派数据点,则UE可置备较小的群集质心集,其中每个群集质心对应于不同的线程或处理器。UE可将传入数据点指派给该质心集中的一个质心,并随后将该数据点指派给与该数据点围绕其被群集的质心相对应的线程或处理器。该较小质心集中的质心数目可对应于线程和/或处理器数目。替换地,该较小质心集中的群集质心数目可以大于线程和/或处理器数目,在该情形中数据点可基于与该质心集中的每个质心相关联的数据点计数被指派给线程或处理器。
在指派数据点流时,UE还可以考虑该多个线程和/或处理器中的每个线程和/或处理器的速度。
该多个线程和/或处理器中的每个线程和/或处理器生成围绕向该线程或处理器置备的该多个群集质心的子集的一个或多个群集。线程或处理器可以一旦其开始接收它的数据点流部分就开始生成一个或多个群集。替换地,在开始生成一个或多个群集之前,线程或处理器可缓冲其数据点部分中的一个或多个数据点。
在550,UE从该多个线程和/或处理器中的每个线程和/或处理器接收一个或多个群集。在560,UE组合接收到的群集以生成全局群集域。在570,UE可对该全局群集域执行后处理,诸如数据挖掘。
图6解说了可由UE(诸如UE 200)执行的用于对数据点流进行群集的示例性流程。在610,UE接收数据点流。UE可从一个或多个传感器(诸如加速计、陀螺仪、磁力计、话筒、和/或诸如此类)接收数据点流。如果数据点流包含太多要高效地处理的数据点,则即使在有多个线程和/或处理器的情况下,UE也可丢弃数据点以减少它将不得不处理的数据点的数目,如以上所描述的。
在620,UE向多个线程和/或处理器中的每个线程和/或处理器指派数据点流的一部分。UE可按循环方式、随机地、按阶层式方式等向该多个线程和/或处理器指派数据点。在指派数据点流时,UE还可以考虑该多个线程和/或处理器中的每个线程和/或处理器的速度。
在630,每个线程和/或处理器确定至少一个群集质心。这些质心可由UE指派(如图5的530中那样),或者每个线程和/或处理器可通过对传入数据点进行群集来确定质心。例如,如果数据点到现有质心的欧氏距离被确定为太大,则线程可决定要将该数据点用作新质心。此质心可随后被添加到多个现有质心并且可随后被用于将来对传入数据点的匹配。
在640,每个线程和/或处理器围绕它在630中确定的群集质心对来自它获指派的数据点流部分的传入数据点进行群集。线程或处理器可以一旦其开始接收它的数据点流部分就开始生成一个或多个群集。替换地,在开始生成一个或多个群集之前,线程或处理器可缓冲其数据点部分中的一个或多个数据点。
在650,UE从该多个线程和/或处理器中的每个线程和/或处理器接收一个或多个群集。在660,UE组合接收到的群集以生成全局群集域。在670,UE可对该全局群集域执行后处理,诸如数据挖掘。
本领域技术人员将领会,信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
此外,本领域技术人员将领会,结合本文中所公开的方面描述的各种解说性逻辑块、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本发明的范围。
结合本文中公开的方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。
结合本文公开的方面描述的方法、序列和/或算法可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、可移动盘、CD-ROM或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。替换地,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端(例如,UE)中。替换地,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性方面,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用于携带或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合应当也被包括在计算机可读介质的范围内。
尽管前面的公开示出了本公开的解说性方面,但是应当注意,在其中可作出各种变更和修改而不会脱离如所附权利要求定义的本发明的范围。根据本文中所描述的本公开的方面的方法权利要求中的功能、步骤和/或动作不一定要以任何特定次序执行。此外,尽管本公开的要素可能是以单数来描述或主张权利的,但是复数也是已料想了的,除非显式地声明了限定于单数。
Claims (66)
1.一种用于对数据点流进行群集的方法,包括:
接收所述数据点流;
确定多个群集质心;
将所述多个群集质心划分成多个群集质心群,其中每个群集质心群包含所述多个群集质心的子集并由多个线程和/或处理器中不同的线程和/或处理器独立地采用;
向所述多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分;以及
组合由所述多个线程和/或处理器生成的多个群集以生成全局群集域。
2.如权利要求1所述的方法,其特征在于,所述接收包括:
从一个或多个传感器接收所述数据点流。
3.如权利要求2所述的方法,其特征在于,所述一个或多个传感器是加速计、陀螺仪、磁力计、或话筒中的一者或多者。
4.如权利要求1所述的方法,其特征在于,所述数据点流按循环方式被指派给所述多个线程和/或处理器。
5.如权利要求1所述的方法,其特征在于,所述数据点流按阶层式方式被指派给所述多个线程和/或处理器。
6.如权利要求5所述的方法,其特征在于,指派所述数据点流的一部分包括:
将接收到的数据点指派给所述多个群集质心中的一个群集质心;以及
将所述接收到的数据点指派给与所述多个群集质心中的这一个群集质心相对应的线程或处理器。
7.如权利要求6所述的方法,其特征在于,所述多个群集质心中的群集质心数目对应于线程和/或处理器数目。
8.如权利要求6所述的方法,其特征在于,所述多个群集质心中的群集质心数目大于线程和/或处理器数目,并且其中所述接收到的数据点基于与所述多个群集质心中的每个群集质心相关联的数据点计数被指派给线程或处理器。
9.如权利要求1所述的方法,其特征在于,所述数据点流基于所述多个线程和/或处理器中的每个线程和/或处理器的速度被指派给所述多个线程和/或处理器。
10.如权利要求1所述的方法,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器生成围绕向所述多个线程和/或处理器中的每个线程和/或处理器置备的一个或多个质心的一个或多个群集。
11.如权利要求10所述的方法,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在其开始接收所述数据点流的所述部分时开始生成所述一个或多个群集。
12.如权利要求10所述的方法,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在开始生成所述一个或多个群集之前缓冲所述部分的数据点中的一个或多个数据点。
13.如权利要求1所述的方法,其特征在于,还包括:
丢弃所述数据点流中的数据点以减少所述数据点流中的数据点数目。
14.如权利要求1所述的方法,其特征在于,还包括:
降低生成所述数据点流的一个或多个传感器的采样率以减少所述数据点流中的数据点数目。
15.如权利要求1所述的方法,其特征在于,还包括:
对所述全局群集域执行后处理。
16.如权利要求1所述的方法,其特征在于,所述多个处理器和/或线程驻留在一用户装备上。
17.如权利要求1所述的方法,其特征在于,所述多个处理器和/或线程驻留在多个用户装备上。
18.一种用于对数据点流进行群集的方法,包括:
接收所述数据点流;
向多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分,其中所述多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕所述一个或多个群集质心的一个或多个群集,其中每个线程和/或处理器的所述一个或多个群集质心是所述多个线程和/或处理器的全局质心集的子集;以及
组合来自所述多个线程和/或处理器中的每个线程和/或处理器的所述一个或多个群集以生成全局群集域。
19.如权利要求18所述的方法,其特征在于,所述接收包括:
从一个或多个传感器接收所述数据点流。
20.如权利要求19所述的方法,其特征在于,所述一个或多个传感器是加速计、陀螺仪、磁力计、或话筒中的一者或多者。
21.如权利要求18所述的方法,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在其开始接收所述数据点流的所述部分时开始生成所述一个或多个群集。
22.如权利要求18所述的方法,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在开始生成所述一个或多个群集之前缓冲所述部分的数据点中的一个或多个数据点。
23.如权利要求18所述的方法,其特征在于,进一步包括:
丢弃所述数据点流中的数据点以减少所述数据点流中的数据点数目。
24.如权利要求18所述的方法,其特征在于,进一步包括:
降低生成所述数据点流的一个或多个传感器的采样率以减少所述数据点流中的数据点数目。
25.如权利要求18所述的方法,其特征在于,进一步包括:
由用户装备确定多个群集质心;以及
将所述多个群集质心划分成多个群集质心群,其中每个群集质心群包含所述多个群集质心的子集并由所述多个线程和/或处理器中不同的线程和/或处理器独立地采用。
26.如权利要求25所述的方法,其特征在于,所述多个群集质心是对由所述多个线程和/或处理器确定的群集质心的补充。
27.如权利要求18所述的方法,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器基于所述数据点流中其获指派的部分来确定所述一个或多个群集质心。
28.如权利要求18所述的方法,其特征在于,还包括:
从所述多个线程和/或处理器中的每个线程和/或处理器接收所述数据点流的已群集部分。
29.如权利要求18所述的方法,其特征在于,还包括:
对所述全局群集域执行后处理。
30.如权利要求18所述的方法,其特征在于,所述多个线程和/或处理器驻留在一移动设备上。
31.如权利要求18所述的方法,其特征在于,所述多个线程和/或处理器驻留在多个移动设备上。
32.一种用于对数据点流进行群集的装置,包括:
配置成接收所述数据点流的逻辑;
配置成确定多个群集质心的逻辑;
配置成将所述多个群集质心划分成多个群集质心群的逻辑,其中每个群集质心群包含所述多个群集质心的子集并由多个线程和/或处理器中不同的线程和/或处理器独立地采用;
配置成向所述多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分的逻辑;以及
配置成组合由所述多个线程和/或处理器生成的多个群集以生成全局群集域的逻辑。
33.如权利要求32所述的装置,其特征在于,所述配置成接收的逻辑包括:
配置成从一个或多个传感器接收所述数据点流的逻辑。
34.如权利要求33所述的装置,其特征在于,所述一个或多个传感器是加速计、陀螺仪、磁力计、或话筒中的一者或多者。
35.如权利要求32所述的装置,其特征在于,所述数据点流按循环方式被指派给所述多个线程和/或处理器。
36.如权利要求32所述的装置,其特征在于,所述数据点流按阶层式方式被指派给所述多个线程和/或处理器。
37.如权利要求36所述的装置,其特征在于,所述配置成指派所述数据点流的一部分的逻辑包括:
配置成将接收到的数据点指派给所述多个群集质心中的一个群集质心的逻辑;以及
配置成将所述接收到的数据点指派给与所述多个群集质心中的这一个群集质心相对应的线程或处理器的逻辑。
38.如权利要求37所述的装置,其特征在于,所述多个群集质心中的群集质心数目对应于线程和/或处理器数目。
39.如权利要求37所述的装置,其特征在于,所述多个群集质心中的群集质心数目大于线程和/或处理器数目,并且其中所述接收到的数据点基于与所述群集质心集中的每个群集质心相关联的数据点计数被指派给线程或处理器。
40.如权利要求32所述的装置,其特征在于,所述数据点流基于所述多个线程和/或处理器中的每个线程和/或处理器的速度被指派给所述多个线程和/或处理器。
41.如权利要求32所述的装置,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器生成围绕向所述多个线程和/或处理器中的每个线程和/或处理器置备的一个或多个质心的一个或多个群集。
42.如权利要求41所述的装置,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在其开始接收所述数据点流的所述部分时开始生成所述一个或多个群集。
43.如权利要求41所述的装置,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在开始生成所述一个或多个群集之前缓冲所述数据点流的所述部分中的一个或多个数据点。
44.如权利要求32所述的装置,其特征在于,还包括:
配置成丢弃所述数据点流中的数据点以减少所述数据点流中的数据点数目的逻辑。
45.如权利要求32所述的装置,其特征在于,还包括:
配置成降低生成所述数据点流的一个或多个传感器的采样率以减少所述数据点流中的数据点数目的逻辑。
46.如权利要求32所述的装置,其特征在于,还包括:
配置成对所述全局群集域执行后处理的逻辑。
47.如权利要求32所述的装置,其特征在于,所述多个线程和/或处理器驻留在一用户装备上。
48.如权利要求32所述的装置,其特征在于,所述多个线程和/或处理器驻留在多个用户装备上。
49.一种用于对数据点流进行群集的装置,包括:
配置成接收所述数据点流的逻辑;
配置成向多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分的逻辑,其中所述多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕所述一个或多个群集质心的一个或多个群集,其中每个线程和/或处理器的所述一个或多个群集质心是所述多个线程和/或处理器的全局质心集的子集;以及
配置成组合来自所述多个线程和/或处理器中的每个线程和/或处理器的所述一个或多个群集以生成全局群集域的逻辑。
50.如权利要求49所述的装置,其特征在于,所述配置成接收的逻辑包括:
配置成从一个或多个传感器接收所述数据点流的逻辑。
51.如权利要求50所述的装置,其特征在于,所述一个或多个传感器是加速计、陀螺仪、磁力计、或话筒中的一者或多者。
52.如权利要求49所述的装置,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在其开始接收所述数据点流的所述部分时开始生成所述一个或多个群集。
53.如权利要求49所述的装置,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器在开始生成所述一个或多个群集之前缓冲所述数据点流的所述部分中的一个或多个数据点。
54.如权利要求49所述的装置,其特征在于,还包括:
配置成丢弃所述数据点流中的数据点以减少所述数据点流中的数据点数目的逻辑。
55.如权利要求49所述的装置,其特征在于,还包括:
配置成降低生成所述数据点流的一个或多个传感器的采样率以减少所述数据点流中的数据点数目的逻辑。
56.如权利要求49所述的装置,其特征在于,还包括:
配置成确定多个群集质心的逻辑;以及
配置成将所述多个群集质心划分成多个群集质心群的逻辑,其中每个群集质心群包含所述多个群集质心的子集并由所述多个线程和/或处理器中不同的线程和/或处理器独立地采用。
57.如权利要求56所述的装置,其特征在于,所述多个群集质心是对由所述多个线程和/或处理器确定的群集质心的补充。
58.如权利要求49所述的装置,其特征在于,所述多个线程和/或处理器中的每个线程和/或处理器基于所述数据点流中其获指派的部分来确定所述一个或多个群集质心。
59.如权利要求49所述的装置,其特征在于,还包括:
配置成从所述多个线程和/或处理器中的每个线程和/或处理器接收所述数据点流的已群集部分的逻辑。
60.如权利要求49所述的装置,其特征在于,还包括:
配置成对所述全局群集域执行后处理的逻辑。
61.如权利要求49所述的装置,其特征在于,所述多个线程和/或处理器驻留在一移动设备上。
62.如权利要求49所述的装置,其特征在于,所述多个线程和/或处理器驻留在多个移动设备上。
63.一种用于对数据点流进行群集的装备,包括:
用于接收所述数据点流的装置;
用于确定多个群集质心的装置;
用于将所述多个群集质心划分成多个群集质心群的装置,其中每个群集质心群包含所述多个群集质心的子集并由多个线程和/或处理器中不同的线程和/ 或处理器独立地采用;
用于向所述多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分的装置;以及
用于组合由所述多个线程和/或处理器生成的多个群集以生成全局群集域的装置。
64.一种用于对数据点流进行群集的装备,包括:
用于接收所述数据点流的装置;
用于向多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分的装置,其中所述多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕所述一个或多个群集质心的一个或多个群集,其中每个线程和/或处理器的所述一个或多个群集质心是所述多个线程和/或处理器的全局质心集的子集;以及
用于组合来自所述多个线程和/或处理器中的每个线程和/或处理器的所述一个或多个群集以生成全局群集域的装置。
65.一种用于对数据点流进行群集的非瞬态计算机可读介质,包括:
用于接收所述数据点流的至少一条指令;
用于确定多个群集质心的至少一条指令;
用于将所述多个群集质心划分成多个群集质心群的至少一条指令,其中每个群集质心群包含所述多个群集质心的子集并由多个线程和/或处理器中不同的线程和/或处理器独立地采用;
用于向所述多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分的至少一条指令;以及
用于组合由所述多个线程和/或处理器生成的多个群集以生成全局群集域的至少一条指令。
66.一种用于对数据点流进行群集的非瞬态计算机可读介质,包括:
用于接收所述数据点流的至少一条指令;
用于向多个线程和/或处理器中的每个线程和/或处理器指派所述数据点流的一部分的至少一条指令,其中所述多个线程和/或处理器中的每个线程和/或处理器确定一个或多个群集质心并生成围绕所述一个或多个群集质心的一个或多个群集,其中每个线程和/或处理器的所述一个或多个群集质心是所述多个线程和/或处理器的全局质心集的子集;以及
用于组合来自所述多个线程和/或处理器中的每个线程和/或处理器的所述一个或多个群集以生成全局群集域的至少一条指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/906,169 US9411632B2 (en) | 2013-05-30 | 2013-05-30 | Parallel method for agglomerative clustering of non-stationary data |
US13/906,169 | 2013-05-30 | ||
PCT/US2014/040018 WO2014194086A1 (en) | 2013-05-30 | 2014-05-29 | A parallel method for agglomerative clustering of non-stationary data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105247487A CN105247487A (zh) | 2016-01-13 |
CN105247487B true CN105247487B (zh) | 2018-12-28 |
Family
ID=51168340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480030706.0A Active CN105247487B (zh) | 2013-05-30 | 2014-05-29 | 用于非平稳数据的凝聚群集的并行方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9411632B2 (zh) |
EP (1) | EP3005115A1 (zh) |
JP (1) | JP2016530591A (zh) |
KR (1) | KR101793014B1 (zh) |
CN (1) | CN105247487B (zh) |
WO (1) | WO2014194086A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9780997B2 (en) | 2015-01-30 | 2017-10-03 | Alcatel Lucent | Method and system for controlling an operation of an application by classifying an application type using data bearer characteristics |
US20180236352A1 (en) * | 2015-12-04 | 2018-08-23 | Uti Limited Partnership | Wearable inertial electronic device |
US10558466B2 (en) * | 2016-06-23 | 2020-02-11 | Advanced Micro Devices, Inc. | System and method for parallelization of data processing in a processor |
US10416958B2 (en) * | 2016-08-01 | 2019-09-17 | Bank Of America Corporation | Hierarchical clustering |
US9974043B1 (en) | 2017-05-31 | 2018-05-15 | Aruba Networks, Inc. | Assigning a subset of access points in a wireless network to a high priority |
KR102031411B1 (ko) * | 2017-08-01 | 2019-10-11 | 순천향대학교 산학협력단 | K 평균 클러스터링 알고리즘을 구현하기 위한 네트워크 온 칩 기반의 다중 프로세서 아키텍처 |
US11461360B2 (en) * | 2018-03-30 | 2022-10-04 | AVAST Software s.r.o. | Efficiently initializing distributed clustering on large data sets |
US11238308B2 (en) * | 2018-06-26 | 2022-02-01 | Intel Corporation | Entropic clustering of objects |
EP3867803A1 (en) | 2018-10-15 | 2021-08-25 | Ventana Medical Systems, Inc. | Systems and methods for cell classification |
US11853877B2 (en) | 2019-04-02 | 2023-12-26 | International Business Machines Corporation | Training transfer-focused models for deep learning |
CN110717517A (zh) * | 2019-09-06 | 2020-01-21 | 中国平安财产保险股份有限公司 | 智能化多线程聚类方法、装置及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269376B1 (en) * | 1998-10-26 | 2001-07-31 | International Business Machines Corporation | Method and system for clustering data in parallel in a distributed-memory multiprocessor system |
CN102855259A (zh) * | 2011-06-30 | 2013-01-02 | Sap股份公司 | 大规模数据聚类分析的并行化 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2012938A1 (en) * | 1989-04-19 | 1990-10-19 | Patrick F. Castelaz | Clustering and association processor |
US5787420A (en) * | 1995-12-14 | 1998-07-28 | Xerox Corporation | Method of ordering document clusters without requiring knowledge of user interests |
US6466946B1 (en) * | 2000-06-07 | 2002-10-15 | Hewlett-Packard Company | Computer implemented scalable, incremental and parallel clustering based on divide and conquer |
US7631107B2 (en) | 2002-06-11 | 2009-12-08 | Pandya Ashish A | Runtime adaptable protocol processor |
US7353218B2 (en) | 2003-08-14 | 2008-04-01 | International Business Machines Corporation | Methods and apparatus for clustering evolving data streams through online and offline components |
US7289985B2 (en) * | 2004-04-15 | 2007-10-30 | Microsoft Corporation | Enhanced document retrieval |
US20060031628A1 (en) | 2004-06-03 | 2006-02-09 | Suman Sharma | Buffer management in a network device without SRAM |
US8325748B2 (en) * | 2005-09-16 | 2012-12-04 | Oracle International Corporation | Fast vector quantization with topology learning |
US7962607B1 (en) * | 2006-09-08 | 2011-06-14 | Network General Technology | Generating an operational definition of baseline for monitoring network traffic data |
US8024193B2 (en) * | 2006-10-10 | 2011-09-20 | Apple Inc. | Methods and apparatus related to pruning for concatenative text-to-speech synthesis |
US7730036B2 (en) * | 2007-05-18 | 2010-06-01 | Eastman Kodak Company | Event-based digital content record organization |
US7996390B2 (en) * | 2008-02-15 | 2011-08-09 | The University Of Utah Research Foundation | Method and system for clustering identified forms |
US7979426B2 (en) * | 2008-06-05 | 2011-07-12 | Samsung Electronics Co., Ltd. | Clustering-based interest computation |
US8300951B1 (en) * | 2008-09-19 | 2012-10-30 | Adobe Systems Incorporated | Recognizing symmetries along paths in vector art |
US8170966B1 (en) * | 2008-11-04 | 2012-05-01 | Bitdefender IPR Management Ltd. | Dynamic streaming message clustering for rapid spam-wave detection |
US8761465B2 (en) * | 2009-03-18 | 2014-06-24 | Microsoft Corporation | Centroid processing |
US20100293206A1 (en) | 2009-05-12 | 2010-11-18 | Tatu Ylonen Oy Ltd | Clustering related objects during garbage collection |
US20110246123A1 (en) * | 2010-03-30 | 2011-10-06 | Welch Allyn, Inc. | Personal status monitoring |
JP5535742B2 (ja) | 2010-04-19 | 2014-07-02 | 三菱重工業株式会社 | 熱媒体加熱装置およびそれを用いた車両用空調装置 |
US8751588B2 (en) | 2010-12-15 | 2014-06-10 | Apple Inc. | Message thread clustering |
WO2012104943A1 (ja) * | 2011-02-02 | 2012-08-09 | 日本電気株式会社 | 結合処理装置、データ管理装置及び文字列類似結合システム |
US8560647B2 (en) * | 2011-07-19 | 2013-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | Controller placement for split architecture networks |
US9432805B2 (en) * | 2011-09-28 | 2016-08-30 | Qualcomm Incorporated | Discovering and automatically sizing a place of relevance |
US9454528B2 (en) * | 2011-10-17 | 2016-09-27 | Xerox Corporation | Method and system for creating ordered reading lists from unstructured document sets |
KR102031392B1 (ko) * | 2011-11-15 | 2019-11-08 | 아브 이니티오 테크놀로지 엘엘시 | 후보 쿼리들에 기반한 데이터 클러스터링 |
US8880525B2 (en) * | 2012-04-02 | 2014-11-04 | Xerox Corporation | Full and semi-batch clustering |
US20130263151A1 (en) * | 2012-04-03 | 2013-10-03 | Microsoft Corporation | Consistent Hashing Table for Workload Distribution |
US9136918B2 (en) * | 2012-04-09 | 2015-09-15 | Telefonaktiebolaget L M Ericsson (Publ) | Dynamic clustering for coordinated transmission in wireless communication systems |
US8930422B2 (en) * | 2012-06-04 | 2015-01-06 | Northrop Grumman Systems Corporation | Pipelined incremental clustering algorithm |
US9208777B2 (en) * | 2013-01-25 | 2015-12-08 | Microsoft Technology Licensing, Llc | Feature space transformation for personalization using generalized i-vector clustering |
US9119055B2 (en) * | 2013-02-06 | 2015-08-25 | Facebook, Inc. | Grouping ambient-location updates |
US9667671B2 (en) * | 2013-05-13 | 2017-05-30 | Xerox Corporation | Method and system for facilitating communication between message consumers and message producers |
-
2013
- 2013-05-30 US US13/906,169 patent/US9411632B2/en active Active
-
2014
- 2014-05-29 WO PCT/US2014/040018 patent/WO2014194086A1/en active Application Filing
- 2014-05-29 EP EP14737357.5A patent/EP3005115A1/en not_active Withdrawn
- 2014-05-29 CN CN201480030706.0A patent/CN105247487B/zh active Active
- 2014-05-29 KR KR1020157034660A patent/KR101793014B1/ko active IP Right Grant
- 2014-05-29 JP JP2016516818A patent/JP2016530591A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269376B1 (en) * | 1998-10-26 | 2001-07-31 | International Business Machines Corporation | Method and system for clustering data in parallel in a distributed-memory multiprocessor system |
CN102855259A (zh) * | 2011-06-30 | 2013-01-02 | Sap股份公司 | 大规模数据聚类分析的并行化 |
Also Published As
Publication number | Publication date |
---|---|
US9411632B2 (en) | 2016-08-09 |
KR20160016842A (ko) | 2016-02-15 |
CN105247487A (zh) | 2016-01-13 |
EP3005115A1 (en) | 2016-04-13 |
KR101793014B1 (ko) | 2017-11-02 |
JP2016530591A (ja) | 2016-09-29 |
WO2014194086A1 (en) | 2014-12-04 |
US20140359626A1 (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105247487B (zh) | 用于非平稳数据的凝聚群集的并行方法 | |
US10692492B2 (en) | Techniques for client-side speech domain detection using gyroscopic data and a system using the same | |
US20220124543A1 (en) | Graph neural network and reinforcement learning techniques for connection management | |
Rajendran et al. | Electrosense: Open and big spectrum data | |
US10671925B2 (en) | Cloud-assisted perceptual computing analytics | |
US11349753B2 (en) | Converged routing for distributed computing systems | |
US10624022B2 (en) | Method for establishing wireless LAN communication connection and electronic device therefor | |
US9693276B1 (en) | System and method for intelligent network connection selection | |
TWI503025B (zh) | 使用行動感測器之雲端感測協力行動平台電源管理 | |
CN106464345B (zh) | 用于全双工无线通信的干扰管理技术 | |
CN106413089A (zh) | 一种定位的方法、装置及移动终端 | |
CN110493626A (zh) | 视频数据处理方法及装置 | |
US10455469B2 (en) | Radar channel switching for Wi-Fi virtual reality | |
WO2017024227A1 (en) | Mechanisms for multi-dimension data operations | |
Cheng et al. | Mobile big data based network intelligence | |
US11962929B2 (en) | Method, apparatus, and device for configuring video special effect, and storage medium | |
Klus et al. | Crowdsourcing solutions for data gathering from wearables | |
EP3804232A1 (en) | Data sample template (dst) management for enabling fog-based data processing | |
US10281485B2 (en) | Multi-path signal processing for microelectromechanical systems (MEMS) sensors | |
CN105246155B (zh) | 一种定位网络接入设备地理位置的方法及装置 | |
CN110348374A (zh) | 车辆检测方法、装置、电子设备及存储介质 | |
CN109873685A (zh) | 电子设备和用于控制电子设备以进行联合传输的方法 | |
CN116437293B (zh) | 地理围栏的建立方法、服务器及通信系统 | |
US11620251B2 (en) | Partitioned UFP for displayport repeater | |
US9736750B2 (en) | Radio communication system and communication control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |