精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

一線專家談談:數據挖掘在實際領域中的那些事兒

責任編輯:editor005

作者:佘偉

2016-05-16 14:04:49

摘自:InfoQ

當特征提取完了之后,我們會采用分類算法來訓練模型,最終得到故障診斷和故障預測的結果。當特征提取完了之后,我們會采用分類算法來訓練模型,最終得到故障診斷和故障預測的結果。

大家好,我是明略數據的佘偉。今天非常榮幸能給大家分享明略數據在大數據挖掘方面做的一些事情。

企業中的數據挖掘

我們先來看看在企業中數據挖掘都是怎么做的,以及有著哪些問題。

數據挖掘

上圖中的左邊是SPSS在1999年提出的《跨行業數據挖掘標準流程》,在圖中定義了數據挖掘的6個步驟。雖然這個圖已經提出有10幾年了,但是在大數據環境下,這個流程依然適用。

理解商業問題。這需要大數據科學家和行業專業,以及客戶的業務專家一起來明確問題。這是整個大數據挖掘中最關鍵的一步。如果不理解業務就貿然開做,最后的項目一定是失敗的。

分析數據。當明確了業務問題之后,我們就需要去分析數據,看看到底哪些數據能夠支撐我們的業務,用哪些數據去解決問題。在這個階段,我們可能發現數據不足,或者數據質量太差,這個時候就可能要尋求第三方數據的幫助,或者規劃如何去采集更多的數據了。

數據挖掘。前兩步都是在做數據挖掘前的準備,當業務明略,數據可用時,我們就正式開始數據挖掘了。

3.1提取特征

首先我們要對數據進行處理, 從數據中提取特征 。這是數據挖掘非常關鍵的一步,特征的好壞直接影響最終模型的效果。在數據挖掘過程中,算法其實并不是最主要的因素,影響效果最直接的因素就是特征。

良好的特征需要有非常好的區分度,只有這些特征,才能很好的去解決問題。舉個例子,我們要辨別一個西瓜是好是壞,可能顏色是一個特征,條紋,重量,瓜蒂也是特征。但是,大家都知道西瓜一般都是綠色的,所以用綠色去作為判別西瓜好壞是沒有區分度的。而條紋,重量,瓜蒂是判別一個西瓜是好是壞非常重要的因素,因此他們是好特征。

我們在解決不同問題時,所用的特征是不一樣的。可能在解決某個問題有用的特征在解決另外一個問題時就不具備區分度。因此,我們必須緊密的聯系業務,去選擇合適的特征。

在提取特征時,因為我們是大數據挖掘,所以要使用大數據技術去從原始數據中提取特征。這需要大數據科學家有著非常豐富的大數據處理技能。

3.2建立模型

當特征提取完畢后,我們就需要去應用算法建立模型了。在實際的建模過程中,由于數據量過于龐大,算法訓練過程往往十分緩慢,如何 加速算法計算速度 ,是一個非常突出的問題。

此外,由于傳統的數據挖掘算法都是針對小數據集的,當數據規模到了一臺服務器無法處理的程度,傳統的數據挖掘算法就不再使用。此時,我們需要有新的數據挖掘技術來支持大數據上的數據挖掘。

當模型建立完成之后,我們需要對模型進行評估,來確定模型效果。此時最重要的是建立模型的評價指標。這個評價指標必須是要結合業務來建立的。當模型效果不佳時,我們要回到特征提取,建模過程來不斷的迭代,甚至可能要重新分析業務和數據。

3.3后期工作

當一個效果非常好的模型建立完畢了,我們的數據挖掘就結束了嗎?傳統的數據挖掘軟件往往只做到模型建立這一步,但是在模型建立完成之后還有很多工作要做。我們如何將模型在生產系統中使用起來,如何去管理、運行、維護、擴展模型。

我們先來看看DataInsight對業務的支持。

可以將DataInsight看做一個模型運行的平臺。他提供一套分布式的模型執行引擎。所有通過DataInsight建立的模型都可以在這個分布式執行引擎中運行。

在執行引擎之上,DataInsight還提供了多個系統供不同業務使用。我們有支持實時分析業務的實時分析系統,有支持離線批處理業務的離線分析系統,還有規則引擎系統,可以讓用戶的業務人員去通過規則對模型進行修正。

