天天看點

門外漢掌握資料分析處理技術的路線圖

總述

大資料和人工智能時代,資料分析是個熱門話題,資料分析師貌似也是個熱門職業。很多門外漢想學,但面對浩瀚繁雜的技術,也搞不清該從哪裡開始。于是,經常有人問這個問題,當然還有問得更具體的,怎麼能學會SQL啊,要不要學Python啊,其實背後經常都是一回事。

這裡刻意把“處理”也挂上,因為資料分析并不會單獨存在,用來分析的資料常常還需要自己去準備去整理,這些都是資料處理的範疇。比如把一堆Excel給合并起來,也許下一步的任務就是分析了,但這一步卻少不了。還有些事情,比如用花名冊生成員工卡,說成是資料分析顯然不太合适,但這也是日常工作中要幹的活。這個貼子就把這種折騰資料的事都放一起說了。

另外,這是個面向門外漢的話題,講到能進入專業狀态之後就不能再說了,之後相關的技術更多更繁,但能走到那一步的同學,自己都門兒清了,用不着再看這個貼子的唠叨了。

還要特别強調一點,資料分析并不隻是個技術問題,甚至可以說主要問題并不在技術。有很多同學可能認為隻是掌握一些相關的技能後就會做資料分析了,這就徹底搞擰了。做好資料分析的重點在于業務知識,也就是你要知道有啥需要被分析。業務經驗充分的人用很原始的技術,也常常比毫無業務感覺的人使用高檔技術能分析出更多有意義的結果。這就像掌握各種車輛的駕駛隻是某種技能,而知道要把貨運到哪裡能賣出好價錢才是更重要的。用手推車運貨,隻要運對了地方,有可能會比用汽車運貨掙到更多的錢。做資料分析不要迷信技術和工具,如果你本來還不知道做資料分析的業務目的,那學會技術和工具也是白搭。而且,同類同級别的技術和工具通常也差不多,對于資料分析目标而言差别很小(奔馳寶馬對于個人乘坐并無差別),刻意選擇的意義不大。

言歸正傳,這篇主要還是講技術,畢竟掌握技術還是能大幅提高工作效率的。

我們從最基礎的講起:

第0級,Excel

你沒看錯,人人都會使的Excel就是最基礎的資料分析和處理技術,也就因為Excel幾乎人人都會使,是以這一級叫第0級,沒把它編進序号。

Excel能幹啥和怎麼幹,這裡就不多說了,網上資料太多。而且,以門外漢自居而關心資料技術的同學,多少也都會使點Excel。這一關對大多數人來講可以認為是能過去的,但卻不能不列出來。如果覺得Excel使得還不熟(比如不會用VLookup,不會寫if),那自己去補課了。反正這是基礎中的基礎,現在再牛的資料分析師都繞不開這玩意兒。

第1級

1、靈活BI

靈活BI就可以幫我們做的分析稱為多元分析了,也就是各種分類方式去看統計資料,比如按月份看銷售額、按地區看産量、或者幾樣一起看。哪一塊彙總數大了,可以再鑽進去看看怎麼回事,比如北京銷售額不錯,那要看看是不是海澱人民購買熱情特别高。還能把這些統計資料畫成各種圖形來看,關聯起來能更形象也更容易發現問題或規律,這就是妥妥的資料分析了。分析出的結果做個報告給老闆看,升職漲薪那都不在話下。

靈活BI的代表産品主要是國外的幾家,PowerBI、Tableau之類;其實Excel本身也有個透視表,可以做基本的多元分析,但細節做得還不夠好,而且它的這功能也可以算作第1級技術了。

國産的報表工具和BI廠商也有很多在喊靈活BI,然而,坦白地說,木有一個合适的。國産BI産品(下面也會說到)老實說就技術水準而言,做得還挺好(其實從某種角度上看比國外産品的技術含量更高),但都沉重得很,根本不靈活,原因說起來挺複雜,初學者暫時也了解不了。反正如果看到有非專業人員自己折騰國産BI産品分析出啥結果了,都可以認定為是廠家編的案例在忽悠你。就記住,現在沒有簡單易用且面向非技術人員的國産靈活BI産品,未來大機率也沒有。

2、潤乾報表

前面說了,我們還會碰到用花名冊生成員工卡這種煩人事,靈活BI幫不了這個忙,潤乾報表就擅長了。

潤乾報表不也是個傳說中的國産BI類産品嗎?這剛說了就打臉?

非也,潤乾報表是國産報表工具(也算BI吧)不假,但在第1級技術中,它不是以BI技術出現的,它和其它國産貨一樣,并沒有靈活BI的本事,它就是一個做報表的工具。

Excel做報表沒問題,但隻能做靜态的,行列根據資料量變化的表,你不會做吧,如果再有多片多層分組交叉的情況,資料變了每個月都要重做一次,那真是很累很累的,而且稍有不慎就會搞錯。這種出報表的事,你說它算不算資料分析呢?這并不重要,反正日常工作中總要做,而且靈活BI們通通搞不定。

