九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
美團技術(shù)團隊---機器學習中的數(shù)據(jù)清洗與特征處理綜述

背景

隨著美團交易規(guī)模的逐步增大,積累下來的業(yè)務數(shù)據(jù)和交易數(shù)據(jù)越來越多,這些數(shù)據(jù)是美團做為一個團購平臺最寶貴的財富。通過對這些數(shù)據(jù)的分析和挖掘,不僅能給美團業(yè)務發(fā)展方向提供決策支持,也為業(yè)務的迭代指明了方向。目前在美團的團購系統(tǒng)中大量地應用到了機器學習和數(shù)據(jù)挖掘技術(shù),例如個性化推薦、篩選排序、搜索排序、用戶建模等等,為公司創(chuàng)造了巨大的價值。本文主要介紹在美團的推薦與個性化團隊實踐中的數(shù)據(jù)清洗與特征挖掘方法。主要內(nèi)容已經(jīng)在內(nèi)部公開課"機器學習InAction系列"講過,本博客的內(nèi)容主要是講座內(nèi)容的提煉和總結(jié)。

綜述

如上圖所示是一個經(jīng)典的機器學習問題框架圖。數(shù)據(jù)清洗和特征挖掘的工作是在灰色框中框出的部分,即“數(shù)據(jù)清洗=>特征,標注數(shù)據(jù)生成=>模型學習=>模型應用”中的前兩個步驟。

灰色框中藍色箭頭對應的是離線處理部分。主要工作是

  • 從原始數(shù)據(jù),如文本、圖像或者應用數(shù)據(jù)中清洗出特征數(shù)據(jù)和標注數(shù)據(jù)。
  • 對清洗出的特征和標注數(shù)據(jù)進行處理,例如樣本采樣,樣本調(diào)權(quán),異常點去除,特征歸一化處理,特征變化,特征組合等過程。最終生成的數(shù)據(jù)主要是供模型訓練使用。

灰色框中綠色箭頭對應的是在線處理的部分。所做的主要工作和離線處理的類似,主要的區(qū)別在于1.不需要清洗標注數(shù)據(jù),只需要處理得到特征數(shù)據(jù),在線模型使用特征數(shù)據(jù)預測出樣本可能的標簽。2.最終生成數(shù)據(jù)的用處,最終生成的數(shù)據(jù)主要用于模型的預測,而不是訓練。

在離線的處理部分,可以進行較多的實驗和迭代,嘗試不同的樣本采樣、樣本權(quán)重、特征處理方法、特征組合方法等,最終得到一個最優(yōu)的方法,在離線評估得到好的結(jié)果后,最終將確定的方案在線上使用。

另外,由于在線和離線環(huán)境不同,存儲數(shù)據(jù)、獲取數(shù)據(jù)的方法存在較大的差異。例如離線數(shù)據(jù)獲取可以將數(shù)據(jù)存儲在Hadoop,批量地進行分析處理等操作,并且容忍一定的失敗。而在線服務獲取數(shù)據(jù)需要穩(wěn)定、延時小等,可以將數(shù)據(jù)建入索引、存入KV存儲系統(tǒng)等。后面在相應的部分會詳細地介紹。

本文以點擊下單率預測為例,結(jié)合實例來介紹如何進行數(shù)據(jù)清洗和特征處理。首先介紹下點擊下單率預測任務,其業(yè)務目標是提高團購用戶的用戶體驗,幫助用戶更快更好地找到自己想買的單子。這個概念或者說目標看起來比較虛,我們需要將其轉(zhuǎn)換成一個技術(shù)目標,便于度量和實現(xiàn)。最終確定的技術(shù)目標是點擊下單率預估,去預測用戶點擊或者購買團購單的概率。我們將預測出來點擊或者下單率高的單子排在前面,預測的越準確,用戶在排序靠前的單子點擊、下單的就越多,省去了用戶反復翻頁的開銷,很快就能找到自己想要的單子。離線我們用常用的衡量排序結(jié)果的AUC指標,在線的我們通過ABTest來測試算法對下單率、用戶轉(zhuǎn)化率等指標的影響。

特征使用方案

