国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
如何使用開源軟件搭建數(shù)據(jù)分析平臺?

在過去的三年,開源社區(qū)和新技術(shù)的發(fā)展可謂日新月異,我希望試試?yán)米钚碌募夹g(shù)來幫助沒有數(shù)據(jù)科學(xué)背景的人也能夠輕松的進(jìn)行數(shù)據(jù)分析和預(yù)測,于是就有了dataplay3 。

架構(gòu)

老規(guī)矩,先上架構(gòu)圖:

為了構(gòu)建一個最簡單的開箱即用的數(shù)據(jù)分析平臺,我使用了如下的技術(shù)棧:

服務(wù)器端:

sanic 基于Python3的web服務(wù)器

pandas Python上最流行的數(shù)據(jù)分析庫

auto-sklearn 基于sklearn的自動機(jī)器學(xué)習(xí)庫

prophet 非死不可開源的時間序列分析庫

pandassql 能夠在Panda數(shù)據(jù)框上運(yùn)行SQL的庫

gunicorn 基于python的WSGI HTTP服務(wù)器


客戶端:

React 前端框架

Ant Design Pro 螞蟻開源的企業(yè)級應(yīng)用框架套裝

Ant Design

UmiJS

Dva

BizCharts 基于G2和React的可視化庫

G2 The Grammar of Graphics in JavaScript


功能

Dataplay3提供了數(shù)據(jù)分析的基本功能,希望盡可能的簡化用戶數(shù)據(jù)分析的復(fù)雜性。

基于Pandas的數(shù)據(jù)集管理

基于SQL和Pands的查詢

基于Grammar of Graphics的可視化

簡單的儀表盤

基于自動化機(jī)器學(xué)習(xí), 提供數(shù)值和分類數(shù)據(jù)的建模和預(yù)測

時間序列分析

這里上幾個功能截圖,具體功能請參考 https://gangtao.github.io/dataplay3/features

對架構(gòu)和功能的思考

前端

React毫無疑問非常流行,Vue同樣優(yōu)秀。我這里不想討論和比較。

對于React的前端棧而言,現(xiàn)在開發(fā)工具的過程都已經(jīng)非常成熟?;赗edux的狀態(tài)管理解決了前端狀態(tài)管理的大難題。但是即便如此,開發(fā)一個產(chǎn)品,無論是代碼量還是所花費(fèi)的時間來說,前端的工作都占據(jù)了開發(fā)的大頭。作為一個前端的開發(fā)人員,你需要了解:

最新的ES6的規(guī)范 推薦https://es6.ruanyifeng.com/

React和redux

使用webpack打包你的應(yīng)用

使用Less擴(kuò)充你的css

瀏覽器的知識

... ...

為了更容易上手,我選擇使用了螞蟻開源的 Ant Design Pro,用框架的好處是你不需要太多的設(shè)計(jì),基本的模式照著用就好了,缺點(diǎn)呢,就是有些功能框架包裝的太多,你想實(shí)現(xiàn)一些自己想要的功能呢就比計(jì)較困難。所以對于用不用框架,取決于你對于代碼希望掌控的程度。

Ant Design Pro構(gòu)建于:

UmiJS 中文可發(fā)音為烏米,是一個可插拔的企業(yè)級 react 應(yīng)用框架。umi 以路由為基礎(chǔ)的,支持類 next.js 的約定式路由,以及各種進(jìn)階的路由功能,并以此進(jìn)行功能擴(kuò)展,比如支持路由級的按需加載。然后配以完善的插件體系,覆蓋從源碼到構(gòu)建產(chǎn)物的每個生命周期,支持各種功能擴(kuò)展和業(yè)務(wù)需求,目前內(nèi)外部加起來已有 50 的插件。

Dva 基于 redux、redux-saga 和 react-router 的輕量級前端框架。

我個人比較喜歡的Ant Design Pro的功能是測試這一塊,通過mock服務(wù)器請求,前后端的開發(fā)可以分離,這個很方便。基于Rest API的前端開發(fā)的過程基本如下:

定義REST API