對于潤乾報表來講,這些事就很easy了,做一次模闆之後,資料變了一鍵搞定,動态行列多層報表毫無壓力。中國人的報表技術天下第一,這可不是吹的。

那為啥隻提潤乾報表,其它國産報表工具不行嗎?

因為隻有潤乾報表提供了面向非專業職場人員的使用方式以及相關的課程資料,确實也有其它報表工具也能做複雜報表,但都是面向專業技術人員的(也許哪天也有産品會加入到職場市場),處在你這一級的同學搞不定(再往後學就可以啦)。

靈活BI和潤乾報表代表的資料分析和處理算是正常技術,所涉及的運算難度也就是和四則運算相當(大部分是加法,還有取最大/最小等等),不超過國中水準,是個人都能懂。但這些運算還有可能會涉及各種條件,比如隻加500塊以上的訂單、隻看北京3月的情況等等,難度不大,煩度很大。傳說中高大上的BI分析其實就些東西,和我們平時用Excel做個報表在細節上沒區分,隻是自動化程度更高,這玩意兒看破了不神奇。

3、易明模組化

還有另一條線的資料分析技術,也就是現在很熱門的人工智能(資料挖掘、機器學習、...),這裡涉及的運算要複雜得多(不過也離不開正常資料處理技術來準備資料),動不動就是機率論、統計學之類的公式了,這一點都不簡單了,遠遠超出中學水準,沒好好念數學課的大學生都搞不懂。

按說,這麼複雜的技術不該是第1級的事情了。

不過,有了這個易明模組化就可以了。

易明模組化把這些複雜的人工智能算法都封裝起來了,使用者隻要把資料準備好(就是Excel的表格即可),丢進去,它就能自動建出模型了,然後就可以預測了。因為這裡固化了頂尖統計專家數十年的經驗,對于大部分商業場景,它比不熟悉機器學習算法的程式員做得還好。

那為什麼又把這東西單提出來?沒有其它自動人工智能的産品嗎?

有,但又是太沉重,你還是搞不定,不适合這一級的選手。

這三種技術(産品)門檻都比較低,也就是要寫點公式,僅僅比Excel難一點點,可以并列為第1級。

易明模組化其實使用起來最簡單(連公式都很少填),但需要了解一些資料挖掘知識(算法不用懂,要對模組化預測的機制有點概念,也要學會如何評價模型的好壞),而且人工智能業務也顯得高端一點,算作1.5級也行吧。

第1級的狀态,還不需要學會程式設計式(如果寫公式不算程式設計的話)。

第2級,SPL

然後,就要開始學程式設計了。

有些事會涉及更複雜的計算,雖然每一步還是四則運算難度,但步驟多了用一個公式很難寫出來,要分幾步才行,過程中還可能有判斷;更麻煩的是有些要重複做N遍的事,如果都是手工操作那會累死人,比如把500個Excel合并拼起來或者把一個Excel拆成500個小檔案。這裡有本書http://c.raqsoft.com.cn/article/1649301821440 ,裡面絕大多數問題都是實際發生的,而用Excel以及第1級技術卻很難實作。

如果學會程式設計,這些就不是個事了。

這個道理好懂,但為啥是這個SPL,程式設計語言不是很多嗎?

是很多,但在這一級裡沒有别的了。

做資料分析處理,基本都是在處理表格式的資料,這有個學名叫結構化資料,如果所學的程式語言不擅長對付結構化資料,那隻能拿着做做算術題玩,對于資料分析處理卻無濟于事。然而,能很友善地處理結構化資料的程式語言就不多了,包括Excel裡自帶的VBA都不行,算下來就隻有SPL和SQL,還有Python看起來也能對付(有很多教育訓練班在宣稱),但SQL和Pyhton都是專業級的技術(後面會說),出現在第2級太早了。

關于業餘人員學程式設計,還可以參考這個:http://c.raqsoft.com.cn/article/1612232365820

以上是業餘級别的東西。之後就可以進入專業級别了,也就是程式員的世界。

第3級

1、SQL

程式員世界裡的資料分析處理技術,SQL是首當其沖的。資料庫可能是存儲最多資料的地方,而這裡的資料主要就是用SQL來耍,不會SQL很難在資料圈裡混。

簡單SQL長得像英語,文法學起來很容易。如果已經掌握了結構化資料的概念和運算,估計也就看上幾小時文法書就能上手寫查詢了,按說不應該是個專業級的技術。但是,你學會了沒地方用啊,得有個資料庫才能跑SQL,安裝資料庫以及把資料倒騰進去來做查詢,都是很專業的任務,會折騰這種事的你已經是個半職業的程式員了。