在確定了目標之后,下一步,我們需要確定使用哪些數(shù)據(jù)來達到目標。需要事先梳理哪些特征數(shù)據(jù)可能與用戶是否點擊下單相關(guān)。我們可以借鑒一些業(yè)務經(jīng)驗,另外可以采用一些特征選擇、特征分析等方法來輔助我們選擇。具體的特征選擇,特征分析等方法我們后面會詳細介紹。從業(yè)務經(jīng)驗來判斷,可能影響用戶是否點擊下單的因素有:

  • 距離,很顯然這是一個很重要的特征。如果購買一個離用戶距離較遠的單子,用戶去消費這個單子需要付出很多的代價。 當然,也并不是沒有買很遠單子的用戶,但是這個比例會比較小。
  • 用戶歷史行為,對于老用戶,之前可能在美團有過購買、點擊等行為。
  • 用戶實時興趣。
  • 單子質(zhì)量,上面的特征都是比較好衡量的,單子質(zhì)量可能是更復雜的一個特征。
  • 是否熱門,用戶評價人數(shù),購買數(shù)等等。

在確定好要使用哪些數(shù)據(jù)之后,我們需要對使用數(shù)據(jù)的可用性進行評估,包括數(shù)據(jù)的獲取難度,數(shù)據(jù)的規(guī)模,數(shù)據(jù)的準確率,數(shù)據(jù)的覆蓋率等,

  • 數(shù)據(jù)獲取難度
    例如獲取用戶id不難,但是獲取用戶年齡和性別較困難,因為用戶注冊或者購買時,這些并不是必填項。即使填了也不完全準確。這些特征可能是通過額外的預測模型預測的,那就存在著模型精度的問題。
  • 數(shù)據(jù)覆蓋率
    數(shù)據(jù)覆蓋率也是一個重要的考量因素,例如距離特征,并不是所有用戶的距離我們都能獲取到。PC端的就沒有距離,還有很多用戶禁止使用它們的地理位置信息等。
    用戶歷史行為,只有老用戶才會有行為。
    用戶實時行為,如果用戶剛打開app,還沒有任何行為,同樣面臨著一個冷啟動的問題。
  • 數(shù)據(jù)的準確率
    單子質(zhì)量,用戶性別等,都會有準確率的問題。

特征獲取方案

Ok,在選定好要用的特征之后,我們需要考慮一個問題。就是這些數(shù)據(jù)從哪可以獲???只有獲取了這些數(shù)據(jù)我們才能用上。否則,提一個不可能獲取到的特征,獲取不到,提了也是白提。下面就介紹下特征獲取方案。

  • 離線特征獲取方案離線可以使用海量的數(shù)據(jù),借助于分布式文件存儲平臺,例如HDFS等,使用例如MapReduce,Spark等處理工具來處理海量的數(shù)據(jù)等。

  • 在線特征獲取方案

    在線特征比較注重獲取數(shù)據(jù)的延時,由于是在線服務,需要在非常短的時間內(nèi)獲取到相應的數(shù)據(jù),對查找性能要求非常高,可以將數(shù)據(jù)存儲在索引、kv存儲等。而查找性能與數(shù)據(jù)的數(shù)據(jù)量會有矛盾,需要折衷處理,我們使用了 特征分層獲取方案 ,如下圖所示。

    出于性能考慮。在粗排階段,使用更基礎(chǔ)的特征,數(shù)據(jù)直接建入索引。精排階段,再使用一些個性化特征等。

特征與標注數(shù)據(jù)清洗

在了解特征數(shù)據(jù)放在哪兒、怎樣獲取之后。下一步就是考慮如何處理特征和標注數(shù)據(jù)了。下面3節(jié)都是主要講的特征和標注處理方法

標注數(shù)據(jù)清洗

首先介紹下如何清洗特征數(shù)據(jù),清洗特征數(shù)據(jù)方法可以分為離線清洗和在線清洗兩種方法。

  • 離線清洗數(shù)據(jù)
    離線清洗優(yōu)點是方便評估新特征效果,缺點是實時性差,與線上實時環(huán)境有一定誤差。對于實時特征難以訓練得到恰當?shù)臋?quán)重。
  • 在線清洗數(shù)據(jù)
    在線清洗優(yōu)點是實時性強,完全記錄的線上實際數(shù)據(jù),缺點是新特征加入需要一段時間做數(shù)據(jù)積累。

