數(shù)據(jù)可視化常用的后端技術(shù)
這篇文章大致講講需要用到的后端技術(shù)。其實如果只是小數(shù)據(jù)量,或者是一些小型的項目,研究型的項目,純前端就可以搞定,利用JS讀取數(shù)據(jù),JS處理數(shù)據(jù)。
后端無非就是處理數(shù)據(jù),提取用戶想要的數(shù)據(jù)。筆者最常用的就是python了,相對于java,c, c++,python簡直對初學(xué)者太友好,提供了豐富多彩的API接口,比如常見的降維聚類算法:PCA, t-SNE, MDS, k-means等。筆者曾經(jīng)用c實現(xiàn)過PCA算法,應(yīng)該有幾百行代碼吧,可是在python里,只需要三行代碼。下文將為大家介紹下如何用python實現(xiàn)對Iris數(shù)據(jù)集使用PCA算法,以及展示效果。
因此,筆者強(qiáng)烈建議新手使用python練手,操作門檻低,前期可以將更多的關(guān)注點集中在前端數(shù)據(jù)可視化上。到了后期,有經(jīng)驗了就可以自由組合。筆者前期使用的是python,可是到了后期由于性能問題,python已經(jīng)很難解決我項目所遇到的數(shù)據(jù)和算法復(fù)雜度。于是我將復(fù)雜度高的算法全部用C重寫了一遍,并用python調(diào)用這個模塊。這樣之前項目的項目代碼框架不變,不需要代碼全部重寫重構(gòu),只需在相應(yīng)的地方調(diào)用相應(yīng)的C模塊即可。
python使用PCA算法實戰(zhàn)
在講之前,用戶需要安裝python包,這里強(qiáng)烈建議新手安裝anaconda,anaconda集成了python以及在開發(fā)過程中一大堆第三方包,比如下文用到的sklearn包。
引入第三方庫的PCA算法,sklearn是pythonz中常用的機(jī)器學(xué)習(xí)第三方模塊,對常用的機(jī)器學(xué)習(xí)方法進(jìn)行了封裝,包括回歸、降維、分類、聚類等方法。
- from sklearn.decomposition import PCA
加載python中自帶的Iris數(shù)據(jù)集,做機(jī)器學(xué)習(xí)的應(yīng)該比較熟悉這個數(shù)據(jù)集。主要包含4個維度,三個類。
- from sklearn.datasets import load_iris
- irisData = load_iris()
對數(shù)據(jù)集使用PCA算法,將數(shù)據(jù)降到2維。
- pca = PCA(n_components=2)
- reducedData = pca.fit(irisData)
將結(jié)果在散點圖中畫出來。這里就不講具體python的繪制邏輯了,沒錯,python就是這么強(qiáng)大,也提供了可視化圖表的能力。但是更多還是以處理數(shù)據(jù)為目的,將數(shù)據(jù)傳給前端,讓前端繪制。感興趣的可以去了解下:matplotlib,這個是python的可視化繪圖庫。

iris數(shù)據(jù)集降到二維