
解密Airbnb的數據科學部門如何使用R語言
我之所以在aribnb希望成為一名數據科學家是因為這里可以有一個非常多元化的團隊來一起解決重要的現實問題。我們不僅僅在性別上多樣化,而且在教育背景和工作經歷也是霄壤之別。我們的團隊包括數理統計的專家,從教育學到基因計算的博士,甚至也包括前職業橋牌選手和退伍老兵。這個訓練和經歷的差異性是我們團隊創造性思維的強大源泉動力和理解用戶的最好武器,但是它在團隊協作和知識共享上也對我們提出了挑戰。新加入Airbnb的團隊成員通常都掌握各式各樣的編程語言,包括R、Python、Matlab、Stata、SAS或者SPSS。為了擴大協作范圍,我們借助工具、培訓和基礎設施來統一我們的數據科學品牌。本文,我們將專注于我們在Airbnb所構建的R語言工具和一些列的R語言教程,其中大多數的課程都是適用于Python的。
在普及R語言上,我們還是兩條腿走路:一條腿是包的構建,另一條腿是教程。一方面,我們通過構建包來為常見問題來開發協作方案,將可視化工作標準化并且避免重復造輪子。另一方面,教程的努力目標在于給所有的數據科學家暴露我們所使用的特定包,并且提供深入學習各自想要學習的技能的機會。
在小的數據科學團隊中,獨立貢獻者經常寫一個函數、腳本或者模板來優化他們的工作流。而隨著團隊成長,不同的人會開發他們自己的工具來解決類似的問題。這就帶來了三個主要的挑戰:
通過GitHub企業版共享R包可以解決這三個挑戰,這使對我們的需求是一個完美的解決方案。具體來說:
這個包放在我們內部的Github企業版倉庫,相應的,用戶可以提交問題和改進建議。如果在一個分支上有新代碼被提交,那么這些代碼可以被Rbnb組內的開發者互相審查。一旦這個改變被大家認可并形成文檔,他們就會將新代碼融入到主分支,形成一個新版本的包。團隊成員可以用devtools直接從Github安裝最新版本的Rbnb。我們現在致力于添加風格和語法審查,并且用testthat測試覆蓋率。
Rbnb主要有四個組件:
大多數我們在 Rbnb 中使用的函數允許我們從Hadoop或者SQL環境將數據移動、聚合或篩選到R里面,然后用來做可視化、自然地完成基于內存的分析工作。在Rbnb之前,從Presto獲取數據到R里面來運行一個模型需要許多步驟。 數據科學家們需要對集群的準入做認真、打開SSH隧道、為Presto輸入主機、端口、模型、目錄數據來下載一個 csv 文件加載到R里面,這一切只是為了跑一下我們想要的模型?,F在,所有的這些工作可以通過兩個函數完成管道化操作。隨著 Rbnb 將這些過程隱藏在蒼穹之下,我們搞了一個像RPresto一樣維護良好的包。類似地,從R獲取數據然后移動到AWS的S3也是一行代碼搞定。數據科學家不再需要從R保存csv文件,通過我們的API秘鑰直接完成AWS的多用戶認證配置,并且支持直接通過shell腳本將csv文件移動到云端。更加重要的是,所有函數都遵循一個類似的標準(比如,place_action(orgin,destination))。
如果我們的數據基礎設施有所變化,-比如,如果一個集群移動或者AWS S3 認證的細節變動 – 我們可以修改我們的Rbnb包的內部,而不用修改我們之前定義好的函數接口。
這里展示了Rbnb中的一些函數。所有函數遵循一個類似的規范,通過綜合的代碼審查和對我們工作流的抽象減少了我們很多平常的工作。
這個包通過一致的數據可視化風格也幫助我們的工作在Airbnb內部品牌化 – 比如這些又 Bar Ifrach 和 Lisa Qian 提交的示例。我們也已經為 ggplot2、htmlwidgets、Shiny、不同報告的Rmarkdown模板的CSS樣式 構建了自定義主題、縮放規則和設計對象。這些特性重構了 R 字體和顏色默認的設置,使得整體上和Airbnb的品牌保持一致。
這個 Rbnb 包也有許多函數幫助我們來完成自動化任務,比如缺失值處理、按年趨勢計算、提升數據聚合性能、我們用來分析實驗的可重用模式等等。添加一個函數到這個包里可能花費很多時間,但是這最初的投資將帶來長期的回報。通過使用一樣的R包作為我們的構建模板來開發一樣的語言、數據可視化風格以及相互評審。
如果人們不知道怎么使用工具的話,你做了多少個工具都沒用。在一系列快速增長之后,我么年開始每月為新成員和現有成員做為期一周的數據集訓營。他們包括3個小時的 R 培訓以及一些用R和R Markdown完成的有可選導師的集訓營項目。
這個R集訓營班專注于 Rbnb 包和一些常用數據操作包的使用,包括數據框操作(比如tidyr和dplyr)、數據可視化(ggplot2)、以及動態報告撰寫(R Markdown)。我們在課程開始前會為參與者發放學習指南和資料。在上課期間,我們使用自己的數據貫穿一個結構化的教程,包括我們以工作實例的形式展現一些我們在工作中遇到的挑戰。
這個方法允許用戶在剛開始的幾個小時里不需要熟悉R的代碼就可以開始寫代碼了,并且完全不必擔心高級編程方法的復雜性。我們也介紹用戶使用我們內部風格指南和其他許多有用的R包,比如 formattable、diagrammeR以及broom。最后,我們給他們尋求幫助和網絡資源的一些方向。
在集訓營之后,我們鼓勵用戶持續學習。我們贊助每個人參加 DataCamp 來幫助團隊成員根據自己的學習進度組織學習小組完成可交互性的在線課程。我們也讓新人和導師結對,這些導師幫新人帶上數據科學家的臺階。我們有一個內部R語言問答的Slack頻道。我們團隊成員組織學習的課程主題有 SparkR、R 對象系統、包的開發等等。最近,我們團隊成員參加一個由RStudio組織的高級的R開發者沙龍,并且分享了我們從團隊成長中的點點滴滴。
我們的數據科學團隊的成員也鼓勵Rbnb貢獻代碼。通過一個全面的代碼評審的過程允許用戶開發新技能將為將來的項目帶來有價值。此外,他們對一個重要的內部工具有了主人翁精神并且從同行那里知道如何從各自的貢獻中受益。我們在最佳實踐、功能文檔,測試,和風格方面都會指導新的貢獻者。
我們也致力于在Airbnb之外擴展R語言社區。我們贊助像即將開始的 rOpenSci Unconf 大會,為開源項目貢獻代碼(比如ggtech、ggradar),以及在 Shiny 開發者大會 和 UseR 大會做一些分享。去年,我們很榮幸影響到了許多R 開發者,包括 Hadley Wickham 和 Ramnath Vaidyanathan 他們也拜訪了我們在三藩市的總部。
在結構化學習資源中這個工具變得越來越有影響力。
在工具和教程之外,我們也發明一些強大的數據基礎設施。在過去的3年間,我們的 Shiny 應用從我們的服務器開始運行的第一天就已經有將近10萬個頁面瀏覽量。我們最近開始支持一個新的 RStudio Server 和 SparkR 集群。我們有一個獨立主廚的R包配方以及橫跨我們集群上的版本控制,這允許我們產出快速的更新并且大規模部署。
強大的 R 語言工具、持續學習、與R社區的緊密結合、強大的數據基礎設施,這些都幫助我么你的數據科學團隊不斷成長。自從兩年以前我們開始這個動議,我們看過的團隊成員有從未打開R到轉變成強大的開發人員現在都開始給我們的新員工教R。這個我們已經建立的基礎允許我們雇傭一個大范圍的數據科學家來分享成長心態和學習新技能的興奮。這個方法幫助我們建立一個能為我們的工作帶來新的見解和觀點的多元化團隊。
Rbnb R包的創建也激發了Python開發人員發布數據科學家的內部稱為Airpy的Python包。我們的R開發人員也在合作開發這個包,所以這個包有一個類似的接口和函數集。我們鼓勵團隊成員同時為Rbnb何Airpy來貢獻代碼,我們也在一起工作來開發更多有效的教育資源和工具來加持我們的團隊。今天,許多我們團隊的成員同時精通Python和R,同時用這兩張語言都可以評審和寫出可靠的代碼。在最近的一個為數66人的團隊成員調查中,我們發現80%的數據科學家和分析師在R的數據分析的自我評價都是偏向于”專家”而不是”初學者”,即使其中只有64%的人將R作為他們首選的數據分析語言。類似地,47%的團隊成員認為自己用Python做數據分析已經進入專家的行列,即使只有31%的人將Python作為首選分析工具。這保留了5%表明他們同時均衡地使用這兩種工具。我們專注于建立一個同時精通兩種語言的平衡團隊,在我們招聘的過程中也不會帶有任何偏好或偏見。這是個讓我們技能、經歷、背景多樣化的方法又進一步提升了團隊的影響力。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25