基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)挖掘和大數(shù)據(jù)分析技術(shù)領(lǐng)域,尤其是一種基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法。
【背景技術(shù)】
[0002]隨著計算機(jī)技術(shù)的飛速發(fā)展,特別是Internet技術(shù)的不斷應(yīng)用,人們利用網(wǎng)絡(luò)信息技術(shù)產(chǎn)生和搜集數(shù)據(jù)的能力有了很大幅度的提高,數(shù)據(jù)呈現(xiàn)了飛快的增長趨勢。如何從海量的數(shù)據(jù)中獲取所需要的信息成為了一個迫切需要研究的問題。面對這樣的挑戰(zhàn),數(shù)據(jù)挖掘(Data Mining)技術(shù)應(yīng)運(yùn)而生,使用數(shù)據(jù)挖掘技術(shù)能夠從這些海量數(shù)據(jù)中獲取隱含的有用信息。然而,由于數(shù)據(jù)的爆炸性增長,如何使用數(shù)據(jù)挖掘技術(shù)快速有效地從海量的數(shù)據(jù)中獲取隱含有用的信息變得越來越重要。因此,數(shù)據(jù)挖掘技術(shù)成為大數(shù)據(jù)技術(shù)中核心技術(shù)之一Ο
[0003]在數(shù)據(jù)挖掘技術(shù)中,對分析對象進(jìn)行類別劃分,或?qū)κ聭B(tài)的發(fā)展進(jìn)行準(zhǔn)確預(yù)測,是最為典型的應(yīng)用場景,對應(yīng)的問題往往是分類問題或預(yù)測問題。而在分類和預(yù)測技術(shù)中,目前應(yīng)用效果最為顯著的當(dāng)屬支撐向量機(jī)(Support Vector Machine,SVM,又稱“支持向量機(jī)”)技術(shù)。支撐向量機(jī)技術(shù)與神經(jīng)網(wǎng)絡(luò)、貝葉斯等方法采用經(jīng)驗風(fēng)險最小化(均方誤差最小化)不同的是,它是一種基于結(jié)構(gòu)風(fēng)險最小化原則的分類及回歸挖掘方法。其基本思想是:為了解決分類問題,它試圖尋找一個分類超平面,并把找分類超平面的問題轉(zhuǎn)化成一個凸二次規(guī)劃問題;為了解決非線性可分問題,它引入非線性核函數(shù)的理念,將低維空間的非線性可分問題轉(zhuǎn)化成一個高維空間的線性可分問題,簡化求解的難度;為了避免異常數(shù)據(jù)的干擾,它引入結(jié)構(gòu)風(fēng)險最小化的理念,尋找分類邊界上的樣本點(diǎn)(支撐向量),僅用支撐向量來構(gòu)建模型。所有這些構(gòu)建思想決定了支撐向量機(jī)即便利用較少的數(shù)據(jù)樣本,也可以得到別的方法更好的預(yù)測模型,并且模型具有更好的泛化推廣能力。
[0004]由于支撐向量機(jī)是借助二次規(guī)劃來求解支持向量,而求解二次規(guī)劃問題將涉及到Μ階矩陣的計算(其中Μ為樣本的個數(shù)),計算復(fù)雜度是樣本數(shù)ο (M~2)的。因此,當(dāng)學(xué)習(xí)樣本(數(shù)據(jù)記錄數(shù))達(dá)到百萬級的海量數(shù)據(jù)時,該矩陣的存儲和計算將耗費(fèi)比其他同類方法大得多的機(jī)器內(nèi)存和運(yùn)算時間,因此,限制了支撐向量機(jī)在大數(shù)據(jù)分析場景的應(yīng)用。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種設(shè)計合理、能夠提高海量數(shù)據(jù)性能的基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法。
[0006]本發(fā)明解決現(xiàn)有的技術(shù)問題是采取以下技術(shù)方案實現(xiàn)的:
[0007]—種基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法,包括以下步驟:
[0008]步驟1、采用等距抽樣方法對建模數(shù)據(jù)進(jìn)行抽樣;
[0009]步驟2、對建模數(shù)據(jù)進(jìn)行壓縮:根據(jù)抽樣后的數(shù)據(jù),采用聚類思想建立聚類特征樹,將所有的樣本劃分成一系列不相似的樣本群體,從每個樣本群體中挑選一個或有限個樣本代表這個樣本群體,從而實現(xiàn)數(shù)據(jù)的壓縮;
[0010]步驟3、從聚類特征樹提取建模數(shù)據(jù):對聚類特征樹的葉子節(jié)點(diǎn)下的每一簇數(shù)據(jù),計算其邊界,取最有可能成為支撐向量的邊界點(diǎn)作為支撐向量機(jī)的建模數(shù)據(jù);
[0011]步驟4、建立支撐向量機(jī)模型:根據(jù)建模數(shù)據(jù)利用支撐向量機(jī)方法,建立支撐向量機(jī)模型。
[0012]而且,所述步驟4后還包括模型測試步驟:利用全部建模數(shù)據(jù)集,對支撐向量機(jī)模型進(jìn)行測試,如果支撐向量機(jī)模型準(zhǔn)確率大于閾值,則得到最優(yōu)模型,建模終止;否則轉(zhuǎn)步驟1繼續(xù)建模,直到支撐向量機(jī)模型準(zhǔn)確率滿足閾值要求,或者已用全部數(shù)據(jù)建模。
[0013]而且,所述步驟2的具體處理步驟為:
[0014](1)遍歷每一條數(shù)據(jù),依次插入到聚類特征樹中;
[0015](2)從聚類特征樹根節(jié)點(diǎn)開始遍歷;
[0016](3)如果當(dāng)前節(jié)點(diǎn)是葉子節(jié)點(diǎn),轉(zhuǎn)至步驟(4),否則轉(zhuǎn)至步驟(7);
[0017](4)找到當(dāng)前節(jié)點(diǎn)中與該條數(shù)據(jù)最近的孩子節(jié)點(diǎn),計算將該條數(shù)據(jù)與此孩子節(jié)點(diǎn)的數(shù)據(jù)合并后的簇直徑;如果簇直徑小于閾值,則轉(zhuǎn)至步驟(5),否則轉(zhuǎn)至步驟(6);
[0018](5)將該條數(shù)據(jù)與最近的孩子節(jié)點(diǎn)進(jìn)行合并;
[0019](6)該條數(shù)據(jù)作為當(dāng)前節(jié)點(diǎn)的一個新的孩子節(jié)點(diǎn),如果當(dāng)前節(jié)點(diǎn)的孩子節(jié)點(diǎn)數(shù)超過一定閾值,則將當(dāng)前節(jié)點(diǎn)拆分為兩個節(jié)點(diǎn),選擇距離最遠(yuǎn)的兩個孩子節(jié)點(diǎn)作為初始節(jié)點(diǎn),將其它孩子根據(jù)距離遠(yuǎn)近分到合適的節(jié)點(diǎn)進(jìn)行合并;
[0020](7)找到當(dāng)前節(jié)點(diǎn)中與該條數(shù)據(jù)最近的孩子節(jié)點(diǎn),將此孩子節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),轉(zhuǎn)至步驟(3)。
[0021]而且,所述步驟1中,當(dāng)數(shù)據(jù)集的數(shù)據(jù)量達(dá)到百萬級以上時,采用抽取萬分之一樣本進(jìn)行抽樣。
[0022]本發(fā)明的優(yōu)點(diǎn)和積極效果是:
[0023]1、本發(fā)明采用預(yù)抽樣策略、數(shù)據(jù)壓縮技術(shù)、增量抽樣策略等,在盡量不降低算法準(zhǔn)確率的情況下,大幅降低支撐向量機(jī)建模樣本數(shù),從而大幅提高支撐向量機(jī)建模速度,降低內(nèi)存消耗,從而使得支撐向量機(jī)技術(shù)能夠在大數(shù)據(jù)分析場景中應(yīng)用,彌補(bǔ)大數(shù)據(jù)分析中神經(jīng)網(wǎng)絡(luò)、貝葉斯等方法預(yù)測準(zhǔn)確率較低的缺陷。
[0024]2、本發(fā)明采用預(yù)抽樣策略,對于百萬級建模數(shù)據(jù)量進(jìn)行多層次抽樣,減少數(shù)據(jù)量,首先基于抽樣的數(shù)據(jù),進(jìn)行壓縮后建立模型,通過模型測試得到模型準(zhǔn)確率,當(dāng)準(zhǔn)確率不滿足要求時進(jìn)一步增加抽樣數(shù)據(jù),進(jìn)行建模,從而不斷改進(jìn)模型。
[0025]3、本發(fā)明采用聚類思想對抽樣后的數(shù)據(jù)再進(jìn)行壓縮,得到聚類特征樹,根據(jù)支撐向量機(jī)的方法思想,每簇數(shù)據(jù)最外層的節(jié)點(diǎn),最有可能成為支撐向量,故可以對每簇數(shù)據(jù),計算其邊界,取邊界數(shù)據(jù)作為支撐向量機(jī)的建模數(shù)據(jù),使數(shù)據(jù)壓縮過程盡量不丟失潛在的支撐向量,從而大大縮小數(shù)據(jù)量,同時,利用聚類分群特征樹的邊界點(diǎn)作為支撐向量機(jī)的建模數(shù)據(jù)。
[0026]4、本發(fā)明充分發(fā)揮支撐向量機(jī)模型穩(wěn)健、預(yù)測準(zhǔn)確率高的優(yōu)勢,從數(shù)據(jù)壓縮、參數(shù)自動調(diào)優(yōu)、層次抽樣等方面改進(jìn)了傳統(tǒng)支撐向量機(jī)方法,顯著提升了支撐向量機(jī)方法應(yīng)用于海量數(shù)據(jù)的性能,即在不降低分類精度的前提下大幅減少內(nèi)存使用和運(yùn)算時間,大大提升了支撐向量機(jī)方法的數(shù)據(jù)處理量,使得支撐向量機(jī)技術(shù)可以應(yīng)用在大數(shù)據(jù)分析場景中,從而實現(xiàn)海量數(shù)據(jù)的高準(zhǔn)確率建模。
【附圖說明】
[0027]圖1為本發(fā)明的整體處理流程圖;
[0028]圖2為本發(fā)明中數(shù)據(jù)壓縮環(huán)節(jié)的數(shù)據(jù)處理流程圖;
[0029]圖3為SVM優(yōu)化前后的內(nèi)存消耗對比圖;
[0030]圖4為SVM優(yōu)化前后的運(yùn)算時間對比圖。
【具體實施方式】
[0031]以下結(jié)合附圖對本發(fā)明實施例做進(jìn)一步詳述:
[0032]—種基于數(shù)據(jù)壓縮的支撐向量機(jī)建模方法,首先基于聚類的思想,將數(shù)據(jù)存儲于聚類特征樹中,即將數(shù)據(jù)劃分為一系列不相似的樣本群體,每個樣本群體中只挑選一個或有限個樣本代表這個群體,從而實現(xiàn)數(shù)據(jù)的壓縮;然后基于壓縮的數(shù)據(jù)建立支撐向量機(jī)模型,實現(xiàn)在不降低模型準(zhǔn)確率的情況下,盡量縮短建模時間,降低內(nèi)存消耗,從而提升支撐向量機(jī)的數(shù)據(jù)處理量。
[0033]如圖1所示,基于數(shù)據(jù)壓縮的支撐向量機(jī)的建模方法包括步驟如下:
[0034]步驟1、采用等距抽樣方法對建模數(shù)據(jù)進(jìn)行抽樣。當(dāng)數(shù)據(jù)集的數(shù)據(jù)量達(dá)到百萬級以上時,先對其進(jìn)行初步抽樣。
[0035]在本實施例中,抽取時盡量不采用隨機(jī)抽樣策略,可以考慮每隔K條數(shù)據(jù),抽樣一條數(shù)據(jù)(l/Κ為抽樣比例,具體的抽取比例依據(jù)原始建模數(shù)據(jù)量而定),也就是說采用系統(tǒng)抽樣,又稱為等距抽樣。抽取時,先從數(shù)據(jù)中抽取第1個樣本,然后間隔1萬個樣本,抽取第二個樣本,以此類推,依次用相等的間距抽取樣本。由此,樣本抽取得到萬分之一樣本,實現(xiàn)初步的數(shù)據(jù)縮減,從而以較少的數(shù)據(jù)得到符合精度要求的模型。
[0036]步驟2、對建模數(shù)據(jù)進(jìn)行壓縮。由于支撐向量機(jī)方法的核心是找到分類邊界和回歸線附近的支撐向量(樣本點(diǎn)),然后對相關(guān)樣本進(jìn)行加權(quán)構(gòu)造分類邊界和回歸線,但是,當(dāng)樣本量非常巨大時,找