樣本采樣與樣本過濾

特征數(shù)據(jù)只有在和標注數(shù)據(jù)合并之后,才能用來做為模型的訓練。下面介紹下如何清洗標注數(shù)據(jù)。主要是數(shù)據(jù)采樣和樣本過濾。

數(shù)據(jù)采樣,例如對于分類問題:選取正例,負例。對于回歸問題,需要采集數(shù)據(jù)。對于采樣得到的樣本,根據(jù)需要,需要設定樣本權(quán)重。當模型不能使用全部的數(shù)據(jù)來訓練時,需要對數(shù)據(jù)進行采樣,設定一定的采樣率。采樣的方法包括隨機采樣,固定比例采樣等方法。

除了采樣外,經(jīng)常對樣本還需要進行過濾,包括

  • 1.結(jié)合業(yè)務情況進行數(shù)據(jù)的過濾,例如去除crawler抓取,spam,作弊等數(shù)據(jù)。
  • 2.異常點檢測,采用異常點檢測算法對樣本進行分析,常用的異常點檢測算法包括
    • 偏差檢測,例如聚類,最近鄰等。
    • 基于統(tǒng)計的異常點檢測算法
      例如極差,四分位數(shù)間距,均差,標準差等,這種方法適合于挖掘單變量的數(shù)值型數(shù)據(jù)。全距(Range),又稱極差,是用來表示統(tǒng)計資料中的變異量數(shù)(measures of variation) ,其最大值與最小值之間的差距;四分位距通常是用來構(gòu)建箱形圖,以及對概率分布的簡要圖表概述。
    • 基于距離的異常點檢測算法,主要通過距離方法來檢測異常點,將數(shù)據(jù)集中與大多數(shù)點之間距離大于某個閾值的點視為異常點,主要使用的距離度量方法有絕對距離 ( 曼哈頓距離 ) 、歐氏距離和馬氏距離等方法。
    • 基于密度的異常點檢測算法,考察當前點周圍密度,可以發(fā)現(xiàn)局部異常點,例如LOF算法

特征分類

在分析完特征和標注的清洗方法之后,下面來具體介紹下特征的處理方法,先對特征進行分類,對于不同的特征應該有不同的處理方法。

根據(jù)不同的分類方法,可以將特征分為(1)Low level特征和High level特征。(2)穩(wěn)定特征與動態(tài)特征。(3)二值特征、連續(xù)特征、枚舉特征。

Low level特征是較低級別的特征,主要是原始特征,不需要或者需要非常少的人工處理和干預,例如文本特征中的詞向量特征,圖像特征中的像素點,用戶id,商品id等。Low level特征一般維度比較高,不能用過于復雜的模型。High level特征是經(jīng)過較復雜的處理,結(jié)合部分業(yè)務邏輯或者規(guī)則、模型得到的特征,例如人工打分,模型打分等特征,可以用于較復雜的非線性模型。Low level 比較針對性,覆蓋面小。長尾樣本的預測值主要受high level特征影響。 高頻樣本的預測值主要受low level特征影響。

穩(wěn)定特征是變化頻率(更新頻率)較少的特征,例如評價平均分,團購單價格等,在較長的時間段內(nèi)都不會發(fā)生變化。動態(tài)特征是更新變化比較頻繁的特征,有些甚至是實時計算得到的特征,例如距離特征,2小時銷量等特征?;蛘呓凶鰧崟r特征和非實時特征。針對兩類特征的不同可以針對性地設計特征存儲和更新方式,例如對于穩(wěn)定特征,可以建入索引,較長時間更新一次,如果做緩存的話,緩存的時間可以較長。對于動態(tài)特征,需要實時計算或者準實時地更新數(shù)據(jù),如果做緩存的話,緩存過期時間需要設置的較短。