用戶需要針對不同的業務去建立不同的模型,這個建模過程可以由用戶自己完成,也可以由明略的大數據科學家去完成。建立好的模型以插件的形式插入到DataInsight中去,方便模型的管理和擴展。

用戶的業務系統會通過API和DataInsight進行通信,來運行或者更新DataInsight中插入的模型。

一個典型的DataInsight模型運行過程如下:用戶通過API調用DataInsight,在請求中指定模型,模型的輸入和模型的輸出。DataInsight會將數據從數據源中取出,送入模型,并且將模型分成多個步驟,并行化的在分布式執行引擎中運行。當模型運行完畢后,結果將送入用戶指定的目的數據庫中。這樣,用戶的應用系統就可以直接從目的數據庫中獲得模型運行的最新結果了。

DataInsight中將解決客戶業務問題的模型成為業務模型,或者應用。DataInsight對業務模型也進行了一定層次的抽象。每個業務模型都是由若干步驟組成的。每個步驟被稱作一個算子。

上圖是一個文本分類的業務模型,其解決的問題是將若干文本進行分類。例如我們有很多文章,我們要對每篇文章的情感進行分類,就可以使用這個模型。

我們將文本分類模型抽象為很多算子的組合。每個算子都是對數據進行了某種轉換,將一組輸入轉化為一組輸出。這個轉化過程可能是對數據進行的預處理,也可能是某種機器學習算法。

每個算子都有輸入和輸出,且算子的輸出可以作為另外一個算子的輸入。這樣,整個業務模型就抽象成了一個有向無環圖(DAG)。DataInsight在執行模型時,會去調度模型中的每個算子,將適合分布式計算的算子送入不同的執行容器中去運行,加速了整個模型的計算速度。

  DataInsight總體的體系架構見下圖:

(點擊放大圖像)

下面我們介紹一下明略在各個領域中的一些案例。由于時間關系,我這里只舉兩個案例。

一是精準營銷方面 。明略是從秒針系統拆分出來的,秒針系統是一家以互聯網精準營銷為主要業務的公司,因此明略在精準營銷方面有著接近10年的積累。

首先,明略的大數據平臺MDP會將企業各種自由數據,包括CRM數據、交易行為數據以及官網數據等,和第三方數據一起收集起來,并對這些數據進行關聯和打通,一起存儲到大數據平臺MDP中去。

我們針對企業不同的業務,建立多個模型,例如智能推薦模型,用戶畫像模型,消費預測模型,商圈聚類模型等等,這些模型作為插件插入到我們的大數據挖掘平臺DataInsight中去。

我們可以將原始數據從MDP中取出,進過DataInsight中模型的計算之后,生成最終的結果數據,結果數據將送入用戶畫像系統和推薦系統的離線部分。

用戶的推薦系統分為在線和離線兩個部分,離線推薦的結果就是DataInsight中計算出來的結果。在線推薦系統將會接收一個在線的推薦請求,通過客戶畫像系統和離線推薦結果,并結合當時的一些場景,共同計算出最終向用戶推薦的物品。

明略的精準營銷系統已經應用到了個性化推薦、精準營銷、用戶洞察、廣告投放等多個領域,并取得了良好的效果。

智能推薦算法

和傳統的協同過濾算法不一樣,這個算法是采用了分類的思想,通過分類的方法來實現推薦的。

首先,在進行推薦之前,我們必須明確推薦的目標。那就是向用戶推薦用戶感興趣的物品。這里的物品可以是商品,也可以是廣告,甚至是文章、電影、音樂等等。

然后我們需要去尋找解決這個問題所需的數據。我們有物品內容數據庫,用戶CRM數據庫,以及用戶行為數據。

解決了目標和數據之后,我們就需要采集一批有標注的樣本。因為是采用的分類算法,這是有監督的算法,所以標注樣本是建模的第一步工作。標注就是通過人工來判定用戶是否對某個物品感興趣。

標注問題解決后,我們就需要從數據中提取特征。我們的特征分為3類: 物品自身屬性 ,比如我們推薦的是手機,手機型號,手機價格,手機顏色都是物品的自身屬性。其次,我們要提取 人的屬性 ,比如人的性別、年齡、收入、教育程度一類。最后,我們還需要知道 人和物品的交互關系 ,他是瀏覽過商品還是加入過購物車,還是點擊過商品,甚至購買過該商品。除了和推薦的商品之間的關系之外,我們還可以將用戶和其他商品之間的關系也作為特征。

