国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Matplotlib的大數(shù)據(jù)可視化應用研究

2019-08-10 06:36馬佳琪滕國文
電腦知識與技術(shù) 2019年17期
關(guān)鍵詞:數(shù)據(jù)可視化

馬佳琪 滕國文

摘要:現(xiàn)如今的信息化社會,我們無時無刻不產(chǎn)生大量的數(shù)據(jù)。人類視覺具有迄今為止最大的處理帶寬,使用表格,圖片等元素可以幫助分析人員快速掌握數(shù)據(jù)集的特性。數(shù)據(jù)可視化(Data Visualization)就是一種將抽象概念形象化,抽象語言具象化的一個過程。本文主要基于Matplotlib繪圖庫的基礎(chǔ)上,結(jié)合Python 3.6、Pandas、Seaborn、Sklearn,設(shè)計并實現(xiàn)根據(jù)不同切工等級、成色等級和純凈度鉆石的分布繪制不同的可視化圖像。

關(guān)鍵詞:數(shù)據(jù)可視化;Matplotlib;Seaborn

中圖分類號:TP311? ? ? 文獻標識碼:A

文章編號:1009-3044(2019)17-0018-02

開放科學(資源服務)標識碼(OSID):

在人人都談及人工智能的今天,我們正在使用自動化取代人類的判斷(例如自動駕駛)。但是,仍然有一個環(huán)節(jié)機器是無法取代人類的,那就是可視化。從計算機科學的角度來看,數(shù)據(jù)可視化是一種借助計算機技術(shù)和數(shù)字圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換為圖表展示并進行交互處理的方法和技術(shù)。在數(shù)據(jù)可視化方面有著名的3個Python繪圖第三方包:Matplotlib,Seaborn以及gplot。本文使用的Matplotlib和Seaborn具有以下幾個優(yōu)點:Matplotlib是Python的拓展庫,所以繼承了Python語法的優(yōu)點,面向?qū)ο?、易讀、易維護、代碼簡潔優(yōu)美。Seaborn是一個基于Matplotlib的高級可視化效果庫,偏向于統(tǒng)計作圖。因此,針對的點主要是數(shù)據(jù)挖掘和機器學習中的變量特征選取。相比Matplotlib,它語法相對簡化些,繪制出來的圖不需要花很多功夫去修飾。

1 數(shù)據(jù)可視化

可視化分析[1]作為大數(shù)據(jù)分析領(lǐng)域的一個重要分支一直以來被廣泛應用于科學計算研究以及商業(yè)智能領(lǐng)域。因此,大數(shù)據(jù)可視分析是大數(shù)據(jù)分析不可或缺的重要手段和工具??梢暦治觯╒isual analytics)是科學可視化、信息可視化、人機交互、認知科學、數(shù)據(jù)挖掘、信息論、決策理論等研究領(lǐng)域的交叉融合所產(chǎn)生的新興研究方向[2],是一種通過交互式可視化界面來輔助用戶對大規(guī)模復雜數(shù)據(jù)集進行分析推理的科學與技術(shù)。分析過程在數(shù)據(jù)與知識的轉(zhuǎn)化過程中不斷循環(huán)。它將大數(shù)據(jù)分析挖掘方法與可視化信息處理過程相結(jié)合,綜合計算機的處理能力和人的認知能力,最終挖掘出大規(guī)模、高維度的數(shù)據(jù)集中蘊含的值。

過去的十幾年中,數(shù)據(jù)儲存容器的容量已經(jīng)發(fā)生了翻天覆地的變化,這讓我們可以存儲海量數(shù)據(jù)。然而,我們所儲存的大部分數(shù)據(jù)都是原始數(shù)據(jù),這些數(shù)據(jù)是毫無價值的。只有當從中提取信息后,才能發(fā)現(xiàn)其中的價值。人類處理視覺信息是十分迅速的,我們可以立刻捕獲隱藏在數(shù)字中的關(guān)鍵信息。因此,數(shù)據(jù)可視化成為提取關(guān)鍵信息的最佳途徑。

2 Matplotlib圖形庫

Matplotlib[3]是一個用 Python[4]語言編寫的二維圖形庫, 它充分利用了Python數(shù)值計算軟件包的快速精確的矩陣運算能力,具有良好的作圖性能。Matplotlib是一個Python的2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形[5]。

2.1 Python中Pandas的應用

在進行數(shù)據(jù)分析時,繪圖是必不可少的模式探索方式。用Python進行數(shù)據(jù)分析時,Matplotlib和Pandas是最常用到的兩個庫。Pandas是Python的一個數(shù)據(jù)分析包[5],是基于Numpy的一種工具,該工具是為了解決數(shù)據(jù)分析任務而創(chuàng)建的。Pandas納入了大量庫和一些標準的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具和大量能快速便捷地處理數(shù)據(jù)的函數(shù)和方法。

3 Matplotlib應用

Matplotlib是Python中最常用的可視化工具之一, 可以非常方便地創(chuàng)建高質(zhì)量的不同類型的2D圖表和一些基本的3D圖表[6]。借助于Python語言的強大功能, 它不僅具有不亞于Matlab的作圖能力,又具有勝于Matlab的編程能力。本文借助Matplotlib利用Seaborn,pandas和sklearn等工具進行數(shù)據(jù)探索和處理,以及建立預測模型,對鉆石價格進行預測。

