乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       東西二王 2019-05-19

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

      架構(gòu)

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

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

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

      服務(wù)器端:

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

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

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

      prophet 非死不可開源的時(shí)間序列分析庫(kù)

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

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


      客戶端:

      React 前端框架

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

      Ant Design

      UmiJS

      Dva

      BizCharts 基于G2和React的可視化庫(kù)

      G2 The Grammar of Graphics in JavaScript


      功能

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

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

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

      基于SQL和Pands的查詢

      基于Grammar of Graphics的可視化

      簡(jiǎn)單的儀表盤

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

      時(shí)間序列分析

      這里上幾個(gè)功能截圖,具體功能請(qǐng)參考 https://gangtao./dataplay3/features

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

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

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

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

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

      前端

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

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

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

      React和redux

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

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

      瀏覽器的知識(shí)

      ... ...

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

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

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

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

      我個(gè)人比較喜歡的Ant Design Pro的功能是測(cè)試這一塊,通過mock服務(wù)器請(qǐng)求,前后端的開發(fā)可以分離,這個(gè)很方便?;赗est API的前端開發(fā)的過程基本如下:

      定義REST API

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

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

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

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

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

      可視化

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

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

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

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

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

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

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

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


      后端

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

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


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

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

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

      Auto-Sklearn的主要功能是:

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

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

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

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

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


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

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

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

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

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

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

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

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

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

      這里,我主要講一下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)閾碛泻芎玫娜萜鞯墓δ?,也是一個(gè)很不錯(cuò)的選擇?,F(xiàn)在的dataplay3的CI之使用了codeship的基本功能??梢岳胏odeship的pro的功能,構(gòu)建更為強(qiáng)大的CICD。codeship對(duì)于開源項(xiàng)目提供每月100次build的免費(fèi)服務(wù),對(duì)于一些開發(fā)密度不是很大的項(xiàng)目來說應(yīng)該足夠用了。

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

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

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

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

      總結(jié)

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

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


      可視化庫(kù)

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

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


      儀表盤功能

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


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

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

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

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多