這樣,我們就可以通過分類算法去建立模型了。常用的分類算法我們都可以嘗試,諸如GBDT,邏輯回歸,SVM等等。

當模型建立完畢之后,我們就可以得到分類結果了。分類結果是某用戶對某商品是否感興趣,以及感興趣的程度。感興趣的程度我們可以通過概率來表示。

有了分類結果還不是我們最終的推薦結果。我們根據分類概率對結果進行排序,最后選出TopK個結果作為最終結果返回。

設備診斷方案

我們的第二個案例是有關設備診斷方案的。

我們知道,工業4.0是目前比較火熱的一個話題。而設備診斷正是工業4.0中非常重要的一個應用。

設備診斷又分為 故障診斷 和 故障預測 兩大類。故障診斷是當一個設備出現故障,我們需要辨別該故障的類型。故障預測是我們要預測出某個設備在未來會不會出現故障。這是兩個截然不同的問題,但是處理的方法是類似的。

故障診斷和故障預測已經在多個行業中得到應用,并且已經取得了非常突出的效果。

明略的故障診斷方案如下圖:

首先,各種設備的數據通過ETL匯聚進大數據平臺中去。這些數據包括傳感器實時數據,設備歷史數據,時間歷史數據等等。

然后,在DataInsight中建立故障診斷和故障預測模型,來對原始的數據進行分析,并得到診斷和預測結果。

DataInsight中的模型會部署到生產系統中去,通過API和故障診斷和故障預測應用進行交互,提供最終的分析結果給到應用,在應用中根據分析結果進行各種統計和可視化的展現。

進行故障診斷和故障預測建模有兩種方式,其一是傳統的方式,其二是通過深度學習的方式。

這個過程中首先我們要對故障進行標注。對于故障診斷,我們要標注的是何種類型的故障,對于故障預測,我們要標注的是有沒有發生故障。標注的工作是專業性極強的工作,一般需要用戶的專家來進行標注。

對于傳統方法而言,最復雜的部分是特征選取。上文我們也講到,只有那些有強區分度的特征才能有效的支持最終的模型。所以,需要由業務專家來指導如何從原始數據中提取特征。這就需要將業務專家的經驗程序化,將人的知識變為機器能夠處理的方法。這是非常困難的。

當特征提取完了之后,我們會采用分類算法來訓練模型,最終得到故障診斷和故障預測的結果。

深度學習

在傳統方法之外,我們還可以通過深度學習的方法來進行故障的診斷和預測,深度學習方法示意圖如下:

這個過程中首先我們要對故障進行標注。對于故障診斷,我們要標注的是何種類型的故障,對于故障預測,我們要標注的是有沒有發生故障。標注的工作是專業性極強的工作,一般需要用戶的專家來進行標注。

對于傳統方法而言,最復雜的部分是特征選取。上文我們也講到,只有那些有強區分度的特征才能有效的支持最終的模型。所以,需要由業務專家來指導如何從原始數據中提取特征。這就需要將業務專家的經驗程序化,將人的知識變為機器能夠處理的方法。這是非常困難的。

當特征提取完了之后,我們會采用分類算法來訓練模型,最終得到故障診斷和故障預測的結果。

深度學習

在傳統方法之外,我們還可以通過深度學習的方法來進行故障的診斷和預測,深度學習方法示意圖如下:

比起傳統的方法,故障標注這一步是省不掉的,因為我們用的還是一個有監督的方法,這個方法必須要有一批標注好的樣本。

和傳統方法不一樣的是,我們直接將樣本送入深度學習算法,常用的如卷積神經網絡去進行訓練,來得到最終的故障診斷和預測的結果。

相比傳統方法,深度學習方法省卻了特征提取的過程。我們通過深度學習算法直接從原始數據中學習,省卻了專家指導的過程。深度學習方法甚至能夠學習到專家所不知道,或者在專家潛意識內但無法表達出來的特征。通過深度學習算法出來的模型,其效果往往好于傳統方法的模型。

但是,深度學習算法對 數據量的要求 非常大。只有有大量訓練樣本才能使用深度學習。這在現實的工作中可能是一個問題。

Q&A

Q1:數據互聯行業主要是指哪些業務?

A1:數據互聯是明略將第三方數據引入到企業中和企業自有數據結合起來去做數據挖掘的業務,這個業務需要對第三方數據如何與企業數據融合,去進行數據挖掘有比較深的理解.

