計算回歸模型的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實(shí)施例涉及利用映射-簡化(Map-Reduce)框架中的掃描(sweep)操作 計算可能的回歸模型。
【背景技術(shù)】
[0002] 多元線性回歸模型通常用于分析一個目標(biāo)變量(Y)和預(yù)測因子變量列表(X)之間 的關(guān)系。提出如前向選擇、淘汰落后、逐步推進(jìn)等等的眾多的技術(shù)用以在k個預(yù)測因子的大 集中選擇能夠比其他預(yù)測因子更能影響目標(biāo)的一些預(yù)測因子。
[0003] 預(yù)測因子可以被描述為預(yù)測或影響預(yù)測回歸模型中的目標(biāo)的字段。目標(biāo)可被描述 為由回歸模型中的一個或多個預(yù)測因子(predictor)預(yù)測或影響的字段。
[0004] 尋找最佳回歸的方法之一是基于所選擇的標(biāo)準(zhǔn),例如調(diào)整后的R方等執(zhí)行所有的 2k回歸模型。這種技術(shù)也被稱為"窮舉搜索"。當(dāng)k較大時,由于計算時間隨著k呈指數(shù)級 增長,執(zhí)行所有可能的回歸可能并不現(xiàn)實(shí)。已經(jīng)作出提高性能的努力,這些努力大致沿兩條 路徑:(1)利用順序策略,從一個回歸模型移動到另一個回歸模型;(2)利用并行計算策略 來分發(fā)密集計算。
[0005] 映射-簡化框架已經(jīng)成為一種流行的模式,因?yàn)樗梢蕴幚砘ヂ?lián)網(wǎng)時代越來越普 遍的分布式數(shù)據(jù)源中的拍字節(jié)(petabytes)級的數(shù)據(jù)。映射-簡化框架使應(yīng)用程序與分布 式集群中成千上萬的節(jié)點(diǎn)一起工作。典型的map-reduce任務(wù)通常使用多個映射器在不同 的數(shù)據(jù)拆分/塊中進(jìn)行計算,并且使用一個或多個簡化器將映射器的結(jié)果合并在一起,以 使最終結(jié)果/統(tǒng)計數(shù)據(jù)是基于整個數(shù)據(jù)的。
【發(fā)明內(nèi)容】
[0006] 提供了一種用于計算任務(wù)結(jié)果的方法、計算機(jī)程序產(chǎn)品和系統(tǒng)。記錄的處理數(shù)據(jù) 集被創(chuàng)建,其中,每個記錄包含特定于一組實(shí)際子任務(wù)中的一個子任務(wù)的數(shù)據(jù)并包含由該 組實(shí)際子任務(wù)共享數(shù)據(jù)的參考,并且其中記錄的數(shù)目相當(dāng)于該組實(shí)際子任務(wù)中的實(shí)際子任 務(wù)的數(shù)目。利用一組映射器的每一個映射器,接收處理數(shù)據(jù)集的一個記錄并且利用該接收 的一個記錄執(zhí)行分配的子任務(wù)以產(chǎn)生輸出。利用單個簡化器,簡化從該組映射器的每一個 映射器的輸出以確定任務(wù)的結(jié)果。
【附圖說明】
[0007] 下面參考附圖,其中相似的參考標(biāo)記代表相應(yīng)的部件,其中:
[0008] 圖1示出了根據(jù)某些實(shí)施例的映射-簡化框架;
[0009] 圖2示出了根據(jù)某些實(shí)施例的表中的回歸模型序列;
[0010] 圖3示出了根據(jù)某些實(shí)施例的用于計算可能的回歸模型的整體流程;
[0011] 圖4示出了根據(jù)某些實(shí)施例的將全局序列劃分成本地序列的例子;
[0012] 圖5示出了根據(jù)某些實(shí)施例的映射-簡化框架實(shí)現(xiàn)的例子;
[0013] 圖6示出了用于利用映射-簡化框架在原始數(shù)據(jù)集執(zhí)行任務(wù)的操作的流程圖。圖 6由圖6A和圖6B組成。
[0014] 圖7描述了根據(jù)某些實(shí)施例的云計算節(jié)點(diǎn);
[0015] 圖8描述了根據(jù)某些實(shí)施例的云計算環(huán)境;
[0016] 圖9描述了根據(jù)某些實(shí)施例的抽象回歸模型層。
【具體實(shí)施方式】
[0017] 已經(jīng)呈現(xiàn)本發(fā)明各種實(shí)施例的描述用于說明的目的,但不旨在窮盡或限制于所公 開的實(shí)施例。對那些本領(lǐng)域的普通技術(shù)人員來說,不脫離所描述實(shí)施例范圍的許多修改和 變化將是顯而易見的。本文所用的術(shù)語被選擇最好地解釋實(shí)施例的原理、實(shí)際應(yīng)用以及市 場上找到的技術(shù)的改進(jìn),或使其他普通技術(shù)人員能夠理解在此公開的實(shí)施例。
[0018] 實(shí)施例利用映射-簡化框架通過利用掃描操作為k個預(yù)測因子計算2k的可能回 歸模型。實(shí)施例利用多個節(jié)點(diǎn)(映射器)并行計算本地回歸模型(例如,本地最佳回歸模 型),然后利用一個節(jié)點(diǎn)(簡化器)合并多個節(jié)點(diǎn)的結(jié)果以從本地回歸模型中選擇全局回歸 模型(例如,全局最佳回歸模型)。實(shí)施例以系統(tǒng)的方式將全局搜索序列分解成多個本地搜 索序列,并且可以在多個節(jié)點(diǎn)獨(dú)立地執(zhí)行本地搜索序列。本地搜索序列可以描述為全局搜 索序列的子序列。
[0019] 節(jié)點(diǎn)可以被描述為與集群中的一個中央處理單元(CPU)相關(guān)的執(zhí)行單元。集群可 以描述為具有多個節(jié)點(diǎn),并且這些節(jié)點(diǎn)可以位于相同或不同的計算機(jī)。在某些實(shí)施例中,節(jié) 點(diǎn)可以執(zhí)行一個映射或簡化任務(wù)。
[0020] 在某些實(shí)施例中,多個映射器和單個簡化器可以在具有多個CPU核心的單個計算 機(jī)/機(jī)器上執(zhí)行。在某些實(shí)施例中,多個映射器和單個簡化器可以在不同的計算機(jī)/機(jī)器 上執(zhí)行。
[0021] 實(shí)施例將全局搜索序列/空間分成M( = 2m)個本地搜索序列/空間,其中m〈k- 1, 在2ki個掃描樞軸(swe印pivot)的本地搜索序列上應(yīng)用掃描操作,得到2kl個回歸模型。 樞軸對應(yīng)于在其上應(yīng)用掃描操作的矩陣的特定對角元素。然后,實(shí)施例并行地在M個映射 器中找到本地回歸模型,并利用一個簡化器合并映射器的結(jié)果以找到全局回歸模型。圖1 示出了根據(jù)某些實(shí)施例的映射-簡化框架。在某些實(shí)施例中,計算體系結(jié)構(gòu)用于計算映 射-簡化框架100中所有可能的回歸模型。映射-簡化框架100接收作為輸入的全局搜索 空間1〇〇并輸出全局回歸模型160。映射-簡化框架100包括映射器120,130,…,140以 及簡化器150。全局搜索空間100被劃分為本地搜索空間。每個映射器120,130,…,140 接收本地搜索空間并向簡化器150輸出本地回歸模型。簡化器150利用來自每個映射器 120,130,…,140的本地回歸模型確定全局回歸模型,并作為全局回歸模型160輸出。
[0022] 實(shí)施例在回歸模型解決方案的開發(fā)中利用映射-簡化框架100。實(shí)施例還利用掃 描操作。
[0023] 拍描橾作
[0024] 這里僅出于增進(jìn)理解實(shí)施例的目的描述掃描操作的性質(zhì)。
[0025] 在回歸模型中,預(yù)測因子可以是連續(xù)字段或類別(categorical)字段。類別字段 可以描述為具有有限數(shù)目的名義或有序類別作為值。基于參數(shù)化技術(shù),具有J個類別的每 個類別預(yù)測因子可以隨J個虛擬變量(du_yvariable)擴(kuò)大,因此,回歸模型中具有對應(yīng) 于類別預(yù)測因子的J個系數(shù)。
[0026] 假設(shè)預(yù)測因子X矩陣中存在k個效應(yīng)(effect)。由于k個效應(yīng)既可以包括連續(xù) 預(yù)測因子,也可以包括類別預(yù)測因子(事實(shí)上,k個效應(yīng)中的一些可以是幾個預(yù)測因子的組 合,但為了保持簡單并且不失一般性,排除這些效應(yīng),因此k個效應(yīng)是k個預(yù)測因子),回歸 模型中系數(shù)的數(shù)目P可能大于k?;谡?guī)方程汐=XTK,存在回歸系數(shù)閉合形式的解 其中Y是nXl向量,n是記錄的數(shù)目,X是從k個預(yù)測因子推導(dǎo)出的nXp矩陣并且# 是系數(shù)估計的PX1向量。一種獲得&的技術(shù)是掃描操作。掃描操作的工作方式如下:針對 叉積(P+1)X(p+1)矩陣:
[0027]
[0028] 在第一個p樞軸或樞轉(zhuǎn)元素(pivotalelement)上進(jìn)行掃描,其結(jié)果為:
[0029]
[0030]其中,殘差平方和(SSE)為計算選擇回歸模型中使用的標(biāo)準(zhǔn)時通常需要的殘差平 方和。通常,在第一個P樞轉(zhuǎn)元素的子集上掃描C產(chǎn)生對應(yīng)于X'S的子集上Y的回歸的回 歸系數(shù)的估計。
[0031] 掃描操作有兩種屬性:(1)可逆(具有相同的樞轉(zhuǎn)元素的兩個連續(xù)掃描操作與空 操作相同);(2)可交換(先在第r個樞轉(zhuǎn)元素上,然后在第s個樞轉(zhuǎn)元素上進(jìn)行的掃描操 作與以相反順序進(jìn)行的掃描操作結(jié)果相同)。利用這些屬性,對特定行和列(為某一連續(xù)預(yù) 測因子)或C的特定一組J行和列(為對應(yīng)于某一類別預(yù)測因子的一組J虛擬變量)應(yīng)用 的掃描操作將該預(yù)測因子引入擬合回歸模型,或者,如果模型中已經(jīng)存在該預(yù)測因子,則將 其移除。也就是說,一個預(yù)測因子上進(jìn)行的每一掃描操作都產(chǎn)生一個回歸模型。在某些實(shí) 施例中,可以通過2k-l序列個掃描操作得到可能的2k-l個回歸,如下所示:
[0032] 當(dāng)k=l,2k_l= 1,通過在對應(yīng)于第一個預(yù)測因子的樞轉(zhuǎn)元素上進(jìn)行掃描執(zhí)行單 一回歸。樞軸序列S1= {1}。
[0033] 當(dāng)k= 2,通過在第一個預(yù)測因子上進(jìn)行掃描執(zhí)行第一回歸。現(xiàn)在,在第二個預(yù)測 因子上進(jìn)行掃描產(chǎn)生包括第一個和第二個預(yù)測因子的新的回歸。然后,再在第一個預(yù)測因 子上進(jìn)行掃描將刪除第一個預(yù)測因子并產(chǎn)生只包括第二個預(yù)測因子的回歸。通過在樞軸序 列S2= {121}上掃描C矩陣產(chǎn)生所有的2k-l= 3個回歸模型。
[0034] 當(dāng)k= 3,在序列S2中得到前三個回歸?,F(xiàn)在,在第三個預(yù)測因子上進(jìn)行掃描產(chǎn)生 一個新的回歸,該回歸將第三個預(yù)測因子添加至序列S2產(chǎn)生的回歸。由于序列52產(chǎn)生了不 包括第三個預(yù)測因子的三個不同的回歸,重復(fù)序列&將產(chǎn)生包括第三個預(yù)測因子的另外三 個回歸。然后通過在樞軸序列3 3= {S2,3,S2} = {1213121}上掃描C矩陣產(chǎn)生2k-l= 7個 回歸模型。
[0035] 假設(shè)k-l個預(yù)測因子上所有2k4個可能的回歸可以通過前k-l個預(yù)測因子上的序 列Sk_i得到?,F(xiàn)在,在第k個預(yù)測因子上進(jìn)行掃描產(chǎn)生一個新的回歸模型,該回歸模型將第k個預(yù)測因子添加至序列31;_1產(chǎn)生的回歸模型。然后,重復(fù)序列Sh產(chǎn)生包括第k個預(yù)測因 子的另外2k4個不同的回歸模型。因此,通過在樞軸序列Sk= {Sk+k^kJ上掃描C矩陣 產(chǎn)生2k-l個回歸模型。
[0036] 圖2示出了根據(jù)某些實(shí)施例的表200中的回歸模型序列。圖2中,Si標(biāo)識預(yù)測因 子樞轉(zhuǎn)的索引。圖2中,第三列中的每個括號表示回歸模型。括號中的數(shù)字標(biāo)識回歸模型 中包括的預(yù)測因子。
[0037] 表200中,具有4個預(yù)測因子的序列是這樣的:S4 = {121312141213121}(第二 列),并產(chǎn)生15個回歸模型(第三列)(如果將只截距(interc印t-only)回歸模型包括在 內(nèi)則總共有16個回歸模型),搜索序列的大小為15。
[0038] 一種技術(shù)是構(gòu)造序列Sk,的遞歸過程并且可以順序產(chǎn)生2k_l個回歸模型,其中Sk ={Sjrf,k,Sj^} = {Sw,,k-1,Sw,.k,Sw,,k-1,Sj=…,等。另一方面,很容易看到,序列Sk 可以分解為幾個子序列,然后每個子序列產(chǎn)生2k-l個回歸模型的子集。例如,將以下序列 分解為4個子序列或本地序列,
[0039] S4= {S3, 4,S3} = {S2, 3,S3, 4,S2, 3,S2} = {121,3,121,4,121,3,121}
[0040] 分別是{121},{3121},{34121},{4121},并且可以由這4個子序列并行地產(chǎn)生15 個回歸模型。
[0041] 回歸模型
[0042] 為了利用掃描操作產(chǎn)生回歸模型,實(shí)施例首先計算叉積矩陣C,該矩陣基于X和Y 并且是(P+1)X(p+1)矩陣。在映射-簡化框架中為大型分布式數(shù)據(jù)源完成該計算。然后, 2k個回歸模型的計算在C矩陣上重復(fù)應(yīng)用掃描操作,由于該計算并非基于數(shù)據(jù)源,因此并不 是典型的映射-簡化任務(wù)。因此,實(shí)施例提供了一種技術(shù),利用映射-簡化框架中并行計算 的潛在能力計算該2k個回歸模型。
[0043] 實(shí)施例(1)指定正確數(shù)目的映射器以充分有效地利用集群中的可用節(jié)點(diǎn),并且 (2)向每個映射器提供最小數(shù)量的輸入以正確地進(jìn)行2k個回歸模型的子集。
[0044] 假設(shè)L是分布式集群中可用中央處理單元(CPU)的數(shù)目并且是已知的,那么映射 器或?qū)嶋H子任務(wù)的數(shù)量M基于以下兩個規(guī)則指定:
[0045] (a)M<L:在某些實(shí)施例中為了獲得更好的效率。在替代實(shí)施例中,M>L。
[0046] (b)M= 2m(其中m〈k-l):每個本地搜索序列的大小是2kA那么M個映射器可以覆 蓋2k個回歸模型。
[0047] 典型的映射-簡化任務(wù)中,映射器的輸入是來自拆分/塊的數(shù)據(jù),因此數(shù)據(jù)拆分的