在前端實(shí)現(xiàn)REST API調(diào)用的異步請求,(利用Axios HTTP request)

實(shí)現(xiàn)前端的接口Mock

定義頁面對應(yīng)的模型Model,并實(shí)現(xiàn)狀態(tài)的管理

綁定模型到頁面,實(shí)現(xiàn)頁面功能

可視化

Dataplay2使用echart作為可視化庫,而Dataplay3使用了螞蟻的G2,在我的前一篇博文中我就提到:

Baidu的echart是非常優(yōu)秀的可視化庫,可是用于數(shù)據(jù)探索時,還不夠好。希望能有一套類似ggplot的前端可視化庫來使用。

令人高興的是,這個類似ggplot的前端可視化庫已經(jīng)有了,它就是螞蟻的G2。這里我要稱贊一下我的北郵校友林峰,他同時也是echart的作者。他領(lǐng)導(dǎo)的團(tuán)隊(duì)開發(fā)出了世界領(lǐng)先的可視化庫,G2是其中之一。我認(rèn)為G2已經(jīng)超越了echart,希望他們能夠越做越好!

作為語法驅(qū)動的圖形,對于用戶的使用是一個挑戰(zhàn),所以,在Dataplay3中同時提供了基于圖標(biāo)類型的可視化。

利用圖形語法,新的圖表類型可以用一個配置項(xiàng)來擴(kuò)展,例如,對于Area chart的配置如下:

現(xiàn)在Dataplay3支持的圖形種類還不多,后面,我可能會加入更多的類型。


后端

對于后端Python應(yīng)用來說,全面擁抱Python3是必然選擇。對于Web服務(wù),Sanic是一個不錯的選擇,它基本繼承了Flask的所有優(yōu)點(diǎn),但是提供了Async的支持,能夠提供能好的服務(wù)性能,當(dāng)然選擇一個新的框架必然有風(fēng)險(xiǎn)。參考這篇文章,Sanic 的若干吐槽

Dataplay3仍然使用REST API而沒有使用最新很流行的Graphql, 對于這個選擇,大家也可以根據(jù)自己的應(yīng)用來做決定??梢詤⒖糋raphQL vs. REST


機(jī)器學(xué)習(xí)

因?yàn)橄M@是一款小白也能使用的數(shù)據(jù)分析工具,我希望提供的預(yù)測功能越簡單越好,利用Auto-SKlearn,我們把機(jī)器學(xué)習(xí)的建模過程變得非常簡單。用戶只需要選擇用于建模的數(shù)據(jù),特征和目標(biāo)就好了。用戶不需要選擇應(yīng)用什么類型的算法,如果構(gòu)建數(shù)據(jù)流水線,如何預(yù)處理數(shù)據(jù),以及如果ensemb模型。唯一要考慮的是能夠付出多少資源(時間,CPU,內(nèi)存)來構(gòu)建模型。

Auto-Sklearn的主要功能是:

利用元學(xué)習(xí)來選擇算法的流水線

利用貝葉斯優(yōu)化來選擇參數(shù)

利用ensemble來構(gòu)建復(fù)合的模型。

對于另一種常見的數(shù)據(jù)分析類型的時間序列,我選擇了facebook開源的Prophet,(基于pystan構(gòu)建)

Dataplay3還沒有實(shí)現(xiàn)模型部署的功能,以后可能會考慮。


從全棧工程師到全生命周期工程師

因?yàn)楦嗟膽?yīng)用已經(jīng)遷移到云或者在遷移到云的過程中,對于軟件工程師而言,全棧已經(jīng)不足以滿足要求,現(xiàn)在需要的是全生命周期工程師,工程師不但要覆蓋前后端的代碼實(shí)現(xiàn)和測試,而且要參與軟件生命周期的每一個部分,尤其是DevOps。

以Dataplay3為例,我需要做的事包括:

思考我想要解決什么問題,面向什么用戶 -》 產(chǎn)品定義

設(shè)計(jì)軟件架構(gòu) -》架構(gòu)階段

前后端的代碼設(shè)計(jì),選型 -》 設(shè)計(jì)階段