二值特征主要是0/1特征,即特征只取兩種值:0或者1,例如用戶id特征:目前的id是否是某個特定的id,詞向量特征:某個特定的詞是否在文章中出現(xiàn)等等。連續(xù)值特征是取值為有理數(shù)的特征,特征取值個數(shù)不定,例如距離特征,特征取值為是0~正無窮。枚舉值特征主要是特征有固定個數(shù)個可能值,例如今天周幾,只有7個可能值:周1,周2,...,周日。在實際的使用中,我們可能對不同類型的特征進行轉(zhuǎn)換,例如將枚舉特征或者連續(xù)特征處理為二值特征。枚舉特征處理為二值特征技巧:將枚舉特征映射為多個特征,每個特征對應一個特定枚舉值,例如今天周幾,可以把它轉(zhuǎn)換成7個二元特征:今天是否是周一,今天是否是周二,...,今天是否是周日。連續(xù)值處理為二值特征方法:先將連續(xù)值離散化(后面會介紹如何離散化),再將離散化后的特征切分為N個二元特征,每個特征代表是否在這個區(qū)間內(nèi)。

特征處理與分析

在對特征進行分類后,下面介紹下對特征常用的處理方法。包括1.特征歸一化,離散化,缺省值處理。2.特征降維方法。3.特征選擇方法等。

特征歸一化,離散化,缺省值處理

主要用于單個特征的處理。

  • 歸一化不同的特征有不同的取值范圍,在有些算法中,例如線性模型或者距離相關(guān)的模型像聚類模型、knn模型等,特征的取值范圍會對最終的結(jié)果產(chǎn)生較大影響,例如二元特征的取值范圍為[0,1],而距離特征取值可能是[0,正無窮),在實際使用中會對距離進行截斷,例如[0,3000000],但是這兩個特征由于取值范圍不一致導致了模型可能會更偏向于取值范圍較大的特征,為了平衡取值范圍不一致的特征,需要對特征進行歸一化處理,將特征取值歸一化到[0,1]區(qū)間。常用的歸一化方法包括1.函數(shù)歸一化,通過映射函數(shù)將特征取值映射到[0,1]區(qū)間,例如最大最小值歸一化方法,是一種線性的映射。還有通過非線性函數(shù)的映射,例如log函數(shù)等。2.分維度歸一化,可以使用最大最小歸一化方法,但是最大最小值選取的是所屬類別的最大最小值,即使用的是局部最大最小值,不是全局的最大最小值。3.排序歸一化,不管原來的特征取值是什么樣的,將特征按大小排序,根據(jù)特征所對應的序給予一個新的值。

  • 離散化在上面介紹過連續(xù)值的取值空間可能是無窮的,為了便于表示和在模型中處理,需要對連續(xù)值特征進行離散化處理。常用的離散化方法包括等值劃分和等量劃分。等值劃分是將特征按照值域進行均分,每一段內(nèi)的取值等同處理。例如某個特征的取值范圍為[0,10],我們可以將其劃分為10段,[0,1),[1,2),...,[9,10)。等量劃分是根據(jù)樣本總數(shù)進行均分,每段等量個樣本劃分為1段。例如距離特征,取值范圍[0,3000000],現(xiàn)在需要切分成10段,如果按照等比例劃分的話,會發(fā)現(xiàn)絕大部分樣本都在第1段中。使用等量劃分就會避免這種問題,最終可能的切分是[0,100),[100,300),[300,500),..,[10000,3000000],前面的區(qū)間劃分比較密,后面的比較稀疏。

  • 缺省值處理有些特征可能因為無法采樣或者沒有觀測值而缺失,例如距離特征,用戶可能禁止獲取地理位置或者獲取地理位置失敗,此時需要對這些特征做特殊的處理,賦予一個缺省值。缺省值如何賦予,也有很多種方法。例如單獨表示,眾數(shù),平均值等。

特征降維