3.1設(shè)置特征參數(shù)

選擇合適的鉆石需要知道鉆石的切工、成色、凈度和克拉重量四個特性,它們是選購鉆石時最值得留意的要點。當鉆石以適當比例切工時,最大部分的光線從鉆石的頂部反射出去。成色是指鉆石的無色程度,越接近無色狀態(tài),級別越高。大多數(shù)鉆石都有細小的、稱為包含物的瑕疵。包含物越少,越不可見,凈度級別越高??死侵搞@石的重量。一般而言,隨著克拉重量的增長,鉆石價格將呈指數(shù)增長,因為克拉越大,鉆石越罕見。

本文分析一個鉆石數(shù)據(jù)集該數(shù)據(jù)集一共包含53940顆鉆石樣本。每一顆鉆石記錄了切割、成色、凈度、克拉重量和價格等10個特征。

數(shù)據(jù)集中包含53940個樣本,10個特征。我們進一步發(fā)現(xiàn),切工,成色和凈度三個特征為字符串類型表示的等級型離散型特征。其余特征為連續(xù)型特征。借助DataFrame提供的describe方法,我們可以統(tǒng)計每一個特征的取值分布。

對于連續(xù)型特征,直接使用默認參數(shù),計算每一個特征非空值數(shù)量、最大值、最小值、平均值和分位數(shù)等統(tǒng)計量。

觀察該數(shù)據(jù)發(fā)現(xiàn),取值與樣本數(shù)量一致,說明上述特征均不存在缺失值。觀察第一列克拉重量特征,發(fā)現(xiàn)在五萬多鉆石樣本中,最小的鉆石重量為0.2克拉,最大的鉆石重量為5.01克拉。鉆石的平均重量為0.8克拉。觀察price列,對于鉆石價格,最便宜的為326美元,最貴的為18823美元,鉆石的平均價格為3923.8美元。

對于離散型特征,首先感興趣每一個特征唯一取值數(shù)量以及最頻繁的取值及其數(shù)量。在Pandas中,依然可以使用DataFrame提供的describe()函數(shù)成。

4 價格預測模型

由于價格屬于連續(xù)型特征,為了嘗試找到鉆石價格與其他特征之間的關(guān)系而使用回歸模型。最簡單的模型為線性回歸。為了更好地評估預測效果。需要先將數(shù)據(jù)進行劃分為訓練集和測試集兩部分。

4.1 線性模型

最簡單的線性回歸模型,通過以下三行代碼建立線性回歸模型。

由此可得預測鉆石價格的線性回歸模型為:

在訓練集中繪制殘差圖展示模型的擬合效果。

4.2 非線性模型

為了探究鉆石的價格與其他特征之間是否存在某種非線性關(guān)系,通過隨機森林訓練一個鉆石價格預測模型。

訓練集上的均方誤差和決定系數(shù)分別為: 61045.1346019 0.996134371615

測試集上的均方誤差和決定系數(shù)分別為: 330990.263428 0.978793607326

從均方誤差和決定系數(shù)來看,隨機森林提升了預測性能。決定系數(shù)超過了97%。

5研究結(jié)果

近年來可視分析技術(shù)越來越成熟,分析者可以直觀地從圖像中分離出自己想要的信息。從本案例的研究結(jié)果可見,分析者可以使用Python語言,并利用Python相關(guān)的各種科學計算和可視化庫,從復雜繁多的數(shù)據(jù)中提取出有用的數(shù)據(jù),用形象的圖形、圖像來表達,這是語言所遠遠不能達到的。

本文主要基于Matplotlib圖形庫結(jié)合Seaborn和sklearn的Linear Regression和Random Forest Regressor分別訓練線性和非線性回歸模型。實現(xiàn)了根據(jù)不同的參數(shù)預測鉆石價格。

參考文獻:

[1] 洪文學,王金甲.可視化和可視化分析學[J].燕山大學學報,2010,34(2):95-99.

[2] Ware C.Information visualization:perception for design[M].Elsevier,2012.

[3]Matplotlib.sourceforge.net. Using Matplotlib. http://matplotlib.sourceforge.net/tutorial.html,2005-11.

[4] M陳革, 馮大輝譯.ark Lutz & David Ascber. Python 語言入門[M]. 北京: 中國電力出版社, 2001.

[5] 肖明魁.Python在數(shù)據(jù)可視化中的應用.電腦知識與技術(shù),2018(11).

[6] Python plotting Matplotlib 2.0.2 documentation[EB/OL]. http://matplotlib.org/, 2017-05-11/2017/09-15.

[7] 段書勇.Python數(shù)據(jù)可視化(-)Seaborn介紹. https://www.jianshu.com/p/5ff47c7d0cc9.

【通聯(lián)編輯:光文玲】

猜你喜歡
數(shù)據(jù)可視化
可視化:新媒體語境下的數(shù)據(jù)、敘事與設(shè)計研究
我國數(shù)據(jù)新聞的發(fā)展困境與策略研究
用戶數(shù)據(jù)統(tǒng)計挖掘與展示