置將其放入緩存區(qū)。
[0062] 優(yōu)選的,根據(jù)第三方面的一種可能實(shí)現(xiàn)方式為:
[0063] 緩存區(qū)包括主緩存和備用緩存,所述主緩存被配置主要用于存儲(chǔ)從緩存輸入接收 的數(shù)據(jù);所述備用緩存主要是用于存儲(chǔ)所述緩存輸入或存儲(chǔ)主緩存接收的所述接收數(shù)據(jù), 并且以與在所述主緩存相同接收數(shù)據(jù)的順序?qū)⑺鼋邮諗?shù)據(jù)輸出到所述緩存輸出。
[0064] 優(yōu)選的,所述緩存區(qū)還包括緩存控制器,其當(dāng)所述主緩存為滿數(shù)據(jù)狀態(tài)時(shí),所述主 緩存從緩存輸入向所述備用緩存?zhèn)鬏敂?shù)據(jù),或者當(dāng)所述備用緩存是滿數(shù)據(jù)狀態(tài)時(shí),所述備 用緩存從緩存輸入向所述主緩存?zhèn)鬏敂?shù)據(jù),或者當(dāng)所述備用緩存數(shù)據(jù)狀態(tài)不滿時(shí),所述主 緩存從緩存輸入向所述備用緩存?zhèn)鬏敂?shù)據(jù)。
[0065] 優(yōu)選的,根據(jù)第三方面,第二種可能實(shí)現(xiàn)的方式為:
[0066] 為了提高所述系統(tǒng)的性能,首先采用最小二乘法對數(shù)據(jù)進(jìn)行不斷訓(xùn)練和預(yù)處理, 其次為系統(tǒng)配置了多個(gè)緩存區(qū)的,最后主緩存的數(shù)據(jù)存儲(chǔ)空間大于備用緩存的存儲(chǔ)空間。
【附圖說明】
[0067] 為了更清楚地說明本發(fā)明的實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或 現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,下面描述中的附圖僅僅是本發(fā)明的一些 實(shí)施例。
[0068]圖1為本發(fā)明的實(shí)施例提供的一種緩存區(qū)數(shù)據(jù)預(yù)處理方法的部分函數(shù)接口示意 圖;
[0069]圖2為本發(fā)明的實(shí)施例提供最小二乘法求模型參數(shù)的流程示意圖;
[0070] 圖3為本發(fā)明的實(shí)施例提供的一種緩存區(qū)數(shù)據(jù)預(yù)處理方法流程示意圖;
[0071]圖4為本發(fā)明的實(shí)施例提供的一種緩存區(qū)數(shù)據(jù)預(yù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0072] 為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具 體實(shí)施例。
[0073] 本發(fā)明的實(shí)施例提供一種緩存區(qū)數(shù)據(jù)預(yù)處理方法和系統(tǒng)。本發(fā)明可用于緩存區(qū)數(shù) 據(jù)預(yù)處理,首先針對某用戶在平臺(tái)上的行為記錄查詢內(nèi)容和工作時(shí)間等參數(shù),作為基礎(chǔ)數(shù) 據(jù)進(jìn)行記錄和預(yù)處理,根據(jù)所述預(yù)處理基礎(chǔ)數(shù)據(jù)建立最小二乘法模型來模擬用戶行為,預(yù) 測用戶查詢時(shí)間和查詢內(nèi)容等參數(shù)之間的數(shù)據(jù)關(guān)系,得到的數(shù)據(jù)作為從緩存輸入接收的數(shù) 據(jù)分配給緩存區(qū),按照先進(jìn)先出順序從所述緩存區(qū)中輸出。
[0074] 具體的,本發(fā)明的實(shí)施例提供一種緩存區(qū)數(shù)據(jù)預(yù)處理方法和系統(tǒng),根據(jù)某用戶在 平臺(tái)上的行為記錄查詢內(nèi)容和工作時(shí)間等參數(shù)參照圖1所示,包括以下內(nèi)容:
[0075] 記錄用戶在平臺(tái)上的行為記錄所述用戶的查詢內(nèi)容和工作時(shí)間,作為基礎(chǔ)數(shù)據(jù), 具體包括:
[0076] 基礎(chǔ)數(shù)據(jù)是指用戶查詢時(shí)間TimeUserQuery、用戶停留時(shí)間TimeUserStand和用 戶查詢內(nèi)容ContentUserQuery。構(gòu)造TimeUserQuery,TimeUserStand和ContentUserQuery 接口函數(shù)從初始服務(wù)器端獲取客戶端用戶的查詢時(shí)間,停留時(shí)間和查詢內(nèi)容;在所述 TimeUserQuery和TimeUserStand函數(shù)中預(yù)設(shè)計(jì)時(shí)器Timer,并米用cookie控件技術(shù),獲取 當(dāng)前行為中用戶的查詢時(shí)間和停留時(shí)間;將收集到的數(shù)據(jù)通過GET、POST異步的方式發(fā)送 到目標(biāo)服務(wù)器端;所述基礎(chǔ)數(shù)據(jù)通過接口以JS0N格式展示到所述目標(biāo)服務(wù)器端。
[0077] 所述用戶查詢內(nèi)容ContentUserQuery,具體包括:系統(tǒng)預(yù)設(shè)用戶可以操作的所有 查詢內(nèi)容有Loading、Unloading、Cargo、Carrier和Route(不同的行業(yè)和需求可預(yù)設(shè)不同 查詢內(nèi)容),ContentUserQuery接口 函數(shù)的參數(shù)為Loading、Unloading、Cargo、Carrier和 Route,根據(jù)用戶的不同操作行為,返回和展示的參數(shù)值不同,進(jìn)行了所述查詢內(nèi)容的參數(shù) 返回值設(shè)為1,沒有進(jìn)行所述查詢內(nèi)容的參數(shù)返回值設(shè)為〇。
[0078] 記錄所述基礎(chǔ)數(shù)據(jù)后,對所述基礎(chǔ)數(shù)據(jù)進(jìn)行預(yù)處理,具體包括:所述目標(biāo)服務(wù)器接 收到返回值和返回內(nèi)容后,系統(tǒng)使用JObject或JArray的Parse方法將JS0N字符串轉(zhuǎn)換 為JS0N對象,通過所述JS0N對象的方式提取所述基礎(chǔ)數(shù)據(jù),分析所述基礎(chǔ)數(shù)據(jù)查詢內(nèi)容和 查詢時(shí)間之間的關(guān)聯(lián)即構(gòu)造Loading、Unloading、Cargo、Carrier、Route和TimeUserQuery 以及TimeUserStand的關(guān)系圖。構(gòu)造Loading、Unloading、Cargo、Carrier、Route和 TimeUserQuery以及TimeUserStand的關(guān)系圖,一種可能實(shí)現(xiàn)方式為:
[0079] 所述關(guān)系圖中,TimeUserQuery和TimeUserStand各自作為因變量和Loading、 Unloading、Cargo、Carrier、Route作為自變量,觀察圖形發(fā)現(xiàn)具有一定的線性回歸趨勢,考 慮用最小二乘法建模和預(yù)測。
[0080] 本發(fā)明的實(shí)施例提供了最小二乘法的建模和預(yù)測流程,并求得模型參數(shù)的最優(yōu) 解,參照圖2所示,包括以下步驟:
[0081] 最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù),它通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函 數(shù)匹配,利用最小二乘法可以簡便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實(shí)際數(shù)據(jù) 之間誤差的平方和為最小,可以求得目標(biāo)函數(shù)的最優(yōu)值。
[0082] 步驟1 :所述目標(biāo)服務(wù)器接收到一個(gè)用戶的多次查詢操作,所述用戶查詢了所述 查詢內(nèi)容的一個(gè)或多個(gè),設(shè)查詢內(nèi)容為n個(gè),用戶查詢每個(gè)所述查詢內(nèi)容的時(shí)間分別記為:
[0083] T= (t1;t2,t3, . . .t;. . . ,tn) (1)
[0084] 其中h表示用戶查詢所述第i項(xiàng)查詢內(nèi)容時(shí)的所述查詢時(shí)間。
[0085] 步驟2 :-個(gè)用戶的m次查詢所述查詢內(nèi)容的所述查詢時(shí)間表示為:
[0086] y(t1;K,tn;x〇,x1;K,xn) =Xo+Xjt^A+xntn (2)
[0087] 其中y代表用戶查詢所述查詢內(nèi)容的工作時(shí)間,x。,Xl,K,xn表示模型參數(shù),該參數(shù) 使得實(shí)際值和觀測值差的平方和最小,通常取 X(]= 1,用線性方程組表示為:
[0094] 其中又1表示所述用戶第i次查詢所述查詢內(nèi)容所用的查詢時(shí)間,txj表示所述用戶 第i次查詢所述第j項(xiàng)查詢內(nèi)容所用的查詢時(shí)間。
[0095] 通常將記作數(shù)據(jù)矩陣A,所述模型參數(shù)xi記作參數(shù)矢量X,用戶所述查詢時(shí)間 yi記作Y,則線性方程組可表示為:
[0098] 步驟3 :擬合真實(shí)用戶行為的查詢時(shí)間和查詢內(nèi)容的所述模型參數(shù)矩陣X的值 為:
[0099] 由最小二乘法模型可定義用戶查詢所述一項(xiàng)查詢內(nèi)容的觀測估計(jì)值_和所述模 型參數(shù)的估計(jì)值筅:
[0104] 于是得到帶有所述模型參數(shù)的估計(jì)值方程組:
[0105]
( ^ <
[0106] 根據(jù)(8) (9)得到用戶查詢所述查詢內(nèi)容所用的時(shí)間的觀測值和估計(jì)值關(guān)系為:
[0107] (10)
[0108] 根據(jù)最小二乘的原理,所述模型參數(shù)的值為:
[0109]
(11)
[0110] 最后得到所述模型參數(shù)的估計(jì)值是:
[0112] 步驟4 :預(yù)測所述用戶的TimeUserQuery時(shí)間:
[0111] (12)
[0113]
(13 )
[0114] 其中h表示用戶查詢所述第i項(xiàng)查詢內(nèi)容時(shí)的所述查詢時(shí)間。xi表示第i項(xiàng)所 述查詢內(nèi)容對應(yīng)的所述模型參數(shù),其中xQ= 1。若用戶只進(jìn)行Cargo操作,預(yù)測Cargo查詢 時(shí)間為:
[0115] y3=x0+t3x3。
[0116] 其中為所述查詢內(nèi)容Loading、Unloading、Cargo、Carrier、Route在數(shù)據(jù)表中分 別設(shè)置一個(gè)Sessionld。在上述步驟4中直接通過所述Sessionld獲取相關(guān)參數(shù)值,并將得 到的數(shù)據(jù)作為緩存區(qū)輸入數(shù)據(jù)的原始數(shù)據(jù)。
[0117] 本發(fā)明的實(shí)施例提供了一種緩存區(qū)數(shù)據(jù)預(yù)處理方法,所述預(yù)處理的基礎(chǔ)數(shù)據(jù)作為 所述緩存輸入接收的數(shù)據(jù),在平臺(tái)中的運(yùn)行流程參照圖3所示,包括以下內(nèi)容:
[0118] 主緩存區(qū)被配置用于存儲(chǔ)從緩存輸入接收的數(shù)據(jù),緩存控制器用于選擇性的從所 述緩沖區(qū)將所述接收數(shù)據(jù)路由到備用緩存區(qū),使得所述從緩存輸入接收的數(shù)據(jù)可以按照 FIFO順序從所述備用緩存區(qū)將所述接收數(shù)據(jù)輸出到所述緩存輸出。
[0119] 所述備用緩存用于存儲(chǔ)所述緩存輸入或存儲(chǔ)主緩存接收的所述接收數(shù)據(jù),并且以 與在所述主緩存相同接收數(shù)據(jù)的順序?qū)⑺鼋邮諗?shù)據(jù)輸出到所述緩存輸出。
[0120] 所述緩存控制器的作用是當(dāng)所述主緩存為空數(shù)據(jù)狀態(tài)時(shí),所述主緩存從緩存輸入 向所述備用緩存?zhèn)鬏敂?shù)據(jù);
[0121] 或者;
[0122] 當(dāng)所述備用緩存是滿數(shù)據(jù)狀態(tài)時(shí),所述備用緩存從緩存輸入向所述主緩存?zhèn)鬏敂?shù) 據(jù);
[0123] 或者;
[0124] 當(dāng)所述主緩存是不空的數(shù)據(jù)狀態(tài)時(shí),所述接收數(shù)據(jù)從緩存輸入向所述主緩存?zhèn)鬏?數(shù)據(jù)。
[0125] 所述主緩存和備用緩存是可以存儲(chǔ)不同類型數(shù)據(jù)的獨(dú)立的FIFO隊(duì)列并且主緩存 的數(shù)據(jù)存儲(chǔ)空間大于備用緩存的數(shù)據(jù)存儲(chǔ)空間。
[0126] 更新緩存區(qū)的存儲(chǔ)狀態(tài),接收數(shù)據(jù)請求;
[0127] 提前設(shè)置緩存區(qū)數(shù)據(jù)完畢。
[0128] 本發(fā)明的實(shí)施例提供了一種緩存區(qū)數(shù)據(jù)預(yù)處理系統(tǒng),參照圖4所示,包括以下內(nèi) 容:
[0129] 傳送裝置:將數(shù)據(jù)發(fā)送給緩存區(qū);緩存區(qū):用于從傳送裝置接收數(shù)據(jù),并按照先入 先出的順序把接收的數(shù)據(jù)傳送給接收裝置;接收裝置:用于接收來自于緩存區(qū)中的數(shù)據(jù)。
[0130] 所述一種緩存區(qū)數(shù)據(jù)預(yù)處