在介紹特征降維之前,先介紹下特征升維。在機器學習中,有一個VC維理論。根據(jù)VC維理論,VC維越高,打散能力越強,可容許的模型復雜度越高。在低維不可分的數(shù)據(jù),映射到高維是可分??梢韵胂?,給你一堆物品,人腦是如何對這些物品進行分類,依然是找出這些物品的一些特征,例如:顏色,形狀,大小,觸感等等,然后根據(jù)這些特征對物品做以歸類,這其實就是一個先升維,后劃分的過程。比如我們?nèi)四X識別香蕉。可能首先我們發(fā)現(xiàn)香蕉是黃色的。這是在顏色這個維度的一個切分。但是很多東西都是黃色的啊,例如哈密瓜。那么怎么區(qū)分香蕉和哈密瓜呢?我們發(fā)現(xiàn)香蕉形狀是彎曲的。而哈密瓜是圓形的,那么我們就可以用形狀來把香蕉和哈密瓜劃分開了,即引入一個新維度:形狀,來區(qū)分。這就是一個從“顏色”一維特征升維到二維特征的例子。

那問題來了,既然升維后模型能力能變強,那么是不是特征維度越高越好呢?為什么要進行特征降維&特征選擇?主要是出于如下考慮:1. 特征維數(shù)越高,模型越容易過擬合,此時更復雜的模型就不好用。2. 相互獨立的特征維數(shù)越高,在模型不變的情況下,在測試集上達到相同的效果表現(xiàn)所需要的訓練樣本的數(shù)目就越大。 3. 特征數(shù)量增加帶來的訓練、測試以及存儲的開銷都會增大。4.在某些模型中,例如基于距離計算的模型KMeans,KNN等模型,在進行距離計算時,維度過高會影響精度和性能。5.可視化分析的需要。在低維的情況下,例如二維,三維,我們可以把數(shù)據(jù)繪制出來,可視化地看到數(shù)據(jù)。當維度增高時,就難以繪制出來了。在機器學習中,有一個非常經(jīng)典的維度災難的概念。用來描述當空間維度增加時,分析和組織高維空間,因體積指數(shù)增加而遇到各種問題場景。例如,100個平均分布的點能把一個單位區(qū)間以每個點距離不超過0.01采樣;而當維度增加到10后,如果以相鄰點距離不超過0.01小方格采樣單位超一單位超正方體,則需要10^20 個采樣點。

正是由于高維特征有如上描述的各種各樣的問題,所以我們需要進行特征降維和特征選擇等工作。特征降維常用的算法有PCA,LDA等。特征降維的目標是將高維空間中的數(shù)據(jù)集映射到低維空間數(shù)據(jù),同時盡可能少地丟失信息,或者降維后的數(shù)據(jù)點盡可能地容易被區(qū)分

  • PCA算法通過協(xié)方差矩陣的特征值分解能夠得到數(shù)據(jù)的主成分,以二維特征為例,兩個特征之間可能存在線性關(guān)系(例如運動的時速和秒速度),這樣就造成了第二維信息是冗余的。PCA的目標是發(fā)現(xiàn)這種特征之間的線性關(guān)系,并去除。

  • LDA算法考慮label,降維后的數(shù)據(jù)點盡可能地容易被區(qū)分

特征選擇

特征選擇的目標是尋找最優(yōu)特征子集。特征選擇能剔除不相關(guān)(irrelevant)或冗余(redundant )的特征,從而達到減少特征個數(shù),提高模型精確度,減少運行時間的目的。另一方面,選取出真正相關(guān)的特征簡化模型,協(xié)助理解數(shù)據(jù)產(chǎn)生的過程。

特征選擇的一般過程如下圖所示:

主要分為產(chǎn)生過程,評估過程,停止條件和驗證過程。

特征選擇-產(chǎn)生過程和生成特征子集方法

  • 完全搜索(Complete)
    • 廣度優(yōu)先搜索( Breadth First Search )
      廣度優(yōu)先遍歷特征子空間。枚舉所有組合,窮舉搜索,實用性不高。
    • 分支限界搜索( Branch and Bound )
      窮舉基礎(chǔ)上加入分支限界。例如:剪掉某些不可能搜索出比當前最優(yōu)解更優(yōu)的分支。
      其他,如定向搜索 (Beam Search ),最優(yōu)優(yōu)先搜索 ( Best First Search )等
  • 啟發(fā)式搜索(Heuristic)
    • 序列前向選擇( SFS , Sequential Forward Selection )
      從空集開始,每次加入一個選最優(yōu)。
    • 序列后向選擇( SBS , Sequential Backward Selection )
      從全集開始,每次減少一個選最優(yōu)。
    • 增L去R選擇算法 ( LRS , Plus-L Minus-R Selection )
      從空集開始,每次加入L個,減去R個,選最優(yōu)(L>R)或者從全集開始,每次減去R個,增加L個,選最優(yōu)(L<R)。

