工業大數據分析實踐:基於CRISP-DM方法論的再認識
前由
在與工業界交流中,多次被問到工業大數據的實踐方法論。就我個人而言,不喜歡過多談論方法論(行業洞察/實踐經驗/內容積累/問題理解比方法更重要),更不願意再提出一種新的方法論。在與王建民、郭朝暉等專家的交流中深受觸動,必要的流程梳理對協調大家的認識和行動還是很重要,雖然沒有必要再「創造」一套全新的方法論。因此,本文將基於CRISP-DM(Cross-Industry Standard Process for Data Mining)方法論,闡述工業大數據場景下的挑戰及做法,以期對工業大數據實踐提供一點參考。
在CRISP-DM和傳統商業數據分析中,分析題目假設是事先給定的,作為業務理解階段的前置輸入,即分析題目通常由業務分析師(Business Analyst)或業務部門定義提供給數據分析師(Data Analyst)。但在工業實踐中,通常很難實現這樣清晰的分工。在討論CRISP-DM之前,先總結一下工業企業對大數據的一些常見問題,基於這些問題,探討大數據分析課題識別問題,然後再討論CRISP-DM的6個階段中工業大數據領域的挑戰、需求與做法。
工業大數據分析答疑
隨著數據採集能力和計算能力的發展,數據技術在企業經營/生產業務轉型和提升中發揮著重要作用。大數據分析作為數據價值變現的核心技術手段之一,其作用得到充分認可。但很多簡潔(或不帶前提的)的宣傳也給業界帶來了一些誤解。
大數據在商業領域已經有了不少很好的應用。工業作為一個重設計和機理的領域,大數據如何應用,大家還有不少疑問。這裡列舉了一些常見的問題和簡要解析,後面將詳細討論。
Q
需要多少數據才能做大數據分析?
A
?數據量的客觀需求量:數據與問題的匹配(度量指標、關鍵因素完備性、數據質量、正/負樣本平衡性、先經知識等)
?業務人員對數據基礎有個理專業的認識:數據量大不意味著信息量大
?數據分析師要認真務實:認識核實數據,但不要一味要求數據量
Q
大數據分析如何推進?
A
?規劃:業務價值驅動+數據基礎支撐
?執行:業務專家與數據分析的協同
Q
大數據分析是不是不需要業務和領域知識?
A
工業大數據更需要領域知識
?了解數據從哪兒來?如何採的?什麼時候可信?
?領域知識去細化解空間,降低對數據量的要求
?領域經驗指導特徵提取,提高演算法的求解效率,提高模型的可解釋性
?更全面客觀評估模型的適用範圍
Q
什麼樣的模型是一個好模型
A
可被業務用戶消費(consumable)
?極簡原則:在保證性能滿足的前提下,演算法越簡單越好
?可控性:明確給出什麼時候模型不適用
Q
為什麼很多「開箱即用」演算法沒有宣傳得那麼好用
A
?在分析實戰中的重要度排序:定義一個好問題>整理完備可靠的數據>加工好的特徵變數>演算法
?任何演算法都有一定適用前提(了解什麼時候模型不適用比籠統的性能指標有時候還重要),需要嚴格的測試驗證
Q
工業大數據分析需要什麼樣的大數據平台
A
?開發階段:
1)提供全維度數據關聯查詢(時序數據、業務數據、非結構化數據等);
2)支持快速迭代(支撐R/Python/Matlab等工業界常用工具,支持已有單機分析程序的重用)
?部署階段:
業務閉環,對分析模型進行全生命周期管理
分析題目的識別與規劃
分析題目識別的前提是對行業和企業的基本面有一個全面把握,充分利用行業已有的參考模型(比如質量管理中可以參閱PDCA、6-sigma等已有的參考模型)。下面從工業大數據分析能做什麼和如何進行優先順序排序兩個方面進行討論。
工業大數據分析場景
工業大數據的典型分析場景如下表所示。
不同行業的側重點有所不同,高端裝備製造業多強調「服務性製造」和「智能裝備」,化工行業則強調「安穩長滿優「,電子行業以產品質量為核心,石油石化則注重資產管理和生產效率提升。
大數據分析規劃
大數據分析規劃宜採用「業務導向+數據驅動」的方式(如下圖所示)。從關鍵業務目標分解出發,關聯到具體的業務領域(研發、建設、運行、運維、安全環保、銷售、採購等),從重要度和緊迫度的角度,對可能的業務分析問題進行評估。然後,結合初步的因子分解,評估每個題目的所需數據的完備度(Readiness)。綜合業務價值和數據完備度,進行多個項目的優先排序。
業務理解階段(Business Understanding)
在CRISP-DM方法論中,這一階段從業務的角度理解項目的目標和需求,並將其轉為一個可解的數據分析問題,可採用業務流程建模、決策建模等方法,分解業務目標,分析業務用例(use case),釐清關鍵因素,確定分析問題的範圍(scope)。
工業數據分析常常是一個知識嚴重二分的情形。數據分析師對工業過程缺乏深入了解,而業界人員對數據分析的了解相對缺乏。可採用如下所述的三類形式化模型提高溝通協調效率。
系統上下文模型(System Context)
在關鍵要素分析上,工業分析問題的上下文(Context)模型很重要,包括生產、運作、環境、時空等多個方面上下文。只有這樣,數字空間才可能部分反應物理空間。
在裝備製造業,BOM(Bill of Material)是了解上下文的一個好的起點。例如,在風電裝備製造業,需要了解風機工作機理、風電場業務運作機制、設備關鍵動作狀態(比如偏航對風、解纜、降功率運行、保養、故障停機等)。只有這樣數字可能形成對物理世界的一個相對完整的描述與刻畫。
在流程行業,PFD(Process & Flowing Diagram)、PID(Piping & Instrument Diagram)這兩類圖很重要,可以幫我們了解相關化學/物理過程,以及前後環節的相互影響(比如,後面環節的反應速度會通過管道壓力反過來影響前置工序的反應條件)。
系統動力學模型(System Dynamics)
現實中並非所有因素都有數據支撐或直接可以操控的。從可操控性和可觀測性兩個維度將Context model中因素進行刻畫,如下表所示:
基於這樣的分類,形成分析問題過程的因子動力學關係圖,如下圖所示(為突出分析目標,特別將目標量標出)。對於外生變數(特別是不可觀測的)雖然我們無法直接優化,但至少清晰提醒了分析模型的適用前提。
業務用例(Use Case/Scenario)
工業分析問題定義的一個重要內容就是回答誰來用、什麼時候用、如何用。系統用例就是這方面的一個好工具。在刻畫業務用戶、業務流程的基礎上,分析業務對分析模型的核心需求,從而確定分析模型的度量指標。比如,在抽油機故障檢測中,判斷機器狀態是否正常,若異常,給出故障類型。業務需求是降低一線監測人員的工作量,而不是簡單的決策支持。精度達到99%的分析模型也沒有多大用,無法指明哪1%是錯誤的,還是需要全時的人工審查,還不如一個模型可以完全準確的排除30%的樣本,其餘的70%留給人去判斷,或提供初判結果,至少節省了30%的工作量。
這也就是數據分析中常談的誤報、漏報的問題,但和經典N分類問題(N種狀態類型,包括正常狀態和N-1類故障狀態)存在一點微妙區別,現場運作允許分析模型輸出(N+1)類狀態(第N+1類是不確定狀態),將前N類判別成N+1類的懲罰很小(可以留給人去處理),但前N類間的誤判是不允許的(模型給出的結果一定是正確的)。
另外,業務用例的分解也可以幫助大家理性的思考業務問題,避免人為的「創造」技術挑戰。很多原來看起來屬於「故障預測「的業務需求,也許」故障的及時檢測「就可以滿足,但兩者在技術難度上差別可能很大。
比如,對於風機發電機結冰問題,結冰預測需要小尺度的天氣預報,若做到風機層面的預測還需要葉片表面光潔度等信息(否則,解釋不了平原風場的3台相鄰的風機,只有1台結冰,另外2台沒有結冰的現象,這3颱風機同型號同時期建設,地形和周邊環境也幾乎一樣)。但做到結冰檢測基於SCADA風機狀態數據就可以做得比較準確。從業務用例分析來看,風場運維需要是:能在風機嚴重結冰前採取適當措施,避免高載荷下運行對風機造成損害。及時的結冰檢測報警也可以滿足業務需求。
分析問題的規約
數據分析是手段,而不是目的,把數據分析方法應用在一個恰當的位置解決一個有價值的實際問題才有意義。根據上面的分解,可初步把問題規約到四種類型問題,不同問題的應用前提和需要解決的挑戰也略有不同。
本文重點討論數據挖掘類(即狹義的數據分析範疇),也是CRISP-DM方法論的側重點。
● 統計類和專家知識自動化的需求,主要是對工業大數據平台的要求(多類型數據的有機融合、以設備/工藝為中心的全維度數據查詢引擎、非侵入式的數據分析並行化等),可參閱文獻3,4 。業務人員給出業務邏輯,通常不完備、不確定,需要利用大數據進行精細化,比如,「存在2Hz的主振動分量」的業務邏輯已經非常明確,但在變成可自動化執行的引擎前,要細化「2Hz」的範圍區間、「主分量「(佔總能量的15%之上?還是比第二高分量高5倍?)的定義。
● 大數據情形下的運籌優化和經典調度在技術挑戰上沒有本質區別,關鍵是如何定義一個合適的範圍,很多業務因素缺乏數據支撐、很多業務邏輯用數學規劃語言描述太複雜(可以用規則)、約束鬆弛邏輯複雜,實際中常採用「規則+數據規劃」的方式去求解。大數據為運籌優化提供了更多的基礎數據(比如,成本結構、天氣信息、道路交通流量)和預測性信息(如需求預測)的支持,而這些和數據挖掘類問題是一致的。
最後,應該充分認識到數據分析的迭代性。在早期,對問場景、因素的認識很難完備,實際數據與假設是否相符有待驗證。這些不確定性都留給後面的階段,只有經過多次迭代才有可能形成相對完備的問題理解。
數據理解(Data Understanding)
數據理解的目標是確認當前數據是否支撐分析問題,主要任務包括數據質量審查、數據分布,形成數據的初步洞察和直覺判斷力。下面就工業大數據分析中的四個特別之處進行討論。
數據分析的根基:以認真負責的態度去審視數據質量
在工業領域,一種常見數據類型是感測器監測或檢測數據,除了數值質量本身外,還要考慮感測器本身的可靠性和安裝方式,分析感測器的R&R (Gage Repeatability and Reproducibility)。在風電領域,風機測風儀測的風速值是尾流風速,而不是輪轂風速,另外,測風儀的安裝位置本身也可能存在偏差,也可能結冰。
在化工領域,氣體產量不僅要關注其流量(體積),還要關注對應的氣壓和溫度,否則可能會被「虛假表徵」誤導。
在工程機械車聯網分析中,因為施工動態性(如傳統油位感測器數據雜訊太大)、施工環境(數據傳輸存在缺失)、人為破壞、部件更換、感測器及解析程序的升級換代等多種外部因素的共同作用,造成數據質量審查非常繁雜,有些存量數據的質量問題甚至無法解釋(例如,月開工時長甚至超過744小時)。但這些艱苦基礎性的數據治理工作必不可少,否則分析結果可信度很難保證。
在實踐中,可以採用經典的統計方法去發現數值異常,然後不斷深入理解哪些「異常」是系統的動力學特徵(比如爐溫是一個大慣、高時滯的過程)、哪些是控制邏輯行為(比如磨煤機出口溫度的閉環控制)、哪些是測量系統問題、哪些是外部干擾等。只有把數據吃透,後面的演算法模型才有好的基礎。
你以為你以為的不是你以為的:透過業務場景還原,發現隱性質量問題
更為挑戰的是,很多數據質量問題並非常規手段可以發現的,有的甚至連業務人員也沒有意識到。在實戰中,可利用數據去還原典型過程,發掘數據中表現出的「異常」場景,去完善業務上下文的理解。
例如,氣化爐爐內溫度軟測量的一個前提假設是CH4濃度相對穩定,且與爐內溫度密切相關。但實際數據探索中發現其中一台氣化爐並不滿足這樣的假設(CH4濃度逐年上升,工藝對此的猜想是爐子內壁不斷擴大造成的),而這樣的現象過去誰也沒有意識到。
運營和運作數據也有類似問題,比如,備件銷量大不一定反映真正的市場需求,也可能是代理商囤貨(沖業績)。只有把影響數據質量的主要因素考慮全面,才可能做出有意義的分析。
數據量的困境:「大數據」量下的「小數據」信息
另外一個被經常追問的就是數據分析需要的數據量。工業分析問題即使做過獨立性分析後,相關因子也通常成百上千,若嚴格按照全組合覆蓋,需求量遠遠超過現實中可以採集的數量。
假設有20個變數,根據局部連續性假定,每個變數取4個數值就可以很好的擬合整個參數空間,全組合意味則需要條數據(約1千億),即使採集頻率可達1000Hz,也需要近35年的歷史數據。另外,工業過程通常一個運行在精心設計規律下的穩態過程(實際生產中並沒有遍歷整個參數空間),這也就意味著大數據中隱含的信息量其實是「很小」的。因此,關於數據量的問題,我們通常的回答:如果不融入領域認識去消減因子數量,通常你是無法提供「足夠」的歷史數據去覆蓋所有組合情形。
數據的成本意識:數據分析師不要太任性
雖然總期望所有的重要因子數據都能被全量採集,但現實中數據採集是有成本的,同時也受制於當前的技術水平(比如,氣化爐內溫度是很重要的狀態量,但目前的熱電偶等感測器技術還無法長期可靠工作)和安全/環境考慮(比如,長輸油氣管道的壓力感測器只能在閥室或場站部署)。
另外,在設備故障預警或檢測分析中,故障數據是非常稀缺的,歷史的運維數據通常也是不完整的。這些給數據分析帶來了很大挑戰,但同時也應認識到這就是現實(也許永遠都不完美),我們的工作就是在現實的數據條件下進行的(根據數據基礎,修改分析問題的提法,或通過其他信息補償關鍵因子的缺失,或限定分析模型的適用範圍等),而不是任性的一味要求數據。
數據準備(DataPreparation)
本階段目標是建模分析所需的數據加工,包括原始數據抽取、多數據源融合、數據清洗與質量提升、特徵提取。實際分析項目中,特徵加工會佔整個項目時間的40~60%。
針對一些特定領域問題,特徵提取應充分利用已有的專業知識(不要浪費時間用數據分析手段挖掘出該領域早已熟知的規律)。以2009年國際PHM Data Challenge的齒輪箱故障模式研判題目為例,專業組冠軍利用了旋轉設備的典型故障模式(各種倍頻)的領域知識,進行特徵加工,再用數據挖掘演算法,取得了很好的結果,模型的物理含義對現場實操人員也比較容易理解。近年來,深度學習的發展,在一些特定類型的問題上可以降低分析人員的特徵提取工作量,但對關鍵特徵變數的理解在工業分析仍必不可少。
建模(Modeling)
機器學習(或統計學習、數據挖掘)分析理論發展成熟,也有很多明確的指導原則和豐富的演算法工具,因而,建模過程在實際分析項目中花的時間反而不多,因此這裡不再贅述。為保證模型的可消費性(Consumability)而非技術上的自娛自樂,下面僅僅談三點「形而上」的原則。
● 結果要有「新意「:避免挖掘常識(common sense),常識應當作為前處理或特徵變數融入數據分析模型
● 模型應遵循「極簡」原則:用最簡單的演算法去解決問題,不要為了微不足道的性能指標提升而使用看起來「高大上」的複雜模型。為此,就需要抓住問題的主要矛盾,到底是censored data問題、樣本不均衡、模型的魯棒性問題(應對個別極端異常數據)、過擬合(樣本量相對模型參數空間不足)、模型的自適應性和提前性(比如針對宏觀市場的變化,是否要求提前預估還是事後及時適應跟蹤)、模型追求的指標(比如,回歸問題追求是平均精度還是最差底線?分類問題對漏報、誤報的側重點)、模型的可解釋性(對於根因分析,識別哪些因素在什麼情形下重要對改進工藝更有實操性)。
● 模型的可控性和可解釋性:任何模型都是在一定前提假設下對物理世界的簡化,分析模型在建模時候不僅要關心平均性能,還應關心」worst-case」(最壞情形),最好能夠清晰給出什麼時候場景模型不適用(以及對應的處理措施)。對於性能提升,可以解釋清楚其原因。
如前所述,數據分析是一個迭代過程。很多模型性能瓶頸並非來自於演算法,而是來自於業務定義、數據理解、數據準備,例如一些很少發生但重要的業務/生產場景沒有考慮到,一些重要因素甚至沒有包含在當前數據集,一些嚴重的數據質量沒有意識到。因為工業大數據分析技能的二分化,數據分析人員無法獨立窮盡業務描述和數據集範圍之外的情形,而業務專家也不可能思慮萬全。
例如,在與一個國際客戶合作地下管道失效風險評估項目中,根據業務專家和領域調研,我們拿到相對完備的數據集,第一期模型的總體性能還不錯,但就在幾個區域我們發現模型表現不好。
當把這些區域以GIS的形式可視化到業務專家面前,他們很快意識到一個重要因子的缺失(這些區域是圍海造田,圍海造田區的不均勻沉降比其他區域要大很多,這在當前數據集中沒有體現),這些的信息對一個非本地人士/非專業人士來說幾乎是不可能想像到的。
在建模過程中,不是泛泛談模型的性能或數據質量,而是採用」worst-case」驅動的方式去和業務專家交流,告訴業務專家在什麼情形下分析模型工作不好(給出具體的例子),觸發業務專家的思考,藉助專業外腦去發現問題的根因和解決手段。
評估(Evaluation)
建模階段已經對分析模型從數據和技術的角度的進行充分檢驗。評估階段再次從業務的角度審視模型的業務可用性(Actionable),特別要定義清楚模型在什麼情形下不適用,數據模型與業務流程的融合方式(Consumable)。
企業生產與管理是以工藝流程或業務流程為驅動的活動,經典信息化大多就流程(或改造後的流程)進行數據採集/整合和流轉,以提升了業務效率;數據驅動的大數據方法嘗試從數據產生/消費過程和多維度關聯的新視角再次審視其中的蘊含的業務價值。但數據分析的結果若不能落到企業流程(現有的或新創建的),分析模型就遊離在企業現有系統之外,很難實現價值落地。
對於採用已有的成熟模型,本階段尤為重要。任何模型都有一定的適用前提,有些在對外宣傳時候被忽略,有些前提在模型開發時沒有意識到,因此,這些模型是否適用於當下場景需要大量的嚴謹的測試。
部署(Deployment)
部署的目的是保證模型的結果可被業務持久自動地消費(Consume),除了大數據平台的計算性能問題,還應該注意分析模型的全生命周期管理。因為,在工業應用中,材料/工藝/裝備/感測技術的不斷更新。儘可能對部署模型進行密切的性能監控,通過閉環反饋進行模型成熟度評估和狀態管理(試用、正式應用、需更新、退役等),保證生產的持續性和可靠性。
後記
本文以CRISP-DM方法論為基礎,討論工業大數據分析在不同階段的挑戰、需求與做法。CRISP-DM方法論是眾多數據分析方法論的一種。任何數據分析方法論的要旨不外乎以下三點:1)定義一個好問題(有業務價值,技術可解,數據可支撐);2)整理出值得信賴的數據;3)構建一個可被消費(consumable)的模型。一個認真負責、腳踏實地的工業數據分析師應尊重領域知識,了解數據的來源和業務意義,把握分析項目的主要矛盾,以「極簡主義」的思路去建模,將分析技術與業務流程有機結合。
CRISP-DM方法論的六個階段在不同問題中的重要度也不同。例如,有很多經典數據分析問題(如人臉識別、語音識別、文本分析)本身就很具體,這時主要的精力在數據預處理和演算法精度上。
從宏觀層面來講,工業大數據和商業大數據在分析方法論上沒有本質區別,只不過分析對象、數據特點、現有基礎、應用期望等方面存在較大差異而已(詳細闡述請參閱5)。再加上一些簡潔的大數據思維(如從樣本到全量思維;由精確到模糊思維;由因果到關聯思維)、AI等宣傳,若脫離了上下文和應用場景限定,很容易誤導工業大數據的實踐。
方法論為分析項目推進提供了很好的方向性指導,分析項目的成功更離不開數據分析師和業務人員的專業精神和務實態度,以及行業深入理解、相關的案例知識、豐富的實踐經驗、行業演算法庫以及合適的大數據分析平台支撐。
參考文獻
1. 數據質量問題是「技術」問題還是「業務」問題? (https://mp.weixin.qq.com/s/3PEIr6pBeQFDxqCA8oZ5Ew)
2. CRISP-DM, still the top methodology for
analytics, data mining, or data science projects(https://www.kdnuggets.com/2014/10/crisp-dm-top-methodology-analytics-data-mining-data-science-projects.html)3. Cross-industry standard process for data
mining(https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining)4. KMX 產品價值定位(http://mp.weixin.qq.com/s/37cotRNPVyzn7b8YfhhWJA)
5. KMX 功能及特點(http://mp.weixin.qq.com/s/KHNCccxrcR_ox4efl2pNNA)
6. 工業大數據分析的誤區與建議(https://mp.weixin.qq.com/s/XEkNmsl2_r4rs2fgXHTOKA)
推薦閱讀:
※定位未來的自己—數據分析學習計劃
※布隆過濾器在實時指標計算中的應用
※MaxCompute Optimizer之表達式約化
※數據產品經理之道
※未來營銷的闖關高配:大數據+虛擬現實+人工智慧