倒是可以用SPL來學,SPL中也實作了常見的SQL,可以讓使用者針對檔案執行SQL。不過,如果學會了SPL,在處理分析檔案資料時也沒必要學SQL了,SPL的運算處理能力要遠遠強于SQL。

這裡有個貼子講初學者怎麼學SQL:http://c.raqsoft.com.cn/article/1619312554522

重複一下這個文章中最後強調的:SQL入門容易,但精通很難,複雜的SQL始終還是很複雜的。三行五行的簡單SQL通常隻會大量出現在教科書和教育訓練班,現實中用于做資料分析的SQL語句,說起長度時我們通常是用K(千字元)而不是用行作為機關的。

它還是在這一級比較合适。

2、國産報表工具與企業BI軟體

現在該輪到說國産的報表和BI軟體了,這些東西可以看成是第1級的靈活BI和潤乾報表所做事情的企業級版本。

企業應用建設時也會用到報表和BI功能,這方面國産軟體的技術要比國外做得好得多得多得多(這可能是唯一一個國産強于國外的基礎軟體領域了)。國内幾家知名的都還不錯,當然也各有特色,這裡就不點名了。掌握這些産品和技術後,作為程式員要搞企業級的BI和報表分析業務時,就會得心應手了。

使用這些技術做出來的系統,就可以給非專業的業務人員使用了。但我們并沒有在第1級提及,因為使用企業内部已經做好的應用系統也不需要專門去學啥技術,按操作規程做就行了,真有難一點的内容,企業也會提供統一教育訓練,是以用不着在這裡說了。

作為系統建設者的程式員,要比使用者懂得更多。學習這些技術(産品)時也要同時學會多元分析、報表模型中更深一點的理論知識了。

弱弱地說一句:國産BI技術含量雖然高,但做出來通用企業BI用處并不大(看這裡http://c.raqsoft.com.cn/article/1612925790144 ,也解釋了為什麼國産沒有靈活BI)。不過可以不用管,反正現在還有客戶肯掏錢,學了這些技術就能有事幹,将來做專用的企業BI也還需要這些知識的。

3、SPL

SPL又來了,它同樣可以作為程式員的武器來做結構化資料的處理和計算。

程式員不是已經有資料庫和SQL嗎?

是,但還有很多場景下沒法用資料庫也就沒法用SQL。程式員也要對檔案資料做處理,有多個資料庫的情況也沒法直接跑SQL,能跑SQL的資料庫叫關系資料庫,還有一堆不是關系資料庫的資料庫,比如MongoDB,還有json,xml這些奇怪格式的資料。這時候,掌握SPL技術就友善多了,它不要求有資料庫,啥場景都能算。

而且,SQL在處理很多有過程運算的時候也不友善,企業應用中常常會出現我們前在說過的長達幾K十幾K的SQL。而大多數情況用SPL要簡單得多,開發效率也就高得多。有過企業報表開發經驗的同學都知道,報表沒完沒了做不完,開發成本極高。而我們的國産報表工具已經把呈現解決得很好了,仍然會出現這種現象,主要就是因為用SQL或Java等去實作資料計算的難度太大效率太低。會了SPL,這些事就會輕松多了。

這一級别的SPL要比第2級的複雜,需要學會如何連接配接資料庫以及各種其它資料源,還要知道如何被應用程式調用等。

4、AutoML平台

再說說人工智能那條線。作為剛進入專業級别的程式員,還很難自己做出複雜的人工智能模型,是以還是要用這些AutoML(自動機器學習)的工具。前面說了,除了易明模組化是個輕量級産品外,業界提供的其它AutoML産品都有點沉重,雖然仍然不需要多少人工智能算法方面的知識,但還是要有點程式員的功底才能折騰得動(不是資料處理的功底,而是搞應用系統部署調試之類程式員本身的本事),是以列到這一級了。

這一類的産品和技術國内外都有一點,國外的更成熟一點,大名鼎鼎的google也在做。其它就不點名了,自己上網搜搜吧。

順便說一句,易明模組化也有程式員的版本,也可以算是AutoML的一種列到這一級。

類似地,這個也可以算作3.5級。

然後呢?然後就進入專業級别的深造期了,那技術就多了。

搞性能優化,用SPL,但重點是高性能算法;玩大資料,用Hadoop/Spark/...;做人工智能學Python,其實更要學的是數學;...。都這級别了,也不用再說了。

好象有個問題,Python的段位會如此之高嗎,不是很多教育訓練班宣稱這是讓職場人員提高工作效率的東西嗎?

沒搞錯,Python是很專業的東西,會Python的人也絕大多數都是重度專業選手,它隻是看起來簡單,用來學習基礎程式設計邏輯是沒有問題,但想學以緻用來處理結構化資料就一點也不簡單了,它完全不像某些教育訓練班宣稱的那樣能讓普通職場人員學會後可用于處理日常工作。這個話題在前面連結的那個零基礎人員學程式設計的文章裡有讨論,有興趣可以找來參考。