前后端的實(shí)現(xiàn)和測試 -》 實(shí)現(xiàn)階段

持續(xù)集成和部署 -》 CICD

部署后的運(yùn)營和監(jiān)控 , 產(chǎn)品的市場宣傳 (例如我正在寫的這篇文章)-》 運(yùn)營階段

這里,我主要講一下CICD。DevOps和CICD在現(xiàn)在的軟件生命周期中已經(jīng)占據(jù)非常重要的地位。這篇文章提供了不少CICD的項(xiàng)目。

在Dataplay3中,我使用

CICD codeship

Automated code reviews & code analytics, codeacy

Automated code reviews & code analytics, ebert

CICD的服務(wù)不少,開源項(xiàng)目最為流行的可能是Travis CI。另外gitlab也即成了很好的CICD的功能。codeship因?yàn)閾碛泻芎玫娜萜鞯墓δ?,也是一個很不錯的選擇。現(xiàn)在的dataplay3的CI之使用了codeship的基本功能??梢岳胏odeship的pro的功能,構(gòu)建更為強(qiáng)大的CICD。codeship對于開源項(xiàng)目提供每月100次build的免費(fèi)服務(wù),對于一些開發(fā)密度不是很大的項(xiàng)目來說應(yīng)該足夠用了。

codacy和ebert都是自動化的代碼分析工具,你只需要創(chuàng)建一個項(xiàng)目,連接到你的github項(xiàng)目,就可以在提交代碼或者合并PR的時候進(jìn)行自動的代碼分析,這個一般是可以在CI中實(shí)現(xiàn)的,使用這些服務(wù)可以然你更容易的了解你的代碼的質(zhì)量變化。

總結(jié)

如果說dataplay只是一些很原始的想法,dataplay2最多算是一個原型,那么dataplay3應(yīng)該是一個還算勉強(qiáng)可用的工具了,當(dāng)然它現(xiàn)在還很簡單,可能有很多的bug和問題,我也希望能慢慢地改進(jìn)。

對于三年前的一些想法,Dataplay3也做出了回應(yīng)


可視化庫

Baidu的echart是非常優(yōu)秀的可視化庫,可是用于數(shù)據(jù)探索時,還不夠好。希望能有一套類似ggplot的前端可視化庫來使用。另外地圖功能和層級化的圖表也是數(shù)據(jù)分析常見的功能。

還需要加入圖表的選項(xiàng)


儀表盤功能

這個版本的dataplay沒有儀表盤功能,這個功能是數(shù)據(jù)分析軟件的標(biāo)配,必須有。pyxley似乎是個不錯的選擇,也和dataplay的架構(gòu)一致(python,reactjs),有時間可以嘗試一下


機(jī)器學(xué)習(xí)和預(yù)測

dataplay現(xiàn)在實(shí)現(xiàn)了最簡單的一些機(jī)器學(xué)習(xí)的算法,我覺得方向應(yīng)該是面向用戶,變得更簡單,用戶只給出簡單的選項(xiàng),例如要預(yù)測的目標(biāo)屬性,和用于預(yù)測的屬性,然后自動的選擇算法。另外需要更方便的對算法進(jìn)行擴(kuò)展。

這要感謝開源作者們的無私奉獻(xiàn)。另外的一些功能呢,因?yàn)楸救司τ邢?,只能抽空慢慢的?shí)現(xiàn),如果有對數(shù)據(jù)科學(xué),開源應(yīng)用有興趣的小伙伴,也歡迎給我提意見,提PR,報(bào)Bug。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用開源軟件快速搭建數(shù)據(jù)分析平臺
推薦一款功能強(qiáng)大,開源免費(fèi)的H5可視化編輯器
介紹一個功能非常強(qiáng)大的可視化數(shù)據(jù)分析軟件
前端圖表可視化的應(yīng)用實(shí)踐總結(jié)
騰訊低代碼平臺正式開源!可拖拽生成手機(jī)、PC等項(xiàng)目!接私活福利??!
超千萬注冊用戶APP技術(shù)實(shí)現(xiàn)簡析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服