其他如雙向搜索( BDS , Bidirectional Search ),序列浮動選擇( Sequential Floating Selection )等

  • 隨機搜索(Random)
    • 隨機產(chǎn)生序列選擇算法(RGSS, Random Generation plus Sequential Selection)
      隨機產(chǎn)生一個特征子集,然后在該子集上執(zhí)行SFS與SBS算法。
    • 模擬退火算法( SA, Simulated Annealing )
      以一定的概率來接受一個比當前解要差的解,而且這個概率隨著時間推移逐漸降低
    • 遺傳算法( GA, Genetic Algorithms )
      通過交叉、突變等操作繁殖出下一代特征子集,并且評分越高的特征子集被選中參加繁殖的概率越高。

隨機算法共同缺點:依賴隨機因素,有實驗結(jié)果難重現(xiàn)。

特征選擇-有效性分析

對特征的有效性進行分析,得到各個特征的特征權(quán)重,根據(jù)是否與模型有關(guān)可以分為1.與模型相關(guān)特征權(quán)重,使用所有的特征數(shù)據(jù)訓練出來模型,看在模型中各個特征的權(quán)重,由于需要訓練出模型,模型相關(guān)的權(quán)重與此次學習所用的模型比較相關(guān)。不同的模型有不同的模型權(quán)重衡量方法。例如線性模型中,特征的權(quán)重系數(shù)等。2.與模型無關(guān)特征權(quán)重。主要分析特征與label的相關(guān)性,這樣的分析是與這次學習所使用的模型無關(guān)的。與模型無關(guān)特征權(quán)重分析方法包括(1)交叉熵,(2)Information Gain,(3)Odds ratio,(4)互信息,(5)KL散度等

特征監(jiān)控

在機器學習任務中,特征非常重要。

  • 個人經(jīng)驗,80%的效果由特征帶來。下圖是隨著特征數(shù)的增加,最終模型預測值與實際值的相關(guān)系數(shù)變化。
  • 對于重要的特征進行監(jiān)控與有效性分析,了解模型所用的特征是否存在問題,當某個特別重要的特征出問題時,需要做好備案,防止災難性結(jié)果。需要建立特征有效性的長效監(jiān)控機制
    我們對關(guān)鍵特征進行了監(jiān)控,下面特征監(jiān)控界面的一個截圖。通過監(jiān)控我們發(fā)現(xiàn)有一個特征的覆蓋率每天都在下降,與特征數(shù)據(jù)提供方聯(lián)系之后,發(fā)現(xiàn)特征數(shù)據(jù)提供方的數(shù)據(jù)源存在著問題,在修復問題之后,該特征恢復正常并且覆蓋率有了較大提升。
    在發(fā)現(xiàn)特征出現(xiàn)異常時,我們會及時采取措施,對服務進行降級處理,并聯(lián)系特征數(shù)據(jù)的提供方盡快修復。對于特征數(shù)據(jù)生成過程中缺乏監(jiān)控的情況也會督促做好監(jiān)控,在源頭解決問題。

機器學習InAction系列講座介紹:結(jié)合美團在機器學習上的實踐,我們進行一個實戰(zhàn)(InAction)系列的介紹(帶“機器學習InAction系列”標簽的5篇文章),介紹機器學習在解決問題的實戰(zhàn)中所需的基本技術(shù)、經(jīng)驗和技巧。本文主要介紹了數(shù)據(jù)清洗與特征處理,其他四篇文章主要介紹了機器學習解決問題流程和模型訓練、模型優(yōu)化等工作。

參考

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數(shù)據(jù)挖掘中的數(shù)據(jù)清洗方法大全
一文搞懂k近鄰(k
MIT公開課-機器學習導論(附視頻中字)
基于PMFCC
KNN算法
python機器學習(1)-機器學習基本概念與流程
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服