本申請涉及基于決策樹的分類模型,具體涉及一種用于更新分類模型的方法。本申請同時涉及一種用于更新分類模型的裝置。
背景技術:
隨著互聯(lián)網(wǎng)技術的發(fā)展,出現(xiàn)了大量的網(wǎng)絡應用,例如:網(wǎng)絡社交、網(wǎng)絡閱讀等,網(wǎng)絡應用提供方為了向用戶推薦具有針對性的信息、或者進行必要的監(jiān)控管理,通常需要根據(jù)用戶在網(wǎng)絡應用中的操作行為,針對預先設定的目標進行分類預測,例如:欺詐或風險識別,用戶分群,購買力識別等。為了提高預測效率和準確性,在大多數(shù)網(wǎng)絡應用中通常采用分類模型(也稱作分類器)進行分類預測。
其中,隨機森林分類器是應用比較普遍的分類模型之一,該分類器由多棵決策樹組成,當待分類樣本進入隨機森林時,由每一顆決策樹進行分類,最后選取被所有決策樹選擇次數(shù)最多的類別作為最終的分類結果。在應用中,通常采用離線的機器學習過程構造該分類模型:通過對全量的用戶行為數(shù)據(jù)的學習、分析與訓練,得出關于分類的知識,從而完成對分類模型的構建并部署上線。隨著時間的推移,在線上部署的分類模型通常會逐漸退化,其分類的準確率可能無法滿足要求,針對這種情況,現(xiàn)有技術通常也是采用離線計算的方式,利用全量歷史數(shù)據(jù)重新訓練分類模型,并將訓練好的分類模型再次部署上線進行分類預測。
上述更新分類模型的方式,由于每次都采用全量數(shù)據(jù)進行分類模型的訓練,隨著數(shù)據(jù)量的增大、處理時間會相應延長,導致模型訓練效率降低;而且在實際應用中,上述更新分類模型的過程通常都是在分類模型退化后才啟動,也就是說分類模型不能實時或者及時地根據(jù)數(shù)據(jù)的變化做出相應的調整,導致業(yè)務響應慢,存在滯后性。
技術實現(xiàn)要素:
本申請實施例提供一種用于更新分類模型的方法,以解決現(xiàn)有分類模型的更新方式訓練效率低、以及更新不及時的問題。本申請實施例還提供一種用于更新分類模型的裝置。
本申請?zhí)峁┮环N用于更新分類模型的方法,所述分類模型包括預定數(shù)量的原始決策樹,用于根據(jù)網(wǎng)絡應用中的用戶行為數(shù)據(jù)進行類別預測,包括:
從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),并從中提取訓練樣本集;
根據(jù)所述訓練樣本集,生成新增數(shù)量的決策樹;
根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,從新增決策樹和原始決策樹中選擇所述預定數(shù)量的決策樹,組成更新后的分類模型。
可選的,所述從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),并從中提取訓練樣本集,包括:
從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),其中每條增量數(shù)據(jù)都包含一組原始變量及相應值、以及類別標簽;
對所述增量數(shù)據(jù)進行預處理,使其符合分類模型對訓練樣本數(shù)據(jù)的要求;
對每條增量數(shù)據(jù)執(zhí)行如下操作,生成所述訓練樣本集:從增量數(shù)據(jù)中提取對應于所述分類模型的特征變量的值,并用提取的值與所述類別標簽組成訓練樣本。
可選的,所述對所述增量數(shù)據(jù)進行預處理,包括以下所列中的一種或任意結合:
按照預先設定的方式,對增量數(shù)據(jù)中極大值和/或極小值進行處理;
按照預先設定的方式,對增量數(shù)據(jù)中的缺失值進行處理;
根據(jù)所述分類模型對樣本數(shù)據(jù)的格式要求,進行相應的格式轉換。
可選的,所述從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),并從中提取訓練樣本集,還包括:
從預處理后的增量數(shù)據(jù)中抽取特征變量,添加到特征變量集合中;
所述對應于分類模型的特征變量是指,從所述特征變量集合中選取的、對應于分類模型的特征變量。
可選的,所述根據(jù)所述訓練樣本集,生成新增數(shù)量的決策樹包括:
根據(jù)所述訓練樣本集,采用隨機森林算法生成新增數(shù)量的決策樹。
可選的,所述根據(jù)所述訓練樣本集,采用隨機森林算法生成新增數(shù)量的決策樹,包括:
根據(jù)所述訓練樣本集采用有放回抽樣的方式構建bootstrap樣本集合;
使用所述bootstrap樣本集合,采用在每個節(jié)點按照預定策略選取特征變量、并根據(jù)所選特征變量進行分裂的方式生成一棵新決策樹;所述按照預定策略選取特征變量是指,從隨機選擇的特征變量中按照預定策略選取最優(yōu)特征變量;
轉到所述根據(jù)所述訓練樣本集采用有放回抽樣的方式構建bootstrap樣本集合的步驟繼續(xù)執(zhí)行,直至生成所述新增數(shù)量的決策樹。
可選的,所述按照預定策略選取最優(yōu)特征變量包括:根據(jù)信息增益選取、根據(jù)信息增益率選取、或者根據(jù)基尼指標選取所述最優(yōu)特征變量。
可選的,所述根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,從新增決策樹和原始決策樹中選擇所述預定數(shù)量的決策樹,包括:
根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,計算新增決策樹和原始決策樹的綜合分類準確率;
按照所述綜合分類準確率對新增決策樹和原始決策樹進行排序;
從排序后的決策樹中選擇序位處于高位的、所述預定數(shù)量的決策樹。
可選的,所述根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,計算新增決策樹和原始決策樹的綜合分類準確率,包括:
根據(jù)所述訓練樣本集,計算新增決策樹的本次分類準確率,作為其綜合分類準確率;
根據(jù)所述訓練樣本集,計算原始決策樹的本次分類準確率;
根據(jù)所述歷史分類準確率和本次分類準確率,計算原始決策樹的綜合分類準確率。
可選的,所述根據(jù)歷史分類準確率和本次分類準確率,計算原始決策樹的綜合分類準確率采用如下方式實現(xiàn):
采用移動平均法,計算原始決策樹的綜合分類準確率。
可選的,所述移動平均法包括:加權移動平均法、或者指數(shù)移動平均法。
可選的,在執(zhí)行所述生成新增數(shù)量的決策樹的步驟之前,執(zhí)行下述操作:
判斷是否已創(chuàng)建所述分類模型;
若否,將所述預定數(shù)量作為所述新增數(shù)量。
可選的,在所述從新增決策樹和原始決策樹中選擇所述預定數(shù)量的決策樹,組成更新后的分類模型的步驟后,執(zhí)行下述操作:
刪除未被選取的決策樹。
相應的,本申請還提供一種用于更新分類模型的裝置,包括:
訓練樣本集提取單元,用于從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),并從中提取訓練樣本集;
決策樹生成單元,用于根據(jù)所述訓練樣本集,生成新增數(shù)量的決策樹;
決策樹選擇單元,用于根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,從新增決策樹和原始決策樹中選擇所述預定數(shù)量的決策樹,組成更新后的分類模型。
可選的,所述訓練樣本集提取單元包括:
增量數(shù)據(jù)獲取子單元,用于從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),其中每條增量數(shù)據(jù)都包含一組原始變量及相應值、以及類別標簽;
數(shù)據(jù)預處理子單元,用于對所述增量數(shù)據(jù)進行預處理,使其符合分類模型對訓練樣本數(shù)據(jù)的要求;
特征值提取子單元,用于對每條增量數(shù)據(jù)執(zhí)行如下操作,生成所述訓練樣本集:從增量數(shù)據(jù)中提取對應于所述分類模型的特征變量的值,并用提取的值與所述類別標簽組成訓練樣本。
可選的,所述數(shù)據(jù)預處理子單元至少包括以下子單元之一:
極值處理子單元,用于按照預先設定的方式,對增量數(shù)據(jù)中極大值和/或極小值進行處理;
缺失值處理子單元,用于按照預先設定的方式,對增量數(shù)據(jù)中的缺失值進行處理;
格式轉換子單元,用于根據(jù)所述分類模型對樣本數(shù)據(jù)的格式要求,進行相應的格式轉換。
可選的,所述訓練樣本集提取單元還包括:
特征變量抽取子單元,用于從預處理后的增量數(shù)據(jù)中抽取特征變量,添加到特征變量集合中;
所述特征值提取子單元具體用于,對每條增量數(shù)據(jù)執(zhí)行如下操作,生成所述訓練樣本集:從增量數(shù)據(jù)中提取從所述特征變量集合中選取的、對應于所述分類模型的特征變量的值,并用提取的值與所述類別標簽組成訓練樣本。
可選的,所述決策樹生成單元具體用于,根據(jù)所述訓練樣本集,采用隨機森林算法生成新增數(shù)量的決策樹。
可選的,所述決策樹生成單元包括:
循環(huán)控制子單元,用于當生成決策樹的數(shù)量小于所述新增數(shù)量時,調用下述各子單元創(chuàng)建決策樹;
bootstrap樣本集合構建子單元,用于根據(jù)所述訓練樣本集采用有放回抽樣的方式構建bootstrap樣本集合;
決策樹生成執(zhí)行子單元,用于使用所述bootstrap樣本集合,采用在每個節(jié)點按照預定策略選取特征變量、并根據(jù)所選特征變量進行分裂的方式生成一棵新決策樹;所述按照預定策略選取特征變量是指,從隨機選擇的特征變量中按照預定策略選取最優(yōu)特征變量。
可選的,所述決策樹生成執(zhí)行子單元所采用的預定策略包括:根據(jù)信息增益選取屬性、根據(jù)信息增益率選取屬性、或者根據(jù)基尼指標選取屬性。
可選的,所述決策樹選擇單元包括:
綜合指標計算子單元,用于根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,計算新增決策樹和原始決策樹的綜合分類準確率;
排序子單元,用于按照所述綜合分類準確率對新增決策樹和原始決策樹進行排序;
篩選子單元,用于從排序后的決策樹中選擇序位處于高位的、所述預定數(shù)量的決策樹。
可選的,所述綜合指標計算子單元包括:
新增決策樹綜合指標計算子單元,用于根據(jù)所述訓練樣本集,計算新增決策樹的本次分類準確率,作為其綜合分類準確率;
原始決策樹本次指標計算子單元,用于根據(jù)所述訓練樣本集,計算原始決 策樹的本次分類準確率;
原始決策樹綜合指標計算子單元,用于根據(jù)所述歷史分類準確率和本次分類準確率,計算原始決策樹的綜合分類準確率。
可選的,所述原始決策樹綜合指標計算子單元具體用于,采用移動平均法,計算原始決策樹的綜合分類準確率。
可選的,所述原始決策樹綜合指標計算子單元采用的移動平均法包括:加權移動平均法、或者指數(shù)移動平均法。
可選的,所述裝置還包括:
分類模型創(chuàng)建判斷單元,用于在觸發(fā)所述決策樹生成單元工作之前,判斷是否已創(chuàng)建所述分類模型,若否,將所述預定數(shù)量作為所述新增數(shù)量。
可選的,所述裝置還包括:
決策樹刪除單元,用于在所述決策樹選擇單元組成更新后的分類模型后,刪除未被選取的決策樹。
與現(xiàn)有技術相比,本申請具有以下優(yōu)點:
本申請?zhí)峁┑挠糜诟路诸惸P偷姆椒?,從最近一段時間內的增量數(shù)據(jù)中提取訓練樣本集,根據(jù)所述訓練樣本集生成新增數(shù)量的決策樹,并根據(jù)歷史分類準確率和本次分類準確率,從新增決策樹和原始決策樹中選擇預定數(shù)量的決策樹,匯總得到更新后的分類模型。采用上述方法,由于不需要根據(jù)全量數(shù)據(jù)進行訓練,而是利用增量數(shù)據(jù)在原有分類模型的基礎上進行增量更新,因此可以根據(jù)需要對分類模型進行各種時間粒度的動態(tài)更新,例如:按日更新或者近似實時更新,從而可以提高模型訓練的效率、實現(xiàn)對業(yè)務的快速響應;進一步地,由于在評價決策樹的分類效果時并沒有僅僅依據(jù)本次的分類準確率,而是引入了歷史分類準確率,因此可以從全局的角度對決策樹的綜合分類效果進行評估,從而可以平滑數(shù)據(jù)的短期波動,保證更新后的分類模型能夠保持比較穩(wěn)定的分類預測效果。
附圖說明
圖1是本申請的一種用于更新分類模型的方法實施例的流程圖;
圖2是本申請實施例提供的提取訓練樣本集的處理過程的流程圖;
圖3是本申請實施例提供的生成新增數(shù)量決策樹的處理過程的流程圖;
圖4是本申請實施例提供的根據(jù)歷史分類準確率和本次分類準確率選擇預定數(shù)量決策樹的處理過程的流程圖;
圖5是本申請實施例提供的計算新增決策樹和原始決策樹的綜合分類準確率的處理過程的流程圖;
圖6是本申請實施例提供的n=15的加權移動平均的權重分布示意圖;
圖7是本申請實施例提供的n=20的指數(shù)移動平均的權重分布示意圖;
圖8是本申請的一種用于更新分類模型的裝置實施例的示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是,本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內涵的情況下做類似推廣,因此,本申請不受下面公開的具體實施的限制。
在本申請中,分別提供了一種用于更新分類模型的方法,以及一種用于更新分類模型的裝置,在下面的實施例中逐一進行詳細說明。
請參考圖1,其為本申請的一種用于更新分類模型的方法實施例的流程圖。所述方法包括如下步驟:
步驟101:從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),并從中提取訓練樣本集。
本申請?zhí)峁┑挠糜诟路诸惸P偷姆椒ǎ谠隽繑?shù)據(jù)進行分類模型的更新,使得分類模型能夠及時地或者近似實時地根據(jù)樣本數(shù)據(jù)的變化做出相應的調整,從而實現(xiàn)分類模型與最新樣本數(shù)據(jù)的同步。
在實際的業(yè)務應用中,在獲取用戶行為數(shù)據(jù)后,可以先利用已在線上部署的分類模型,即由預定數(shù)量的原始決策樹組成的分類模型,通過打分的方式進行類別預測,將得分最高的類別(選擇該類別的決策樹數(shù)量最多)作為預測類別,并基于該預測類別開展預先設定的業(yè)務應用,例如:按類別進行推薦、按類別進行風險控制等。通常經(jīng)過一段時間后,根據(jù)用戶后續(xù)的操作行為或者系 統(tǒng)的綜合分析,可以獲知所述用戶行為數(shù)據(jù)的實際類別,并為該用戶行為數(shù)據(jù)添加相應的類別標簽。經(jīng)過上述業(yè)務流程后,通常就可以生成一批具備類別標簽的用戶行為數(shù)據(jù),在這種情況下,就可以實施本技術方案進行分類模型的動態(tài)更新。
本步驟首先從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù)。所述預定時間段是指位于當前時間之前的一個時間段,其長度可以根據(jù)具體的需求進行設置,例如可以以天為單位、以小時為單位,甚至以分鐘為單位都是可以的,只要所述時間段內的用戶行為數(shù)據(jù)已經(jīng)處于可獲取的狀態(tài)并且已經(jīng)包含了實際的類別標簽信息。
獲取所述增量數(shù)據(jù)后,可以通過對所述增量數(shù)據(jù)的預處理、抽取特征變量、提取特征變量值等處理過程,最終得到所述訓練樣本集。整個過程包括如下所述的步驟101-1至步驟101-4,下面結合附圖2作進一步說明。
步驟101-1:從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),其中每條增量數(shù)據(jù)都包含一組原始變量及相應值、以及類別標簽。
本步驟獲取的增量數(shù)據(jù)通常包含多條用戶行為數(shù)據(jù),其中每條用戶行為數(shù)據(jù)都包含一組原始變量及相應值、以及標識真實類別的類別標簽,每條增量數(shù)據(jù)類似如下所示的形式:(原始變量1,x1;原始變量2,x2;......原始變量n,xn:y),其中xi表示對應于原始變量i的相應值,所述原始變量也稱為屬性,對應的取值也稱為屬性值,y是本條用戶行為數(shù)據(jù)的類別標簽。
例如,在本實施例的一個具體例子中,在互聯(lián)網(wǎng)交易平臺的風險控制業(yè)務領域,采用分類模型對用戶交易行為是否存在風險進行分類預測,在本步驟中獲取的增量數(shù)據(jù)中的原始變量可以包括:用戶賬戶、年齡等個人屬性信息、交易商品的類別、名稱、價位等商品屬性信息、以及交易金額等信息。類別標簽則包括黑/白樣本兩種類別(分別對應有風險和無風險)。
步驟101-2:對所述增量數(shù)據(jù)進行預處理,使其符合分類模型對訓練樣本數(shù)據(jù)的要求。
本步驟對已獲取的增量數(shù)據(jù)進行預處理,以便于在后續(xù)的步驟中使用基于所述增量數(shù)據(jù)的訓練樣本集生成決策樹。所述預處理可以包括極大/極小值處理、缺失值處理以及格式轉換,下面分別進行說明。
所述極大值或極小值通常是指,超出常規(guī)的合理取值范圍的上限或者下限 的數(shù)值,例如室內溫度為100攝氏度,該數(shù)值就是超出合理取值范圍的極大值,這類數(shù)值可能是系統(tǒng)產生的、也可能是由于人為誤操作產生的。在具體實施中,可以采用預先設定的方式處理此類數(shù)據(jù),例如:如果僅是個別用戶行為數(shù)據(jù)中包含此類數(shù)據(jù),可以直接從增量數(shù)據(jù)中刪除相應用戶行為數(shù)據(jù);如果此類數(shù)據(jù)在增量數(shù)據(jù)中出現(xiàn)較為頻繁,則可以采用計算平均值、并用平均值取代原有極大值和/或極小值的處理方式。
所述缺失值通常是指,某個原始變量沒有對應的數(shù)值,這種情況可能是因為系統(tǒng)沒有采集到所述數(shù)據(jù),例如用戶未填寫網(wǎng)頁表單中的某項信息,并且相應的數(shù)據(jù)采集程序也沒有為其寫入缺省值。這種情況下,與上述對極大值/極小值的處理方式類似,可以刪除原始變量值不完善的用戶行為數(shù)據(jù),也可以用其他用戶行為數(shù)據(jù)包含的該原始變量值的均值,替換所述缺失的數(shù)值。
所述格式轉換,通常是因為計量單位的多樣性或者數(shù)據(jù)表示方式的多樣性,需要將采集到的增量數(shù)據(jù)中的某些原始變量值轉換成滿足分類模型要求的數(shù)值。例如:分類模型要求提供以攝氏溫度為計量單位的某原始變量值,而增量數(shù)據(jù)中的相應原始變量值是以華氏溫度為單位的,這種情況下,就需要對增量數(shù)據(jù)中的相應數(shù)據(jù)進行格式轉換。
采用上述方式對增量數(shù)據(jù)進行預處理,是為了保證增量數(shù)據(jù)的完整性、有效性、以及數(shù)值的正確性等,從而從所述增量數(shù)據(jù)提取的訓練樣本集能夠符合更新分類模型對訓練樣本數(shù)據(jù)的要求,從而保證更新后的分類模型能夠取得良好的預測效果。
步驟101-3:從預處理后的增量數(shù)據(jù)中抽取特征變量,添加到特征變量集合中。
通常每條用戶行為數(shù)據(jù)中都包含大量的原始變量,一方面由于并非每一個原始變量對于類別預測來說都是有意義的,另一方面用戶行為數(shù)據(jù)包含的原始變量也可能是變化的,例如逐漸增加完善的,為了便于管理,本步驟可以從增量數(shù)據(jù)中抽取有助于表征用戶行為特征的原始變量,即特征變量(也稱為特征屬性),并將所選的特征變量添加到特征變量集合(也稱特征變量池)中。
步驟101-4:從每條增量數(shù)據(jù)中提取從所述特征變量集合中選取的、對應于所述分類模型的特征變量的值,并用提取的值與所述類別標簽組成訓練樣本,從而得到訓練樣本集。
由于不同的分類模型其分類功能不同,采用的特征變量也可能不同,因此本步驟從特征變量集合中選取對應于所述待更新分類模型的特征變量。然后根據(jù)所述特征變量,從每條增量數(shù)據(jù)中提取對應的特征變量值,并將這些特征變量值與本條增量數(shù)據(jù)的類別標簽一并組成訓練樣本,類似如下所示的形式:(x1,x2,......xn:y),其中xi表示該樣本的特征變量值,y則表示該樣本的類別標簽。采用上述方式依次處理每條增量數(shù)據(jù),從而得到訓練樣本集。
至此,通過步驟101-1至步驟101-4,從增量用戶行為數(shù)據(jù)中提取了訓練樣本集。需要說明的是,在分類模型上線應用的初期,例如:最初的三個月或者半年,通常處于特征變量逐漸完善的階段,隨著對業(yè)務認知的深入,通過執(zhí)行步驟101-3將有助于類別預測的原始變量逐步添加到特征變量集合中。隨著用戶行為數(shù)據(jù)包含的原始變量的日趨穩(wěn)定,以及分類模型日漸完善,特征變量集合中的特征變量也會處于相對穩(wěn)定的階段,在這種情況下,也可以不執(zhí)行步驟101-3,而是直接從已經(jīng)穩(wěn)定的特征變量集合中選取對應于分類模型的特征變量,并進一步生成訓練樣本集。
步驟102:根據(jù)所述訓練樣本集,生成新增數(shù)量的決策樹。
本步驟生成新增數(shù)量的決策樹,所述新增數(shù)量通常小于分類模型所包含的原始決策樹的預定數(shù)量,其具體取值,可以考慮分類模型具體的應用場景、訓練樣本集的規(guī)模、或者所述分類模型包含的原始決策樹的數(shù)量等因素,設置一個經(jīng)驗值。例如:在進行風險控制的互聯(lián)網(wǎng)應用中,所述新增數(shù)量的取值范圍可以設置在所述預定數(shù)量的1/40至1/10的范圍內,如果分類模型包含200—400棵決策樹,可以設定新增決策樹的數(shù)量為10棵。上述僅僅是一個示例,在具體實施中可以綜合參考各種因素進行設置。
此外,也可以使用所述訓練樣本集對所述分類模型進行驗證,并根據(jù)驗證結果確定新增決策樹的數(shù)量。具體說,可以用所述分類模型對訓練樣本集中的每個樣本進行分類,并用正確分類的次數(shù)與樣本總數(shù)的比值作為分類準確率,并根據(jù)分類準確率調整新增決策樹的數(shù)量,例如,分類準確率超過預先設定的閾值時,說明現(xiàn)有分類模型能夠比較準確地對當前訓練樣本數(shù)據(jù)進行分類,因此可以設置相對較小的新增數(shù)量;否則可以設置相對較大的新增數(shù)量。
確定了所述新增數(shù)量后,就可以生成所述新增數(shù)量的決策樹。作為一種可選的實施方式,可以從所述訓練樣本集中隨機選取一定數(shù)量的樣本,然后針對 所選樣本采用常規(guī)的決策樹生成算法生成一棵決策樹,重復上述選取樣本和生成決策樹的步驟,直至生成所述新增數(shù)量的決策樹。
為了提高生成新增數(shù)量決策樹的效率、避免出現(xiàn)過擬合現(xiàn)象、以及提高抗噪聲能力,本實施例提供一種采用隨機森林算法生成新增數(shù)量決策樹的優(yōu)選實施方式,具體包括步驟102-1至步驟102-3,下面結合附圖3作進一步說明。
步驟102-1:根據(jù)所述訓練樣本集采用有放回抽樣的方式構建bootstrap樣本集合;
bootstrap抽樣方法(也稱自舉或自助抽樣法),是一種有放回的均勻抽樣方法,本步驟從包含N個樣本的訓練樣本集中采用有放回抽樣的方式抽取N個樣本,在抽取過程中,所述訓練樣本集合中的部分樣本有可能沒有被抽到,而部分樣本可能被抽取多次,將最終抽取的N個樣本組成一個bootstrap樣本集合。
步驟102-2:使用所述bootstrap樣本集合,采用在每個節(jié)點按照預定策略選取特征變量、并根據(jù)所選特征變量進行分裂的方式生成一棵新決策樹。
使用所述bootstrap樣本集合,采用逐節(jié)點分裂的方式生成一棵新的決策樹,其關鍵在于每個節(jié)點的分裂屬性(即特征變量)的選擇。具體說,對于包含M個特征變量的樣本,在決策樹的每個節(jié)點需要分裂時,首先隨機從M個特征變量中選取出m個(通常滿足條件m<<M),然后從所選的m個特征變量中按照預定策略選取1個最優(yōu)的特征變量,并按照該特征變量進行分裂。在每個節(jié)點都重復上述過程,直到某一個節(jié)點無法繼續(xù)分裂或者其包含的所有樣本都屬于同一個分類,此時分裂過程結束,一棵新決策樹創(chuàng)建完畢。
在具體實施中,隨機選擇特征變量的個數(shù)可以采用計算平方根并取整的方式得到,例如:每個樣本包含M=100個特征變量,那么每次可以隨機選擇m=sqrt(M)=10個特征變量,當然也可以采用其他方式確定隨機選擇特征變量的個數(shù),只要滿足m<<M的條件即可。
至于從隨機選取的特征變量中選取最優(yōu)的特征變量,可以采用預先設定的策略,例如,根據(jù)信息增益、信息增益率、或者基尼指標選取。采用上述三種方式選取最優(yōu)特征變量并進行分裂生成決策樹的過程,屬于比較成熟的現(xiàn)有技術,此處不再對詳細過程作進一步描述。
通過上面的描述可以看出,隨機森林算法的隨機性體現(xiàn)在每棵樹的訓練樣本是隨機的,樹中每個節(jié)點的分類屬性也是隨機選擇的,基于上述這兩個隨機 特性的保證,采用隨機森林算法生成的決策樹通常具有較好的抗噪聲能力,并且不會產生過擬合現(xiàn)象。
本步驟還可以記錄每棵新生成的決策樹的相關信息,包括:決策樹標識,例如決策樹id,和生成時間等。
步驟102-3:判斷新生成的決策樹的數(shù)量是否小于所述新增數(shù)量,若是,轉到步驟102-1執(zhí)行。
每新生成一棵決策樹,就可以累加新生成的決策樹的數(shù)量,并判斷該數(shù)量是否小于所述新增數(shù)量,若是,轉到步驟102-1執(zhí)行,繼續(xù)生成新的決策樹;若否,說明新生成的決策樹的數(shù)量已經(jīng)滿足要求,不用繼續(xù)生成。
步驟103:根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,從新增決策樹和原始決策樹中選擇所述預定數(shù)量的決策樹,組成更新后的分類模型。
在步驟102中生成了新增數(shù)量的決策樹,本步驟根據(jù)分類效果從新增決策樹和分類模型已有的原始決策樹中選擇所述預定數(shù)量的決策樹。如果僅僅根據(jù)本次分類準確率(基于本次訓練樣本集得到的分類準確率)來進行分類效果的評估,通常可以取得局部優(yōu)化的效果,但是對于隨機出現(xiàn)的較大幅度數(shù)據(jù)波動的情況,由于這種數(shù)據(jù)波動通常都是一過性的,不代表長期的、全局的趨勢,如果僅針對當前的訓練樣本集進行分類效果評估、并篩選性能最佳的決策樹,從而得到的更新后分類模型通常是不準確的,對于未來用戶行為數(shù)據(jù)的分類預測可能并不準確。
為了避免出現(xiàn)上述情況,本技術方案引入了歷史分類準確率,即在歷次更新分類模型過程中記錄的分類準確率,通過將歷史分類準確率與本次分類準確率的有機結合,從而能夠從全局的角度、比較客觀地反映出決策樹的分類效果。
在具體實施中,可以根據(jù)歷史分類準確率和本次分類準確率,采用不同的策略或者算法,完成本步驟的選擇任務。本實施例給出一種計算綜合分類準確率,并依據(jù)該指標進行篩選的實施方式,具體說,包括步驟103-1至步驟103-3,下面結合附圖4作進一步說明。
步驟103-1:根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,計算新增決策樹和原始決策樹的綜合分類準確率;
根據(jù)歷史分類準確率與本次分類準確率計算綜合分類準確率,可以采用不 同的計算方法,例如,可以利用自定義函數(shù)或者公式進行求解,綜合考慮實施效果以及算法的成熟程度,本實施例采用移動平均法計算綜合分類準確率。
采用移動平均法計算新增決策樹和原始決策樹的綜合分類準確率,包括步驟103-1-1至步驟103-1-3,下面結合附圖5進一步說明。
步驟103-1-1:根據(jù)所述訓練樣本集,計算新增決策樹的本次分類準確率,作為其綜合分類準確率。
本步驟針對已獲取的訓練樣本集計算每一顆新增決策樹的本次分類準確率。具體說,可以通過以下三種方式中的任意一種計算新增決策樹的本次分類準確率:
1)用所述新增決策樹對訓練樣本集中的每個樣本進行分類,并用正確分類的次數(shù)與樣本總數(shù)的比值作為本次分類準確率;
2)如果新增決策樹是采用隨機森林算法生成的,由于在生成過程中使用的是bootstrap樣本集合,因此可以使用包含在所述訓練樣本集中、但是未包含在所述bootstrap樣本集合中的袋外樣本,采用與1)中類似的方法計算本次分類準確率;
3)如果新增決策樹是采用隨機森林算法生成的,也可以直接使用bootstrap樣本集合中的樣本,采用與1)類似的方式計算本次分類準確率。
對于新增決策樹來說,通常沒有關于該決策樹的歷史分類準確率信息,因此可以將本次分類準確率作為其綜合分類準確率。但是如果分類模型曾經(jīng)創(chuàng)建過與所述新增決策樹相同的決策樹,并且還保留有該決策樹的歷史分類準確率,那么也可以采用類似步驟103-1-3的方式計算新增決策樹的綜合分類準確率。
步驟103-1-2:根據(jù)所述訓練樣本集,計算原始決策樹的本次分類準確率。
與上述步驟103-1-1中描述的方式1)類似,本步驟可以用原始決策樹對訓練樣本集中的每個樣本進行分類,并用正確分類的次數(shù)與樣本總數(shù)的比值作為原始決策樹的本次分類準確率。對分類模型包含的每棵原始決策樹都采用上述方式進行處理,從而獲取每棵原始決策樹的本次分類準確率。
步驟103-1-3:根據(jù)歷史分類準確率和本次分類準確率,計算原始決策樹的綜合分類準確率。
本實施例采用移動平均法計算所述原始決策樹的綜合分類準確率。移動平均法(moving average method)通常是指,根據(jù)時間序列,按照特定的權重系數(shù) 依次計算一系列數(shù)據(jù)項的平均數(shù)(加權平均數(shù)),從而能夠消除數(shù)據(jù)中的隨機波動,比較客觀地反映數(shù)據(jù)的變化趨勢。
采用移動平均法計算決策樹的綜合分類準確率的基本公式如下述公式所示,其中pi為所述時間序列中的某一數(shù)據(jù)項,即分類準確率,包括本次分類準確率以及歷次更新分類模型所記錄的歷史分類準確率;Wi為對應該分類準確率的權重系數(shù),各個權重系數(shù)的和通常為1;n為參與計算的時間序列內的數(shù)據(jù)項個數(shù)。
最為簡易的移動平均法是簡單移動平均法(Simple Moving Average—SMA),即:計算本次分類準確率和歷史分類準確率的未加權算術平均值,并將該平均值作為綜合分類準確率。采用這種方法,相當于本次分類準確率和各個歷史分類準確率的權重系數(shù)都是相同的,都為1/n,可以較好地平滑數(shù)據(jù)的短期波動,反映數(shù)據(jù)變化的長期趨勢。
考慮到在實際應用中,不同時期的分類準確率數(shù)據(jù)對于評估決策樹的分類效果的作用可能是有差別的,通常遠期的分類準確率的影響力相對較低,而越近期的分類準確率往往越能夠準確地評估決策樹的分類效果?;谏鲜隹紤],為了能夠在平滑數(shù)據(jù)短期波動的同時,進一步凸現(xiàn)近期數(shù)據(jù)的影響力,本實施例還提供了采用加權移動平均法或者指數(shù)移動平均法的優(yōu)選實施方式。
所謂加權移動平均法(Weighted Moving Average—WMA),在計算加權平均數(shù)時采用如下方式為各數(shù)據(jù)項設置不同的權重系數(shù):對于包含n個數(shù)據(jù)項來說,可以將權重系數(shù)的分母設定為A=n+(n-1)+(n-2)+...+2+1,將最近期數(shù)據(jù)項(p1,例如本次分類準確率)的權重系數(shù)設置為n/A、次近期數(shù)據(jù)項(p2)的權重系數(shù)設置為(n-1)/A,如此類推,一直到1/A,請參見圖6,其示出了n=15的加權移動平均的權重分布示意圖。加權移動平均法的計算公式如下所示:
所謂指數(shù)移動平均法(Exponential Moving Average—EMA),與上述加權移動平均法相比較,是以指數(shù)式遞減權重系數(shù)的移動平均。各數(shù)據(jù)項的加權影響力隨時間而指數(shù)式遞減,越近期的數(shù)據(jù)加權影響力越重,對較遠期的數(shù)據(jù)也給予一定的加權值,請參見圖7,其示出了n=20的指數(shù)移動平均的權重分布示意圖。在具體實施時,加權的程度可以用常數(shù)α決定,α數(shù)值介乎0至1,α也 可用參與計算的數(shù)據(jù)項的數(shù)目n來表示,例如α=2/(n+1)。基于常數(shù)α的指數(shù)移動平均法的計算公式如下所示:
通過上面的描述可以看出,加權移動平均法和指數(shù)移動平均法的權重系數(shù)主要是由數(shù)據(jù)項的生成時間決定的,越近期的數(shù)據(jù)項的權重系數(shù)越大,越遠期的數(shù)據(jù)項的權重系數(shù)越小。具體應用于本實施例,可以為本次分類準確率設置較大的權重系數(shù),而為遠期的歷史分類準確率設置相應較小的權重系數(shù),采用這種方式計算得到的綜合分類準確率,既可以從全局角度反應決策樹的分類效果,同時也可以凸顯決策樹近期的分類表現(xiàn),那么由基于該指標篩選出的決策樹所組成的分類模型,通??梢栽谖磥淼姆诸愵A測中獲得更為準確的預測結果。
通過上面的描述還可以看出,加權移動平均法和指數(shù)移動平均法的不同之處在于,指數(shù)移動平均法中各數(shù)據(jù)項的加權影響力不是線形遞減的、而是采用指數(shù)方式遞減的。因此,針對數(shù)據(jù)快速變化的應用場景(例如網(wǎng)站開展促銷活動)通??梢圆捎弥笖?shù)移動平均法,而在數(shù)據(jù)相對平穩(wěn)的應用場景(例如普通的工作日)通??梢圆捎眉訖嘁苿悠骄?。
在具體實施本步驟時,可以根據(jù)原始決策樹的標識,例如決策樹id,在已存儲的分類準確率數(shù)據(jù)中查找截止本次更新之前的某段時間內的(例如:7天或者1個月)、對應于該決策樹的分類準確率以及生成時間信息,這些數(shù)據(jù)通常都是在歷次更新分類模型過程中記錄下來的;然后根據(jù)具體的應用需求或者不同的應用場景,利用上述查找到的分類準確率以及本次分類準確率,采用上述移動平均法之一計算該決策樹的綜合分類準確率。針對分類模型包括的每一棵原始決策樹執(zhí)行上述操作,從而可以獲得每一棵原始決策樹的綜合分類準確率。
至此,通過步驟103-1-1至步驟103-1-3,在計算本次分類準確率的基礎上,得到了每棵新增決策樹和原始決策樹的綜合分類準確率。為了在后續(xù)更新分類模型的過程中能夠獲取詳實的歷史分類準確率數(shù)據(jù),在上述步驟103-1-1和103-1-2計算出新增決策樹和原始決策樹的本次分類準確率后,可以將該數(shù)據(jù)以及本次計算時間存儲在對應決策樹的相關信息中,即每棵決策樹的相關信息中不僅包括:決策樹標識和生成時間,還可以包括對應于時間序列的一系列分類準確率。
步驟103-2:按照所述綜合分類準確率對所述新增決策樹和原始決策樹進行排序。
本步驟根據(jù)步驟103-1計算得到的綜合分類準確率,對新增決策樹和原始決策樹進行排序,即:按照綜合分類準確率從高到低的順序對上述決策樹進行排序,使得綜合分類準確率高的決策樹的排序位置處于綜合分類準確率低的決策樹之前,為后續(xù)步驟103-3進行篩選做好準備。
步驟103-3:從排序后的決策樹中選擇序位位于高位的、所述預定數(shù)量的決策樹。
例如,分類模型包含T棵原始決策樹,在步驟102中生成了K棵決策樹,那么本步驟從根據(jù)綜合分類準確率排序的T+K棵決策樹中,選擇排位靠前的,即綜合分類準確率最優(yōu)的T棵決策樹,匯總組成更新后的分類模型。
至此通過步驟103-1至103-3完成了決策樹的篩選操作,并得到了更新后的分類模型。在具體實施時,可以在完成上述操作后,刪除未被選取的決策樹及其相關信息,包括:決策樹標識、生成時間、以及與分類準確率相關的信息。如果被刪除的決策樹是本次新增決策樹,那么刪除與分類準確率相關的信息是指,僅刪除本次分類準確率和本次計算時間;如果被刪除的決策樹是原始決策樹,那么不僅可以刪除本次分類準確率及本次計算時間,還可以刪除之前記錄的歷史分類準確率及相關時間信息。
此外,由于本技術方案提供了動態(tài)更新機制,分類模型可以逐漸完善,因此在首次創(chuàng)建分類模型時(從無到有的過程,也可以認為是更新過程),也可以采用本技術方案。具體說,在執(zhí)行步驟102之前,先判斷是否已創(chuàng)建分類模型,若否,則將所述預定數(shù)量作為所述新增數(shù)量,并在步驟102種創(chuàng)建預定數(shù)量的決策樹,在步驟103中計算每棵新增決策樹的本次分類準確率,供后續(xù)更新分類模型時參考,并直接將新增決策樹匯總得到分類模型。采用這種實施方式,可以將分類模型的創(chuàng)建和更新過程統(tǒng)一起來,減少人工參與,便于維護與管理。
綜上所述,本實施例提供的用于更新分類模型的方法,由于不需要根據(jù)全量數(shù)據(jù)進行訓練,而是利用增量數(shù)據(jù)在原有分類模型的基礎上進行增量更新,因此可以根據(jù)需要對分類模型進行各種時間粒度的動態(tài)更新,例如:按日更新或者近似實時更新,從而可以提高模型訓練的效率、實現(xiàn)對業(yè)務的快速響應;進一步地,由于在評價決策樹的分類效果時并沒有僅僅依據(jù)本次的分類準確率, 而是引入了歷史分類準確率,因此可以從全局的角度對決策樹的綜合分類效果進行評估,從而可以平滑數(shù)據(jù)的短期波動,保證更新后的分類模型能夠保持比較穩(wěn)定的分類預測效果。
在上述的實施例中,提供了一種用于更新分類模型的方法,與之相對應的,本申請還提供一種用于更新分類模型的裝置。請參看圖8,其為本申請的一種用于更新分類模型的裝置實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于更新分類模型的裝置,包括:訓練樣本集提取單元801,用于從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),并從中提取訓練樣本集;決策樹生成單元802,用于根據(jù)所述訓練樣本集,生成新增數(shù)量的決策樹;決策樹選擇單元803,用于根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,從新增決策樹和原始決策樹中選擇所述預定數(shù)量的決策樹,組成更新后的分類模型。
可選的,所述訓練樣本集提取單元包括:
增量數(shù)據(jù)獲取子單元,用于從提供所述用戶行為數(shù)據(jù)的服務器中獲取預定時間段內的增量數(shù)據(jù),其中每條增量數(shù)據(jù)都包含一組原始變量及相應值、以及類別標簽;
數(shù)據(jù)預處理子單元,用于對所述增量數(shù)據(jù)進行預處理,使其符合分類模型對訓練樣本數(shù)據(jù)的要求;
特征值提取子單元,用于對每條增量數(shù)據(jù)執(zhí)行如下操作,生成所述訓練樣本集:從增量數(shù)據(jù)中提取對應于所述分類模型的特征變量的值,并用提取的值與所述類別標簽組成訓練樣本。
可選的,所述數(shù)據(jù)預處理子單元至少包括以下子單元之一:
極值處理子單元,用于按照預先設定的方式,對增量數(shù)據(jù)中極大值和/或極小值進行處理;
缺失值處理子單元,用于按照預先設定的方式,對增量數(shù)據(jù)中的缺失值進行處理;
格式轉換子單元,用于根據(jù)所述分類模型對樣本數(shù)據(jù)的格式要求,進行相應的格式轉換。
可選的,所述訓練樣本集提取單元還包括:
特征變量抽取子單元,用于從預處理后的增量數(shù)據(jù)中抽取特征變量,添加到特征變量集合中;
所述特征值提取子單元具體用于,對每條增量數(shù)據(jù)執(zhí)行如下操作,生成所述訓練樣本集:從增量數(shù)據(jù)中提取從所述特征變量集合中選取的、對應于所述分類模型的特征變量的值,并用提取的值與所述類別標簽組成訓練樣本。
可選的,所述決策樹生成單元具體用于,根據(jù)所述訓練樣本集,采用隨機森林算法生成新增數(shù)量的決策樹。
可選的,所述決策樹生成單元包括:
循環(huán)控制子單元,用于當生成決策樹的數(shù)量小于所述新增數(shù)量時,調用下述各子單元創(chuàng)建決策樹;
bootstrap樣本集合構建子單元,用于根據(jù)所述訓練樣本集采用有放回抽樣的方式構建bootstrap樣本集合;
決策樹生成執(zhí)行子單元,用于使用所述bootstrap樣本集合,采用在每個節(jié)點按照預定策略選取特征變量、并根據(jù)所選特征變量進行分裂的方式生成一棵新決策樹;所述按照預定策略選取特征變量是指,從隨機選擇的特征變量中按照預定策略選取最優(yōu)特征變量。
可選的,所述決策樹生成執(zhí)行子單元所采用的預定策略包括:根據(jù)信息增益選取屬性、根據(jù)信息增益率選取屬性、或者根據(jù)基尼指標選取屬性。
可選的,所述決策樹選擇單元包括:
綜合指標計算子單元,用于根據(jù)歷史分類準確率和針對所述訓練樣本集的本次分類準確率,計算新增決策樹和原始決策樹的綜合分類準確率;
排序子單元,用于按照所述綜合分類準確率對新增決策樹和原始決策樹進行排序;
篩選子單元,用于從排序后的決策樹中選擇序位處于高位的、所述預定數(shù)量的決策樹。
可選的,所述綜合指標計算子單元包括:
新增決策樹綜合指標計算子單元,用于根據(jù)所述訓練樣本集,計算新增決策樹的本次分類準確率,作為其綜合分類準確率;
原始決策樹本次指標計算子單元,用于根據(jù)所述訓練樣本集,計算原始決策樹的本次分類準確率;
原始決策樹綜合指標計算子單元,用于根據(jù)所述歷史分類準確率和本次分類準確率,計算原始決策樹的綜合分類準確率。
可選的,所述原始決策樹綜合指標計算子單元具體用于,采用移動平均法,計算原始決策樹的綜合分類準確率。
可選的,所述原始決策樹綜合指標計算子單元采用的移動平均法包括:加權移動平均法、或者指數(shù)移動平均法。
可選的,所述裝置還包括:
分類模型創(chuàng)建判斷單元,用于在觸發(fā)所述決策樹生成單元工作之前,判斷是否已創(chuàng)建所述分類模型,若否,將所述預定數(shù)量作為所述新增數(shù)量。
可選的,所述裝置還包括:
決策樹刪除單元,用于在所述決策樹選擇單元組成更新后的分類模型后,刪除未被選取的決策樹。
本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領域技術人員在不脫離本申請的精神和范圍內,都可以做出可能的變動和修改,因此本申請的保護范圍應當以本申請權利要求所界定的范圍為準。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
1、計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他 磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調制的數(shù)據(jù)信號和載波。
2、本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。