大數(shù)據(jù)建模與數(shù)據(jù)模型工具
一、什么是大數(shù)據(jù)
? ? ?? 大數(shù)據(jù)一般指在數(shù)據(jù)量在10TB以上的數(shù)據(jù)集, 通常有以下5個特點:
1. 容量(Volume):數(shù)據(jù)量大,數(shù)據(jù)量的大小決定所考慮的數(shù)據(jù)的價值和潛在的信息;
2. 種類(Variety):數(shù)據(jù)類型多,包括但不僅限于文本,音頻,視頻以及圖片;
3. 速度(Velocity):指數(shù)據(jù)產(chǎn)生和獲取的速度快;
4. 低價值密度(Value):數(shù)據(jù)中的有價值數(shù)據(jù)量級較小;
5. 真實性(Veracity):數(shù)據(jù)質(zhì)量因數(shù)據(jù)來源以及記錄方式等影響因素的不同,會出現(xiàn)較大的差異,而這種差異性會極大程度地影響數(shù)據(jù)分析的精確性;
簡單說來,大數(shù)據(jù)建模就是指利用相關(guān)的計算機技術(shù)從大數(shù)據(jù)中挖掘數(shù)據(jù)特征,并用量化理論數(shù)學(xué)化數(shù)據(jù)特征關(guān)系以描述業(yè)務(wù)需求和模式的一種方法體系。
?
二、我們要如何學(xué)習(xí)并掌握這個方法體系呢?
1、首先是豐富的理論知識儲備。
? 必須掌握和了解:計算機基礎(chǔ);數(shù)據(jù)分析軟件;機器學(xué)習(xí)算法基礎(chǔ)/進階;統(tǒng)計分析基本方法;計量模型體系以及數(shù)據(jù)庫基礎(chǔ)。
? ? 建模數(shù)據(jù)的抽取,清洗和加工以及建模算法的訓(xùn)練和優(yōu)化會涉及大量的計算機語言和技術(shù)。比如:數(shù)據(jù)查詢語言SQL;數(shù)據(jù)環(huán)境Hadoop和Spark;數(shù)據(jù)操作系統(tǒng)Linux;數(shù)據(jù)分析軟件R、Python、SAS、Matlab等。
?? 特征工程涉及到統(tǒng)計/數(shù)學(xué)/信息論/計量等學(xué)科的基本概念。比如:變量的均值;分位數(shù);峰度;譜;信息熵;cosi;衰退速率以及馬氏距離等。?
? ? 建模階段涉及多種量化模型,比如:統(tǒng)計模型;計量模型;機器學(xué)習(xí)模型;復(fù)雜網(wǎng)絡(luò)等。比較常見的模型有:回歸分析模型;隨機森林;時間序列;神經(jīng)網(wǎng)絡(luò);SVM等。
? ? 想要在實際的項目中自如的運用這些模型算法,不僅僅需要了解基本的數(shù)學(xué)原理,還需要深入掌握對應(yīng)的計算機語言實現(xiàn)。至少要會在主流的分析軟件中調(diào)用算法包,更高階的要求是能自己實現(xiàn)算法的編寫和精進。只有這樣才能相對正確地設(shè)計并依據(jù)實際數(shù)據(jù)結(jié)構(gòu)優(yōu)化算法,得到各方面表現(xiàn)都相對優(yōu)異的模型。
2、其次是積累實戰(zhàn)技能。
? ? 實戰(zhàn)是將理論和現(xiàn)實結(jié)合重要一環(huán),對于那些無法在實際工作中積累大數(shù)據(jù)建模經(jīng)驗的同學(xué)來說,參加各平臺的數(shù)據(jù)建模競賽也許是個不錯的選擇。
? ? 已被谷歌收入旗下的美國著名大數(shù)據(jù)建模競賽平臺Kaggle、Analytics Vidhya平臺上的Hackatons、國內(nèi)天池大數(shù)據(jù)競賽、DataCastle等都是比較不錯的競賽平臺。
?
3、那些恐怕書本上較少能夠直接獲取,需要大量實踐以及項目經(jīng)驗中獲取知識
? 比如特征工程中缺失值處理、特征構(gòu)建、變換等等,取決于模型方法、數(shù)據(jù)、業(yè)務(wù)目標等。除了基于之前提到過的量化指標構(gòu)造的特征,最后對模型表現(xiàn)貢獻最多的特征往往是那些構(gòu)造邏輯和業(yè)務(wù)邏輯掛鉤非常緊密的特征。
這里舉兩個例子來說明。
例1:異常的交易風(fēng)險,通常表明客戶存在違約或者欺詐的風(fēng)險,那么如何去構(gòu)造特征來描述異常交易風(fēng)險呢?
可以是統(tǒng)計指標方差、變異度、數(shù)學(xué)指標馬氏距離;
也可以是業(yè)務(wù)邏輯“過去3天的交易金額相較于歷史水平漲幅大于100%”。
后者顯然不專屬于任何一門學(xué)科,它來自于對業(yè)務(wù)的理解和消化。
例2:在構(gòu)建線性模型時通常會對變量間的非線性關(guān)系做線性數(shù)學(xué)變換(Log),而在實際的操作中,需不需要做變換以及如何變換是與具體的模型形式掛鉤的。
神經(jīng)網(wǎng)絡(luò),隨機森林等模型,是不需要做線性變換的,反而會傾向于對特征做離散化處理。
模型訓(xùn)練調(diào)整參數(shù),需要在心中有一桿bias variance的秤,揣著一把奧卡姆剃刀,方能建一手好模。
? ? 同樣,模型算法的選擇需要考慮的不僅僅是模型表現(xiàn),還需要考慮成本。
? ? 因為建模是一方面,模型能夠?qū)嵤┥a(chǎn)是另一方面。結(jié)構(gòu)復(fù)雜和特征量大的模型往往意味著背后需要大量的計算資源,人力資源和時間資源支持。模型的現(xiàn)有表現(xiàn)和未來可能的衰減速度值不值得耗費大量人力物力去生產(chǎn)部署,部署后模型帶來的效益是否能在長期內(nèi)沖銷成本也是建模人員需要去考慮的事情。
? ? 最重要的是,需要意識到大數(shù)據(jù)建模只是解決問題的一種方法,與其他任何一種解決問題的途徑手段在本質(zhì)上并無不同。
?? 建模前對業(yè)務(wù)目標的了解,對建模必要性的分析,對模型目標變量的刻畫以及對建模樣本的選取等問題反而比建模本身更值得引人關(guān)注。
? ? 以前端風(fēng)控業(yè)務(wù)中的反欺詐識別為例,如何精確地定義欺詐行為是建模前需要解決的第一要事。如果對欺詐的定義有偏差,即使后續(xù)的算法表現(xiàn)優(yōu)良,模型也無法最大程度地服務(wù)需求,基于不準確的定義識別出的“欺詐行為”不再符合對業(yè)務(wù)的定義,整個建模工作在某種程度上也失去了本來的意義。
?? 就像是本來要找臉上有斑的人,由于錯誤的認為“斑”就是“痣”,最后找了臉上有痣的人,雖然臉上都有東西,但卻再也不是對的人。
?? 對于專業(yè)的modeler來說,真正花費在建模上時間恐怕不會超過他們?nèi)粘9ぷ鞯?0%。
? 畢竟建模技術(shù)的實現(xiàn)容易,而讓模型最大程度地的滿足業(yè)務(wù)需求,發(fā)揮商業(yè)價值則需要花費非常多的心血。
三、大數(shù)據(jù)建模功能會涉及哪些工作?
第一步是業(yè)務(wù)理解和業(yè)務(wù)梳理,將業(yè)務(wù)問題抽象成數(shù)學(xué)問題。
? ? 對應(yīng)的是需求和產(chǎn)品的職位,要求業(yè)務(wù)溝通能力,要求對所在行業(yè)的業(yè)務(wù)知識和運營有了解。
第二步,數(shù)據(jù)探索。
? ? 一般在和業(yè)務(wù)初步確實問題后要取數(shù)據(jù),做數(shù)據(jù)探索,確定和證實前期的問題是不是真問題,還是假需求,如果是真問題,則確定下一步問題方向。這一步要求數(shù)據(jù)庫,探索性數(shù)據(jù)分析,問題分析等技能。相應(yīng)的是BI的職位,有些公司統(tǒng)稱數(shù)據(jù)分析。
第三步,數(shù)學(xué)建模。
? ? 也就是核心的數(shù)據(jù)挖掘算法。在工業(yè)屆,都有現(xiàn)在的工具,主要時間都花在特征挖掘和調(diào)參方面。
第四步,提出解決方案。
?? 即從模型結(jié)果出發(fā),對應(yīng)的業(yè)務(wù)改進方法是什么,而不是準確率是多少,業(yè)務(wù)關(guān)心的是能不能提高收入,模型怎么樣他們既不關(guān)心也看不懂。
? ? 在有些公司,對數(shù)據(jù)挖掘要求不深入,那么數(shù)據(jù)分析是什么都做,有些公司,特別是乙方咨詢公司,要求什么都要攻,對甲方是一條龍服務(wù)。在大部分公司,四個方面的能力都是要求的,缺少對業(yè)務(wù)的理解,算法工程師容易陷入模型中自嗨,導(dǎo)致最終做出來的東西業(yè)務(wù)方不用。
?? 從上面分析,硬技能,首先是數(shù)據(jù)庫,軟件應(yīng)用,加mysql,Oracle, python, spark 等,其次是數(shù)學(xué)知識模型算法等稍微有點難度的東西。
軟技能,就是溝通,以及對問題的思考和分析能力。
? ? 我認為,硬技能容易學(xué),但軟技能不容易學(xué)。剛?cè)胄械娜丝傁矚g強調(diào)算法,模型,大數(shù)據(jù)框架,這很正常,何為后端人員也許做的就是這些。但如果想要走得更遠,做得更深,業(yè)務(wù)能力和問題分析能力的重要性就突顯出來了。
?? 最后補充一句,大數(shù)據(jù)行業(yè)職場一般有兩條線,一是業(yè)務(wù)線,要求梳理業(yè)務(wù)問題,分析,建模。另一條是開發(fā)線,就是構(gòu)建高性能大數(shù)據(jù)分析平臺,供建模人員和業(yè)務(wù)方使用,提高公司運營效率。
?
四、大數(shù)據(jù)模型工具
? ?? 當今的商業(yè)決策對基于海量 的數(shù)據(jù)依賴越來越強烈,正確而連貫的數(shù)據(jù)流對商業(yè)用戶做出快速、靈活的決策起到?jīng)Q定性的作用。建立正確的數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)才能保證最好的結(jié)果,這個過程叫做數(shù)據(jù)建模。在實際行業(yè)運用的過程中,為了避免認為錯誤并且加快進度,我們需要使用專業(yè)的軟件來幫助我們建立數(shù)據(jù)邏輯模型和物理模型、生成DDL,并且能夠生成報告來描述這個模型,同時分享給其他伙伴。下面所列出的工具都是精挑細選的數(shù)據(jù)建模工具,推薦給大家使用。
?
1、PowerDesigner
PowerDesigner是目前數(shù)據(jù)建模業(yè)界的領(lǐng)頭羊。功能包括:完整的集成模型,和面向包含IT為中心的、非IT為中心的差異化建模訴求。支持非常強大的元數(shù)據(jù)信息庫和各種不同格式的輸出。PowerDesigner擁有一個優(yōu)雅且人性化的界面,非常易懂的幫助文檔,快速幫助用戶解決專業(yè)問題。
2、ER/Studio
ER/Studio 是一個支持多平臺環(huán)境的直觀數(shù)據(jù)建模工具,并且本地集成了用于處理大數(shù)據(jù)平臺,例如-MongoDB和Hadoop Hive。它能夠進行正向和逆向工程,并且擁有“比較合并”功能,能夠輸出例如XML、PNG、JPEG等格式文檔。內(nèi)建自動執(zhí)行任務(wù)功能支持當前流行數(shù)據(jù)庫平臺。ER/Studio功能非常強大,擁有直觀的界面和很好的用戶支持特別易于馬上開始工作。
3、Sparx Enterprise Architect
Enterprise Architect是一個擁有豐富功能的數(shù)據(jù)建模工具。自詡是高性價比的明智之選。Enterprise Architect幫助企業(yè)用戶快速建立強大的可維護的系統(tǒng),而且很容易在共享項目中擴展到大型的協(xié)作團隊中去。Enterprise Architect 同樣有動態(tài)運行模擬模型的能力,用以驗證模型和更加正確和深入的理解原來商業(yè)系統(tǒng)運作的方式。
4、CA ERwin
ERwin 也是業(yè)界領(lǐng)先的數(shù)據(jù)建模解決方案,能夠為用戶提供一個簡單而優(yōu)雅的界面同時處理復(fù)雜的數(shù)據(jù)環(huán)境問題。Erwin的解決方案提提供敏捷模型,同時元數(shù)據(jù)可以放在普通的數(shù)據(jù)庫中進行處理,這樣就能夠保證數(shù)據(jù)的一致性和安全性。Erwin支持高度自定義的數(shù)據(jù)類型、APIs,允許自動執(zhí)行宏語言等等。Erwin還建有一個很活躍的用戶討論社區(qū),使得用戶之間可以分享知識和各種經(jīng)驗。
5、IBM - InfoSphere Data Architect
InfoSphere 是一個很創(chuàng)新的、運行在開源平臺-Eclipse上的數(shù)據(jù)建模工具。Infopshere主要聚焦于一下三個主要的特性:高效、簡潔、高度集成。InfoSphere能夠幫助商業(yè)用戶建立邏輯、物理模型圖,并且之后能非常方便的在各種不同的應(yīng)用和系統(tǒng)中進行使用。InfoSphere是一個端到端的解決方案,可以快速高效地用在建立、部署、更新數(shù)據(jù)模型。同時也非常簡易的集成了IBM的其他相關(guān)產(chǎn)品。
以上便是推薦的大數(shù)據(jù)建模工具,他們在數(shù)據(jù)建模方面帶來的效率幾乎是大家公認的,用好上述工具將讓你能力得到再一次躍遷。
