BCG X Data Scientist OA 覆盤:四題順利透過,基本都是老題

前兩天剛帶學員走了一場 BCG X Data Scientist OA 。說實話,這家 OA 做多了會有一種“似曾相識”的感覺。題型基本穩定,這兩年大多數場次都還是 那兩套題來回出。

我們這邊前後帶著做過不少次,題目結構幾乎沒怎麼變。只要之前整理過思路或者寫過一遍程式碼框架,現場做其實挺快的。這場一共 4 道 Python / 資料處理 + 簡單建模題,整體難度不算高,更像是一個小型 data pipeline + ML task。

簡單把這四題的核心內容說一下。

BCG X Data Scientist OA 覆盤:四題順利透過,基本都是老題

Q1 資料統計題

第一題就是比較典型的資料統計題。給了司機表 + 多個行程資料檔案,最後需要算幾個指標並輸出 CSV。

主要做三件事:

  • 從司機表裡算司機平均評分
  • 統計有第二語言的司機比例
  • 把所有行程檔案合併起來,算成功行程佔比

這裡唯一需要注意的就是行程資料是 多個檔案,需要先拼起來再做統計。其餘基本都是 pandas 的常規操作,比如:

  • 讀取資料
  • 條件篩選
  • 求均值
  • 統計比例

最後把三個指標整理成一個小表格,然後匯出 CSV。

Q2 資料預處理

第二題就比較像機器學習專案裡的資料預處理流程。

主要步驟大概是這些:

  • 用 訓練集年齡均值 填充缺失年齡(四捨五入)
  • 把 訓練集和測試集合並 方便統一處理
  • 按訓練集類別順序,對 車型和第二語言 做數值編碼
  • 對 小費金額 做標準化處理,並保留五位小數
  • 把 司機等級 A / B 對映成 0 / 1

處理完以後再把處理後的訓練集和測試集分別儲存。

這一題本質上就是一個簡化版 feature engineering + preprocessing pipeline。如果平時用 pandas 或 sklearn 比較多,其實寫起來很順。

Q3 資料整合

第三題稍微複雜一點,主要是多表關聯。

資料來自三張表:

  • driver
  • vehicle
  • trip

需要構造幾個新的欄位。

第一個是車輛年檢間隔天數
根據車輛上次年檢時間,算出距離當前時間過了多少天。

第二個是司機駕駛經驗
用一個簡單公式算:

經驗年數 = 2023 - 開始駕駛年份

第三個是司機總點贊數
需要把 trip 表裡的各種點贊統計彙總到司機層級。

做法基本是:

  • 按司機聚合 trip 資料
  • 把點贊相關欄位求和
  • 再 merge 回 driver 表

如果某些司機沒有行程記錄,點贊數需要填 0。

最後把需要的列整理出來,輸出彙總 CSV。

Q4 隨機森林建模 + 閾值調整

最後一題是一個簡單分類模型。

流程比較標準:

1 讀取訓練資料
2 分離特徵和標籤

然後做缺失值處理:

  • 數值特徵 → 中位數填充
  • 類別特徵 → 眾數填充

接著把類別變數編碼。

模型使用的是Random Forest,同時給B 類設定更高權重,因為題目更關注這一類。

訓練完成後還有一個關鍵步驟:
需要在驗證集上嘗試不同閾值。

目標是:

  • 滿足 precision 的最低要求
  • 同時儘量提高 recall

找到合適閾值以後,再用這個閾值對測試集做預測,最後輸出結果檔案。

如果你也在準備OA

我們已經帶了不少學員一起過這種 OA,像 BCG、還有一些諮詢公司 DS 崗的題,其實套路都差不多。如果你最近也剛好拍到了類似的 OA,心裡有點沒底,或者擔心考試的時候突然卡思路,其實也可以提前瞭解一下我們的 OA實時輔助服務 。考試的時候有人幫你一起把關,很多同學都是這樣把整場 OA 穩穩做完的。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0