數據時代程序員必備技能:數據可視化

說到數據可視化,大家可謂耳熟能詳,設計師、數據分析師、數據科學家等,都用各種方式各種途徑做着數據可視化的工作…

實際上,我們每一個人,天生具有可視化思維,甚至經常性地做一些可視化操作。

比如,做工作總結 PPT,要儘量字少有圖; 展示報表,會選擇柱狀圖;走在馬路上,更容易被圖形而不是文字吸引…這並不是因爲我們聰明,只是大腦討厭枯燥的數據,天生喜歡鮮明直觀的可視化圖形。

下面我們看個例子。

2018 年中美“貿易戰”,美國的媒體爲了向美國老百姓說明中國經濟發展的情況,特別是對美國經濟的威脅,一定要使用到中國經濟和美國經濟相關數字。那麼,你覺得這些數字怎麼展示?
在這裏插入圖片描述

圖 1 常規展示中美 GDP (圖片來源

這是一張預測中美 GPD 走勢的圖示。看此圖,我想,美國人也沒有什麼太被刺激的感覺,因爲看看兩條線,未來即使有高低之別,但差別也沒有那麼嚇人,況且,預測還可能不準確呢。

再對比圖 2。
在這裏插入圖片描述
圖 2 可視化表示中美 GDP(圖片來源

雖然這張圖中也包含了數字,但是,它同時配置了表示數字的圖示,並且都很形象,人的視覺無形中就被圖示所吸引了。把數字本來的抽象意義,用直觀方式表達出來,更刺激人的大腦。

這是個普通的數據可視化案例。今天我們想跟大家分享的是數據科學領域的數據可視化。分享的過程中,我們會明白,數據可視化已經成爲數據時代程序員的必備技能。

我們從數據科學開始說起。

數據科學

下面的定義來自“維基百科”中的“數據科學”詞條。

數據科學(英語:Data Science),又稱資料科學,是一門利用數據學習知識的學科,其目標是通過從數據中提取出有價值的部分來生產數據產品。它結合了諸多領域中的理論和技術,包括應用數學、統計、模式識別、機器學習、數據可視化、數據倉庫以及高性能計算。數據科學通過運用各種相關的數據來幫助非專業人士理解問題。

閱讀了詞條的解釋,算是對數據科學有了初步的感性認識。

根據經驗,對於專有名詞的英文詞條解釋與其對應的漢語說明,還是有差異的。因此,特別建議再閱讀“數據科學”的英文詞條:Data science

Data science is an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract knowledge and insights from data in various forms, both structured and unstructured, similar to data mining.

Data science is a “concept to unify statistics, data analysis, machine learning and their related methods” in order to “understand and analyze actual phenomena” with data. It employs techniques and theories drawn from many fields within the context of mathematics, statistics, information science, and computer science.

顯然,中文“數據科學”和英文的“Data Science”兩個詞條的內容,從信息量上看,還是有差別的。

根據 Data Science 中的說明,數據科學所處理的數據包括“Structured”和“Unstructured”(即“結構化的”和“非結構化的”)。數據科學中有一個重要環節,名曰“特徵工程”,就是要將一些非結構化的數據轉變成通常算法能夠處理的結構化的數據。

通常,科學是基礎理論部分,它不直接產生價值,它的價值會通過工程體現出來。因此,對應着“數據科學”的應用,就是“數據工程”。那麼“數據工程”是怎樣的實施流程呢?

數據工程

下圖是綜合了一些書籍所述和個人工作經驗而來的。
在這裏插入圖片描述
圖 數據工程流程

圖的優勢是能夠把很多信息集中顯示在眼前,給人以直觀視覺化的體驗,這也是“可視化”的優勢。

但是,圖示也有明顯的劣勢,那就是表述上不嚴謹,容易產生歧義。比如面對一幅山水畫,可能會有各種不同的理解;但是面對 F = ma 這個牛頓第二定律的表達式時,就只能有一種理解,不能仁者見仁智者見智。

因此,通常圖示都要配說明。

理解商業問題

這是“數據工程”的開始,從業者——數據工程師,必須對相應的業務有所瞭解,這也是數據工程師特有的市場價值之一。

理解商業問題,並非是成爲業務高手,而是要能夠從業務中梳理出與數據工程項目有關的環節,特別是將業務中某些問題轉化爲數據問題。

比如,某公司打算開發一套能夠評價學生學習情況的軟件系統,其中應用了所謂“過程性評價”的學習發展評價方式,要實現這種評價方式,就需要用到數據分析、機器學習的有關技能。

面對這個項目,首先問如下幾個問題:

  • 哪些類型的數據能夠支持“過程性評價”?
  • 通過什麼渠道可以獲取這些數據?
  • 所獲得的數據可靠程度如何?

以上問題獲得了明確答覆之後,再考慮後續的工作,否則項目就成爲了空中樓閣。

通過理解商業問題,把通常的業務人員習慣用的描述性語言,轉變爲具體的科學性語言,才能對某些環節作出“數據性”回覆,實現“數據驅動決策”目標。

還是用前面的例子來說明,通常的教育工作者或者業務人員,會對“過程性評價”的結果這樣描述:過程性評價能夠對學生的成長髮展提供指導,而不是一考定終身。

這種說法貌似容易理解,但裏面充滿了歧義,列出幾項(包含但不限於):

  • 學生成長髮展的指標是什麼?是考試成績?心理髮展?身體狀況?
    • 如果是考試成績,是週考試成績?月考試成績?學期末考試成績?
    • 如果是心理髮展,用什麼量表測量?還是憑藉主觀觀察?
    • 如果是身體狀況,又要測量哪些項目?
  • 衡量學生髮展的週期是多長?學年?學期?月?周?日?小時?每次作業?

顯然,要落實所謂的“素質教育”,需要解決的問題真的太多、太複雜,絕非幾句口號和幾篇文章就能解決的。

若要從數據層面解決上述問題,就必須把有關數據的問題提煉出來,用準確的語言表述,然後考查業務是否能夠支持這些問題。

數據收集

數據收集和前述理解商業問題,兩者之間是一個互動關係。研究收集數據的方法,也是對商業問題的再度理解。

此外,數據收集還包含着從某個數據集中獲得數據的含義。這裏所說的數據集,包括但不限於:

  • 數據庫,包括關係型和非關係型
  • 數據接口(API)
  • 保存數據的文件,比如 Excel、CSV 文檔等

以上這些是常用的數據集,如何從這些數據集中讀取到數據?需要的技能應該是:

  • 熟練使用 SQL
  • 熟練使用某種編程語言

數據清洗和特徵工程

假設已經通過某種合法的方式“不作惡”的途徑得到了某些數據,接下來要做的是瞭解這些數據,主要通過以下兩種方式:

  • 對數據進行簡單的描述性統計
  • 對數據實行可視化,直觀地瞭解數據概況

兩個分支

有了“訓練好”的數據之後,根據商業問題的目標,可以從事兩個方面的具體工作。

(1)數據分析

應用各種數據分析的方法,最終得到一份分析報告。

分析結果,除了用數字表達之外,可視化是不可避免的(又見“數據可視化”)。

(2)機器學習

機器學習是另外一個專門領域,目前正火熱。

通過機器學習算法,實現對數據的分類、預測和聚類等操作,在這個過程中,也難免要用“數據可視化”表達某種結論。

評估

不論是機器學習,還是數據分析,其結果都要進行評估。

對於機器學習而言,有專門的模型評估方式。即便如此,用可視化的方式把結果表達出來,也是一種重要的手段。

根據評估結果,確定是否採用機器學習所獲得的模型,亦或數據分析的報告是否被採納。

以上是數據工程項目的基本流程,從中可知,“數據可視化”並不是流程中的一個獨立環節,它是幾個環節中必不可少的實現手段

數據可視化是必備技能

毋庸置疑,人工智能正在改變着現在和將來。

數據可視化就是人工智能領域諸項技術的寵兒。

  • 數據清洗、特徵工程中有它的身影
  • 機器學習、數據分析離不開它
  • 項目評估、商業分析中需要它出手

不僅如此,數據可視化還能作爲獨立的業務。

同時,數據可視化還廣泛存在於各種商業、政務、教育等領域的業務表述之中。

圖纔是喜聞樂見、通俗易懂的,是大腦喜歡的。

數據可視化技能已經成爲數據時代程序員的必備技能。

燈火闌珊處的選擇

數據可視化的學習材料有很多了,爲什麼要選擇本達人課作爲學習資料?
在這裏插入圖片描述
那就要了解本達人課爲讀者做了什麼。

  • 深入淺出闡述有關知識點和技能,同時“授人以漁”,這是核心目標。
  • 介紹目前常用的幾種工具,當然不可能窮盡所有工具,挑選了部分具有代表性的。
    • Matplotlib
    • Seaborn
    • Plotnine
    • Plotly
    • Pyecharts
    • Bokeh
  • 在講解的過程中,配以豐富的示例。

本課程只是靜靜地爲你搭建了發展的階梯,迷茫於各種選擇之時,不妨看看燈火闌珊處,方向就在那裏——數據可視化。
在這裏插入圖片描述

相關推薦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章