簡單的說,就是幫助用戶分析需要什么樣的數據,以及從何處去獲得這些數據,外部數據和內部數據如何打通,如何去數據挖掘.

Q2:請問領域知識和數據專業知識哪個在實際工作中起的作用更大?

A2:領域知識和數據專業知識應用的場景不一樣。在進行數據挖掘之前,我們首先需要有領域知識。必須明白要解決的問題是什么。只有有了領域知識,并且有數據知識,才能把業務轉化為數據挖掘的問題,在進行數據挖掘過程中,數據挖掘知識可能是更關鍵的,因為你要知道如何去解決這個問題。但是,進行數據挖掘時,還必須根據業務對模型進行調整。

剛才我也說了,模型調優必須建立合理的評價指標。這個評價指標根據不同的業務可能是不一樣的。所以必須有業務知識才能知道如何去調優,才能知道什么樣的模型是符合業務需要的,所以,在實際的數據挖掘過程中,領域知識和數據挖掘專業知識都是非常重要的,如果缺乏了任何一種,可能都很難取得比較好的效果。另外大數據挖掘中大數據處理能力也很重要,如果不會處理大數據,或者沒有良好的編程能力,也是很難做好的.

Q3:請問一下明略大數據在特征工程上有哪些比較好的經驗呢?

A3:其實特征工程是一個非常dirty的活,需要大量的嘗試性工作,明略的經驗就是,在做特征工程時,了解業務是第一位,然后需要深入的去調查客戶的每一張表,搞明白每一張表的每一個字段,以及字段間的關聯關系,我們在實際工作中,經常要調研幾百張表去找到我們需要的數據,此外,作為一個合格的數據挖掘人員,或者數據科學家,敏銳力非常重要,能夠結合業務知道可以從數據中提取哪些特征。特征提取出來之后,是否是一個好的特征其實是不知道的。我們可以大膽的嘗試,多選取一些特征過來。然后在通過特征選擇去進行篩選。特征工程是實際建模中最耗人力的過程。我們建模大概70-80%的時間都耗費在這個上面。

Q4:請問在進行數據挖掘之前的怎么解決數據質量問題?

A4:坦白的說,數據質量也是困擾我們的問題,目前我們遇到的客戶,坦白的說數據很多都是碎片化的。可能是因為之前他們忽略了某些數據的收集,或者他們的數據只是總體樣本的一小部分,對于第一種客戶,我們會幫助他們制定如何去收集更多的數據,只有數據有了積累,數據質量問題才會解決。對于第二種客戶,我們會幫助引入第三方數據,用第三方數據來補充客戶現有的數據,大數據的數據質量差是有目共睹的,但是,正是由于數據量大,數據類型多,我們才能從大數據的沙子中挖到金子。如果傳統數據是富礦石,大數據就是貧礦石,大數據數據只能以量去取代質。

Q5:目前未回答問題中排名最高的是這個:二分類分類算法中,負面情況占比很小,訓練集數據負面數據如何按比例分?訓練集需要調高負面數據的比例嗎?對算法有什么影響?

A5:分類問題中對正負樣本的平衡是必須的,這個也是影響最后分類結果的一個很重要的因素,如果樣本不平衡,能做的事情是樣本增益和樣本抽樣。比如正樣本遠遠小于負樣本,可以對正樣本進行復制,或者加上隨機擾動來擴充正樣本,或者直接對負樣本進行抽樣。達到一定的正負樣本比,這樣最終的效果會比較好。我們的經驗是正負樣本比1:5左右比較適合,達到一定的正負樣本比,這樣最終的效果會比較好。我們的經驗是正負樣本比1:5左右比較適合。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 建湖县| 岳普湖县| 渝北区| 沾益县| 旌德县| 额敏县| 广德县| 苗栗市| 华池县| 巴塘县| 南安市| 盐山县| 麟游县| 曲靖市| 博白县| 阜阳市| 雅江县| 闵行区| 岚皋县| 福鼎市| 两当县| 黑山县| 日照市| 惠来县| 专栏| 乌兰察布市| 格尔木市| 县级市| 武川县| 广昌县| 随州市| 灵山县| 阿坝县| 张掖市| 汉源县| 中方县| 泾川县| 茌平县| 阿荣旗| 阜宁县| 房产|