摘要:對于數(shù)據(jù)科學(xué)的研究可以說已經(jīng)是本文我將介紹如何以文檔定義應(yīng)用的方式成為數(shù)據(jù)科學(xué)中的標(biāo)準(zhǔn)交付。參考前文解密的數(shù)據(jù)科學(xué)部門如果構(gòu)建知識(shí)倉庫,作為一個(gè)謝大大的死忠,我很自然選擇了作為我文檔輸出的首選工具。
概述
隨著近年來,Rstudio 通過 shiny 將R語言推向Web化,Rmarkdown 借助 Shiny 已經(jīng)不斷演化形成了一個(gè)動(dòng)態(tài)可交互文檔生態(tài)。對于數(shù)據(jù)科學(xué)的研究可以說已經(jīng)是Every Thing in Rmd!本文我將介紹Rmd如何以文檔定義應(yīng)用的方式(Docs As an App)成為數(shù)據(jù)科學(xué)中的標(biāo)準(zhǔn)交付。
什么是RmdRmd 是Rmarkdown的文件保存格式,而Rmarkdown 是一個(gè)由謝益輝老師(XRAN)十年磨一劍的動(dòng)態(tài)可重復(fù)文檔解決方案。參考前文:基于RStudio Webinars的統(tǒng)計(jì)報(bào)告Web化與工程化實(shí)踐總結(jié),我們可以知道,Rmarkdown緣起謝大大對LaTex論文寫作的深惡痛絕,在謝大大深入研究各種姿勢的論文撰寫方式后決定自成一派,于是推出了Rmarkdown極大地簡化了論文寫作的排版問題并快速成為了學(xué)界的論文寫作新標(biāo)準(zhǔn)。
借用謝大大的例子,你可以運(yùn)行下面的代碼來生成一個(gè)pdf的beamer。
download.file("https://raw.githubusercontent.com/rstudio/webinars/master/13-R-Markdown-Ecosystem/presentation.Rmd",destfile = "presentation.Rmd") # 下載Rmd文件 download.file("https://raw.githubusercontent.com/rstudio/webinars/master/13-R-Markdown-Ecosystem/references.bib",destfile = "references.bib") # 下載bib引用 rmarkdown::render("presentation.Rmd", rmarkdown::pdf_document()) # 生成pdf
yaml中可以指定bibliography的路徑來解決引用文獻(xiàn)的問題。
--- title: "Sample Document" output: html_document bibliography: bibliography.bib ---
這里的引用我們可以很容易在Google Scholar生成,當(dāng)然,除了BibTeX,Rmd 也支持 EndNote,RefMan,RefWorks以及直接在yaml中的引用方式。
--- references: - id: fenner2012a title: One-click science marketing author: - family: Fenner given: Martin container-title: Nature Materials volume: 11 URL: "http://dx.doi.org/10.1038/nmat3283" DOI: 10.1038/nmat3283 issue: 4 publisher: Nature Publishing Group page: 261-263 type: article-journal issued: year: 2012 month: 3 ---Rmd 原理分析
如果有用過APIDoc或者Swagger這樣的API文檔撰寫工具,或者利用Jekyll(Ruby)、Hexo(JS)、Pelican(Python)搭建個(gè)人網(wǎng)站的開發(fā)者應(yīng)該很容易就明白,Rmarkdown的原理和這些應(yīng)用非常類似。
靜態(tài)渲染首先,我們利用markdown事先聲明好一定的文檔格式。其次,利用文檔解析器對markdown中的內(nèi)容和dom樹做解析。最后,再用相應(yīng)的css、js做渲染生成h5頁面,這樣一個(gè)文檔定義應(yīng)用的過程就完成了。
動(dòng)態(tài)渲染而文檔的動(dòng)態(tài)化則是用一個(gè)后端服務(wù)器來host這些前端html頁面資源。這里Rmarkdown可以利用Shiny-server作為后端服務(wù)器,在運(yùn)行前端h5頁面的同時(shí)通過后端的服務(wù)器做實(shí)時(shí)的數(shù)據(jù)處理,實(shí)現(xiàn)文檔的動(dòng)態(tài)化。(在文章最后會(huì)舉一些相應(yīng)的例子)
注意,這里如果在shiny-server的相關(guān)目錄下同時(shí)存在shiny的app.R文件,shiny-server將會(huì)優(yōu)先識(shí)別app.R而不是.Rmd。
想要?jiǎng)邮謬L試的同學(xué)可以參考前文:打造數(shù)據(jù)產(chǎn)品的快速原型:Shiny的Docker之旅。
數(shù)據(jù)科學(xué)與 Rmd首先,參考前文:數(shù)據(jù)科學(xué)部門如何使用Python和R組合完成任務(wù),讓我們來回顧一下之前談到了數(shù)據(jù)科學(xué)理論上會(huì)經(jīng)歷的幾個(gè)階段:
需求定義=》數(shù)據(jù)收集=》數(shù)據(jù)轉(zhuǎn)化=》數(shù)據(jù)分析=》數(shù)據(jù)可視化
而在需求快速變化的項(xiàng)目初期,為了快速確定需求,如何敏捷打造最小可用原型(MVP)顯然比項(xiàng)目工程化來得更有意義。
所以在現(xiàn)實(shí)中,這時(shí)候流程常常就會(huì)縮短成:
需求定義=》數(shù)據(jù)整理=》數(shù)據(jù)可視化
場景一:需求分析多格式文檔交付需求定義階段,我們需要通過大量的Email、word、paper、keynote、訪談等等資料針對相關(guān)的業(yè)務(wù)場景進(jìn)行初步了解,這一階段我們最大的需求不是著急碼代碼,而是在起跑之前看準(zhǔn)方向,系好鞋帶,弄明白真實(shí)的業(yè)務(wù)需求,對實(shí)際需求進(jìn)行優(yōu)先級排序(做什么)。
在需求定義階段,每次訪談、實(shí)地考察、活動(dòng)會(huì)議等等都需要我們產(chǎn)出相應(yīng)的研究紀(jì)錄。經(jīng)過來來回回的幾輪討論,我們還需要畫很多流程圖、示意圖等等,最后產(chǎn)出一份完整的產(chǎn)品需求分析報(bào)告(為什么做)和產(chǎn)品需求文檔(怎么做)。
在這個(gè)過程中,很多細(xì)節(jié)都需要反復(fù)推敲,多方論證(撕逼),而這個(gè)環(huán)節(jié)也是數(shù)據(jù)科學(xué)最有趣的一環(huán)。
面對大量的文檔輸出,很多人跟我一樣都會(huì)首先想到馬克飛象。馬克飛象名聲在外,是很優(yōu)秀的一款產(chǎn)品。不過對于文檔的同步目前是收費(fèi)的服務(wù),很可惜,因?yàn)轭A(yù)算有限,所以我還是沒有考慮它,暫時(shí)是通過svn/git的方式解決云端同步的問題。
參考前文:解密Airbnb的數(shù)據(jù)科學(xué)部門如果構(gòu)建知識(shí)倉庫,作為一個(gè)謝大大的死忠,我很自然選擇了 Rmarkdown 作為我文檔輸出的首選工具。一方面,我不僅可以方便地嵌入本地或者網(wǎng)絡(luò)上的圖片,通過"[@]"語法也可以利用yaml中的信息直接引用相關(guān)的參考文獻(xiàn)。另一方面,在網(wǎng)絡(luò)情況非常糟糕的情況下,我也不必?fù)?dān)心通過Web編輯無法編輯的問題,而所有的編輯結(jié)果都會(huì)被存放在Rstudio的.Rdata文件中,實(shí)現(xiàn)和Web編輯器類似的實(shí)時(shí)編輯功能。
通過設(shè)置自己喜歡的css樣式,我還可以個(gè)性化導(dǎo)出html文檔,統(tǒng)一輸出團(tuán)隊(duì)的VI系統(tǒng),這方面Airbnb是一個(gè)很好的榜樣,我們可以參考前文:解密Airbnb的數(shù)據(jù)科學(xué)部門如何使用R語言。你也可以參考V2EX里大家對于Markdown樣式的熱烈討論。
在需求報(bào)告的討論環(huán)節(jié),在yaml中簡單聲明shiny的runtime,再將Rmd文檔上傳到shiny-server上就可以在網(wǎng)絡(luò)上(內(nèi)網(wǎng)或外網(wǎng))多人多端同步瀏覽,在Mac找不到轉(zhuǎn)化頭做投影的時(shí)候非常有用。
--- title: "文檔定義應(yīng)用:數(shù)據(jù)科學(xué) Everything in Rmd" author: "Harry Zhu" date: "May 13, 2016" output: html_document runtime: shiny ---
更為實(shí)用的是,如果需要評審修改文檔,我們也可以導(dǎo)出word來互相評審修改,我們甚至還能直接導(dǎo)出目錄,完全不需要自己再手動(dòng)生成目錄。
在word和html之間自由切換,進(jìn)可審閱、退可編輯,顯然,在現(xiàn)實(shí)中我們沒法決定我們身邊的人是喜歡word還是喜歡html。
當(dāng)然,除了html和word,Rmd還可以在多種酷炫的keynote、dashboard、pdf之間相互轉(zhuǎn)化,不過這里由于篇幅有限暫時(shí)不展開討論。
更多高級的Rmarkdown文檔轉(zhuǎn)換技巧可以前往rmarkdown官網(wǎng)
場景二:數(shù)據(jù)整理多語言混編之所以說原來 數(shù)據(jù)收集=》數(shù)據(jù)轉(zhuǎn)化=》數(shù)據(jù)分析 的流程可以簡化為數(shù)據(jù)整理主要是因?yàn)檫@里數(shù)據(jù)源獲取的方式一般比較dirty,比如從一個(gè)Excel的 xlsx文件讀取、通過現(xiàn)場勘查記錄自己制作的臨時(shí)數(shù)據(jù)又或者通過Python爬蟲抓取的一部分?jǐn)?shù)據(jù)、從某些文章中直接復(fù)制粘貼的數(shù)據(jù)等等。而處理這些dirty的數(shù)據(jù)往往都會(huì)采用比較crud的方式,并不會(huì)做非常詳細(xì)的分析工作(很多公司的數(shù)據(jù)分析實(shí)習(xí)生工作都是從這里起步的)。
在數(shù)據(jù)整理的過程中,我們可能會(huì)用到多種編程語言或者工具(比如Python、R、awk)、多種文件格式(比如csv、xlsx、json、pdf、word),這時(shí)候?yàn)榱思嫒荻喾N工具并保證研究的可重復(fù)性,我們非常需要在一個(gè)文檔中運(yùn)行多種編程語言。
通過knitr的代碼塊管理,我們可以輕松選擇代碼編譯環(huán)境來兼容多種編程語言,比如這樣:
```{python}
x = "hello, python world!"
print(x)
print(x.split(" "))
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
```
當(dāng)然我們也可以自定義代碼編譯引擎:
> system("which python") # 查到 python 引擎的默認(rèn)路徑 /Users/harryzhu/Library/Enthought/Canopy_64bit/User/bin/python
進(jìn)一步定義 python 引擎的路徑:
```{r engine=python,engine.path="/Users/harryzhu/Library/Enthought/Canopy_64bit/User/bin/python"}
x = "hello, python world!"
print(x)
print(x.split(" "))
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
```
更多高級的knitr代碼塊使用技巧可以移步謝大大的knitr官網(wǎng)
場景三:數(shù)據(jù)產(chǎn)品敏捷響應(yīng)數(shù)據(jù)科學(xué)部門在推進(jìn)項(xiàng)目的過程中如果只是拿著一些示意圖和文檔就去和各個(gè)部門討論而沒有拿出實(shí)際可用的產(chǎn)品必然會(huì)出現(xiàn)幾個(gè)問題:
交流低效。對產(chǎn)品和需求的理解停留在紙面,往往多方反復(fù)溝通后對產(chǎn)品依賴概念模糊。
信心不足。當(dāng)我們沒有拿出實(shí)際可用的產(chǎn)品,項(xiàng)目戰(zhàn)線上的成員對項(xiàng)目的認(rèn)可度比較低,各自相應(yīng)的投入也就不會(huì)太多。
眾所周知,數(shù)據(jù)可視化是R非常擅長的領(lǐng)域。得益于R語言社區(qū)大量開發(fā)者對大量JS作圖框架熱情洋溢的封裝,我們可以利用R接口調(diào)用諸如echats、highcharts、leaflet、datatable這樣的前端組件,輕松完成數(shù)據(jù)產(chǎn)品的快速原型。
現(xiàn)在通過shinydashoboard、flexdashboard,我們可以快速開始數(shù)據(jù)產(chǎn)品的原型構(gòu)建,而這一切都可以輕松集成在一個(gè).Rmd文件中。
shinydashboardshinydashboard官網(wǎng) Demo: https://gallery.shinyapps.io/...
GitHub源碼地址:https://github.com/rstudio/sh...
這里你可以執(zhí)行運(yùn)行示例。
# 安裝依賴 install.packages(c("shiny", "dplyr", "htmlwidgets", "digest", "bit")) devtools::install_github("rstudio/shinydashboard") devtools::install_github("jcheng5/bubbles") devtools::install_github("hadley/shinySignals") # 運(yùn)行 shiny::runGitHub("rstudio/shiny-examples",subdir = "087-crandash")
引用官網(wǎng)的另外一個(gè)例子,當(dāng)然你也可以在Rmd中直接省去定義ui和server的步驟,寫成這樣:
--- title: "something" author: "Harry Zhu" date: "May 13, 2016" output: html_document runtime: shiny --- library(shinydashboard) dashboardBody( tabItems( # 第一個(gè)tab tabItem(tabName = "dashboard", fluidRow( box(plotOutput("plot1", height = 250)), box( title = "Controls", sliderInput("slider", "Number of observations:", 1, 100, 50) ) ) ), # 第二個(gè)tab tabItem(tabName = "widgets", h2("Widgets tab content") ) ) ) # 直接在后面定義作圖函數(shù) set.seed(122) histdata <- rnorm(500) output$plot1 <- renderPlot({ data <- histdata[seq_len(input$slider)] hist(data) })
省去的ui和server的定義,直接渲染Rmd。
flexdashboardflexdashboard Demo: https://beta.rstudioconnect.c...
開源源碼如下:
```
---
title: "Sales Report with Highcharter"
author: "Joshua Kunst"
output:
flexdashboard::flex_dashboard:
orientation: columns social: menu source_code: embed
---
```
```{r setup, include=FALSE}
library(highcharter)
library(dplyr)
library(viridisLite)
library(forecast)
library(treemap)
library(flexdashboard)
thm <-
hc_theme(
colors = c("#1a6ecc", "#434348", "#90ed7d"), chart = list( backgroundColor = "transparent", style = list(fontFamily = "Source Sans Pro") ), xAxis = list( gridLineWidth = 1 )
)
```
Column {data-width=600}
-----------------------------------------------------------------------
### Sales Forecast
```{r}
AirPassengers %>%
forecast(level = 90) %>%
hchart() %>%
hc_add_theme(thm)
```
### Sales by State
```{r}
data("USArrests", package = "datasets")
data("usgeojson")
USArrests <- USArrests %>%
mutate(state = rownames(.))
n <- 4
colstops <- data.frame(
q = 0:n/n,
c = substring(viridis(n + 1), 0, 7)) %>%
list.parse2()
highchart() %>%
hc_add_series_map(usgeojson, USArrests, name = "Sales",
value = "Murder", joinBy = c("woename", "state"), dataLabels = list(enabled = TRUE, format = "{point.properties.postalcode}")) %>%
hc_colorAxis(stops = colstops) %>%
hc_legend(valueDecimals = 0, valueSuffix = "%") %>%
hc_mapNavigation(enabled = TRUE) %>%
hc_add_theme(thm)
```
Column {.tabset data-width=400}
-----------------------------------------------------------------------
### Sales by Category
data("Groceries", package = "arules") dfitems <- tbl_df(Groceries@itemInfo) set.seed(10) dfitemsg <- dfitems %>% mutate(category = gsub(" ", "-", level1), subcategory = gsub(" ", "-", level2)) %>% group_by(category, subcategory) %>% summarise(sales = n() ^ 3 ) %>% ungroup() %>% sample_n(31) tm <- treemap(dfitemsg, index = c("category", "subcategory"), vSize = "sales", vColor = "sales", type = "value", palette = rev(viridis(6))) highchart() %>% hc_add_series_treemap(tm, allowDrillToNode = TRUE, layoutAlgorithm = "squarified") %>% hc_add_theme(thm)
### Best Sellers
```{r}
set.seed(2)
nprods <- 10
dfitems %>%
sample_n(nprods) %>%
.$labels %>%
rep(times = sort(sample( 1e4:2e4, size = nprods), decreasing = TRUE)) %>%
factor(levels = unique(.)) %>%
hchart(showInLegend = FALSE, name = "Sales", pointWidth = 10) %>%
hc_add_theme(thm) %>%
hc_chart(type = "bar")
```
我們可以看到這里的排版方式被大大的簡化了,我們只需要定義好Column和Row,然后在相應(yīng)的代碼塊里盡情的作圖就可以在前端頁面上可視化了,相比之下css真是操碎了心。
更多關(guān)于flexdashboard的高級技巧可以前往flexdashboard官網(wǎng)
echarts由于大家對echarts的呼聲很高,這里再演示一下echart在R中的調(diào)用。
# 下載包 install.packages( "recharts", repos = c("http://yihui.name/xran", "http://cran.rstudio.com") ) # 畫圖 recharts::echart(iris, ~Sepal.Length, ~Sepal.Width, series = ~Species)
另外一個(gè)牛逼的功能是,通過REmap這個(gè)包(已經(jīng)封裝了各種百度API),我們可以將物流的收貨地址直接輸入不必太規(guī)則的中文文本即可實(shí)現(xiàn)地圖數(shù)據(jù)的可視化。而且,最近特別火的莆田系醫(yī)院數(shù)據(jù)爬取及分布可視化大多也是通過REmap包實(shí)現(xiàn)的。
更多echarts的作圖這里不一一介紹,高級技巧可以前往recharts官網(wǎng)或者SupStat 郎大為:REmap。
Notebook根據(jù)雪晴數(shù)據(jù)網(wǎng)的最新消息,RStudio 也已經(jīng)實(shí)現(xiàn)了類似iPython的Notebook功能。
下面是雪晴數(shù)據(jù)網(wǎng)的教程:
配置步驟下載最新的RStudio每日版
下載最新版本的Rmarkdown包:
devtools::install_github("rstudio/rmarkdown")
設(shè)置選項(xiàng):Tools -> Global Options -> Rmarkdown -> Enable R Notebook -> Apply
像往常一樣打開一個(gè)新的Rmarkdown文件
設(shè)置YAML輸出選項(xiàng):將output: html_document 改為 output: html_notebook: default
Rmd + Docker = liftrliftr 視頻教程
躺坑排雷在安裝最新版本后,由于我的鏡像源設(shè)成了 MRAN,導(dǎo)致這里更新的 evaluate和knitr包的版本過低需要指定CRAN源重新升級。
> getOption("repos") CRAN "https://mran.revolutionanalytics.com/snapshot/2015-08-27"
install.packages(c("evaluate","knitr"),repos="http://mirror.bjtu.edu.cn/cran/")Notebook API
通過 Notebook API,我們還可以把任意的Rmd文檔輸出成Notebook。
rmarkdown::render("FinanceR.Rmd",out_format="html_notebook") notebook <- parse_html_notebook("FinanceR.nb.html")參考資料
R Markdown: Integrating A Reproducible Analysis Tool into Introductory Statistics
R Markdown example showing figures & tables with captions, equations, inline R values and references with a Zotero library
Playing with R, Shiny Dashboard and Google Analytics Data
阿里巴巴阿外:基于R的數(shù)據(jù)分析平臺(tái)
R Markdown Notebooks
Setting Up New R Notebook
This Week In Startups #634: Hadley Wickham
容器定義應(yīng)用:數(shù)據(jù)科學(xué)的容器革命
推薦工具文末,推薦一款類似于 Airbnb 用 Flask 生成博客的解決方案,可以有效在團(tuán)隊(duì)內(nèi)部做知識(shí)倉庫的共享:
Leanote:專為碼農(nóng)打造的免費(fèi)開源私有云筆記
比較可惜的是,我嘗試了多個(gè) Leanote 的Docker方案都沒有成功,如果讀者有成功案例歡迎在留言區(qū)留言。
另外,還推薦一個(gè)類似于 Endnote 的論文神器:
Zotero
利用 Zotero 我們可以輕松的通過 drap and drop 實(shí)現(xiàn)多人協(xié)同論文跟蹤管理的功能,并且支持Chrome插件、多平臺(tái)客戶端。
作為分享主義者(sharism),本人所有互聯(lián)網(wǎng)發(fā)布的圖文均遵從CC版權(quán),轉(zhuǎn)載請保留作者信息并注明作者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,如果涉及源代碼請注明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio
商業(yè)使用請聯(lián)系作者。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37918.html
摘要:概述工欲善其事必先利其器,如果現(xiàn)在要評選數(shù)據(jù)科學(xué)中最好用的編輯器注意一定是可以通過訪問的,和一定是角逐的最大熱門,正確使用編輯器可以很大地提升我們的工作效率。 概述 showImg(https://segmentfault.com/img/bVAdol); 工欲善其事必先利其器,如果現(xiàn)在要評選數(shù)據(jù)科學(xué)中最好用的Web 編輯器(注意一定是可以通過Web訪問的),RStudio和Jupyt...
摘要:概述隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自的容器化技術(shù)。本文將介紹利用容器技術(shù)如何加速數(shù)據(jù)科學(xué)在生產(chǎn)環(huán)境中的實(shí)際應(yīng)用。 showImg(https://segmentfault.com//img/bVxzYL); 概述 隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自Doc...
摘要:概述隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自的容器化技術(shù)。本文將介紹利用容器技術(shù)如何加速數(shù)據(jù)科學(xué)在生產(chǎn)環(huán)境中的實(shí)際應(yīng)用。 showImg(https://segmentfault.com//img/bVxzYL); 概述 隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自Doc...
摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗(yàn)假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認(rèn)為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個(gè)過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗(yàn)證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動(dòng)整個(gè)數(shù)據(jù)科學(xué)項(xiàng)...
摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗(yàn)假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認(rèn)為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個(gè)過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗(yàn)證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動(dòng)整個(gè)數(shù)據(jù)科學(xué)項(xiàng)...
閱讀 3017·2023-04-26 00:32
閱讀 498·2019-08-30 15:52
閱讀 2105·2019-08-30 15:52
閱讀 3347·2019-08-30 15:44
閱讀 3280·2019-08-30 14:09
閱讀 1416·2019-08-29 15:15
閱讀 3390·2019-08-28 18:12
閱讀 1074·2019-08-26 13:55