[L22203 數據處理技術工具]模擬考題

更新 發佈閱讀 58 分鐘

問題 1 (中級)

------------------------------

題目: 在數據預處理階段,對於含有大量缺失值(例如20%)的關鍵數值型特徵,以下哪種缺失值處理策略在考慮到數據精確性和變量間關係時,通常被認為是較優的選項?

選項:

A) 直接移除所有包含缺失值的樣本。

B) 使用該特徵的均值或中位數進行填補。

C) 運用機器學習模型(如K-Nearest Neighbors或Random Forest)預測並填補缺失值。

D) 將缺失值視為一個新的類別,並進行獨熱編碼。


答案: C) 運用機器學習模型(如K-Nearest Neighbors或Random Forest)預測並填補缺失值。

解析: 當關鍵特徵含有大量缺失值時,直接移除可能導致大量數據損失。均值或中位數填補雖然簡單,但會降低數據方差並忽略變量間的關係。將缺失值視為新類別通常適用於類別型特徵。而使用機器學習模型進行預測填補,可以更好地利用數據集中其他特徵的信息來估計缺失值,從而提高填補的精確性,減少引入的偏差。


問題 2 (中級)

------------------------------

題目: 一位數據科學家正在處理一個包含「客戶年齡」、「月收入」和「居住城市」三個特徵的數據集。如果「居住城市」有數千個獨特值(高基數),且對模型預測非常重要,以下哪種類別編碼方法在兼顧預測能力和避免維度災難方面,通常會優先被考慮?

選項:

A) 獨熱編碼 (One-Hot Encoding)。

B) 標籤編碼 (Label Encoding)。

C) 頻率編碼 (Frequency Encoding)。

D) 序數編碼 (Ordinal Encoding)。


答案: C) 頻率編碼 (Frequency Encoding)。

解析: 對於高基數類別特徵,獨熱編碼會產生過多的新特徵,導致維度災難。標籤編碼和序數編碼會錯誤地賦予無序類別數值關係。頻率編碼(或目標編碼)是處理高基數類別特徵的有效方法,它用類別出現的頻率(或與目標變量的關係)替換原始類別值,既能保留信息又避免了維度膨脹。


問題 3 (中級)

------------------------------

題目: 在對數值型特徵進行特徵縮放時,如果數據集中存在極端異常值,且模型對特徵的尺度敏感(如SVM、KNN),以下哪種方法是處理這種情況下特徵縮放的合適策略?

選項:

A) 直接使用正規化 (Min-Max Scaling),將數據縮放到 [0, 1] 範圍。

B) 使用標準化 (Standardization),將數據轉換為均值0、標準差1的分佈。

C) 先對數據進行對數轉換 (Log Transformation),再進行特徵縮放。

D) 移除所有異常值後,再進行正規化。


答案: C) 先對數據進行對數轉換 (Log Transformation),再進行特徵縮放。

解析: 正規化對異常值非常敏感,會將異常值壓縮到邊界,導致其他數據點的區分度降低。標準化對異常值雖然有一定抵抗力,但仍受其影響。對數轉換可以有效壓縮極端值,使其分佈更接近正態分佈,然後再進行標準化或正規化,可以更好地處理含有異常值的數據。移除異常值可能導致信息丟失,且需謹慎評估。


問題 4 (中級)

------------------------------

題目: 一個數據專案經理發現,某數值特徵在數據準備階段存在顯著的右偏態分佈。為了改善機器學習模型的訓練效果,他決定對該特徵進行轉換。以下哪種轉換方法最適合處理右偏態分佈,使其更接近常態分佈?

選項:

A) Min-Max Scaling

B) Standard Scaling

C) Box-Cox Transformation

D) One-Hot Encoding


答案: C) Box-Cox Transformation

解析: Min-Max Scaling 和 Standard Scaling 是特徵縮放方法,不直接改變數據的分佈形態。One-Hot Encoding 用於類別特徵。Box-Cox Transformation 是一種廣泛用於將非正態分佈數據轉換為更接近正態分佈的統計方法,特別適合處理偏態分佈,如右偏態。


問題 5 (中級)

------------------------------

題目: 在數據整合過程中,數據工程師面對多個數據源,這些源頭的「用戶ID」欄位命名不一致,且部分數據存在格式上的細微差異。為了確保數據的一致性和準確匹配,以下哪種數據整合策略或技術是首要的考量?

選項:

A) 直接使用SQL JOIN操作,忽略不一致的命名。

B) 進行模糊匹配 (Fuzzy Matching) 搭配設定相似度閾值。

C) 僅選擇其中一個數據源,捨棄其他數據源。

D) 透過獨熱編碼統一所有「用戶ID」。


答案: B) 進行模糊匹配 (Fuzzy Matching) 搭配設定相似度閾值。

解析: 直接使用SQL JOIN會因為命名不一致而失敗。捨棄數據源會造成信息丟失。獨熱編碼不適用於匹配ID。模糊匹配是一種處理不精確或部分匹配數據的技術,它允許在一定相似度閾值下進行匹配,有效解決命名不一致和格式細微差異的問題,是數據整合中常用的高階技巧。


問題 6 (中級)

------------------------------

題目: 在建立一個電商平台的顧客流失預測模型時,數據分析師考慮從「顧客過去的購買頻率」和「顧客在網站上停留的平均時間」這兩個原始特徵中,創造一個新的特徵來捕捉更深層次的流失傾向。以下哪種特徵創建方法最能有效揭示這兩個特徵之間的「聯合效應」?

選項:

A) 將「購買頻率」和「停留時間」分別進行對數轉換。

B) 簡單地將「購買頻率」和「停留時間」相加。

C) 創建一個「購買頻率」與「停留時間」的交互特徵(例如相乘)。

D) 對「購買頻率」進行獨熱編碼。


答案: C) 創建一個「購買頻率」與「停留時間」的交互特徵(例如相乘)。

解析: 對數轉換是處理偏態分佈,相加可能只是簡單的線性組合,獨熱編碼不適用於數值特徵。創建交互特徵(Interaction Features),通常是將兩個或多個特徵相乘,能有效捕捉這些特徵之間的聯合效應。例如,高購買頻率但低停留時間可能指示一種行為模式,而高購買頻率且高停留時間則可能是另一種,相乘特徵能更好地將這些不同組合區分開來。


問題 7 (中級)

------------------------------

題目: 一個機器學習專案中,開發者創建了數百個特徵,導致模型訓練速度極慢且易於過擬合。為了快速減少特徵數量並初步篩選掉無關特徵,以下哪種特徵選擇方法通常是優先考慮且效率較高的?

選項:

A) 使用遞歸特徵消除 (Recursive Feature Elimination, RFE)。

B) 透過Lasso迴歸的L1正則化。

C) 運用基於統計檢定(如卡方檢定、信息增益)的過濾法 (Filter Method)。

D) 透過前向選擇 (Forward Selection) 逐步添加特徵。


答案: C) 運用基於統計檢定(如卡方檢定、信息增益)的過濾法 (Filter Method)。

解析: RFE 和前向選擇是包裹法,計算成本高,不適合快速初步篩選。Lasso迴歸是嵌入法,雖然有效,但仍需模型訓練。過濾法 (Filter Method) 獨立於模型,透過統計檢定評估每個特徵與目標變量的相關性,計算效率高,適合在特徵數量龐大時進行快速初步篩選,以降低後續更複雜特徵選擇方法的計算負擔。


問題 8 (中級)

------------------------------

題目: 在文本分析任務中,如果希望捕捉文本中詞語的重要性以及其在文檔中的分佈特徵,以下哪種特徵提取技術是常用的且能夠有效表示這些信息的?

選項:

A) 詞性標註 (Part-of-Speech Tagging)。

B) 詞袋模型 (Bag-of-Words)。

C) TF-IDF (Term Frequency-Inverse Document Frequency)。

D) 獨熱編碼 (One-Hot Encoding)。


答案: C) TF-IDF (Term Frequency-Inverse Document Frequency)。

解析: 詞性標註是語言學處理,詞袋模型只考慮詞語出現與否或頻率,獨熱編碼不適用於文本。TF-IDF 是一種結合詞頻 (Term Frequency) 和逆文檔頻率 (Inverse Document Frequency) 的統計方法,它能評估一個詞語對於一個文檔集或一個語料庫中的其中一份文檔的重要性。它既考慮了詞語在單一文檔中的重要性,也考慮了它在整個語料庫中的區分度。


問題 9 (中級)

------------------------------

題目: 一位數據科學家希望將一個包含數千個維度的高維度數據集降維到2維,以便進行可視化並探索潛在的數據聚類。他發現傳統的PCA無法清晰地展現數據的非線性結構。這種情況下,哪種降維技術最適合用於揭示高維數據中的非線性分佈和局部結構?

選項:

A) 主成分分析 (PCA)。

B) 線性判別分析 (LDA)。

C) t-SNE (t-distributed Stochastic Neighbor Embedding)。

D) 因子分析 (Factor Analysis)。


答案: C) t-SNE (t-distributed Stochastic Neighbor Embedding)。

解析: PCA 和 LDA 都是線性降維方法,不擅長處理非線性結構。因子分析主要用於識別潛在因子。t-SNE 是一種非線性降維技術,特別適用於高維數據的可視化,它能有效地將數據點映射到低維空間,同時盡可能保持數據點之間的局部相似性,從而揭示複雜的非線性數據結構。


問題 10 (中級)

------------------------------

題目: 在模型部署前,MLOps工程師需要確保模型的預測輸入特徵與訓練時的特徵完全一致。若在特徵工程階段使用了『過去7天的平均銷售額』作為特徵,那麼在模型服務化時,應如何確保這個特徵的即時且準確計算?

選項:

A) 將計算邏輯硬編碼在模型內部,隨模型部署。

B) 讓模型直接訪問原始數據庫,即時計算。

C) 構建一個獨立的線上特徵服務 (Feature Store) 來預計算和提供此類特徵。

D) 假設部署環境中已有該特徵,不需額外處理。


答案: C) 構建一個獨立的線上特徵服務 (Feature Store) 來預計算和提供此類特徵。

解析: 將計算邏輯硬編碼會造成維護困難和邏輯重複。直接訪問數據庫可能導致延遲和性能問題。假設特徵已存在是危險的。構建線上特徵服務 (Feature Store) 是MLOps的最佳實踐,它能統一管理、預計算和提供線上/離線特徵,確保特徵的一致性和即時性,是特徵工程在生產環境中的重要延伸。


問題 11 (中級)

------------------------------

題目: 在評估分散式處理框架時,一個關鍵的考量點是其處理數據流的能力,特別是對於需要極低延遲和精確一次性處理語義的應用場景(如金融交易分析)。在主流的分散式處理框架中,哪一個在此類場景下表現最為突出?

選項:

A) Apache Hadoop MapReduce

B) Apache Spark (Batch Mode)

C) Apache Flink

D) Apache Pig


答案: C) Apache Flink

解析: Hadoop MapReduce主要用於批次處理且延遲高。Apache Spark雖然通用,但其傳統串流處理(Spark Streaming)基於微批次,相對Flink的事件時間處理延遲仍較高。Apache Pig是基於Hadoop的數據流語言。Apache Flink設計之初即專為有界和無界數據流處理,強調極低延遲、高吞吐量和精確的一次性語義,使其在實時分析和事件驅動型應用中具有顯著優勢。


問題 12 (中級)

------------------------------

題目: 一個大型企業正在規劃其數據湖架構,希望在單一集群中同時支持大規模的批次ETL作業、互動式SQL查詢和機器學習模型訓練。為了實現這一目標,且兼顧性能和開發靈活性,以下哪種分散式處理框架是最佳的選擇?

選項:

A) 僅使用Apache Hadoop MapReduce。

B) 部署一個基於Apache Flink的專用集群。

C) 採用Apache Spark作為核心通用處理引擎。

D) 依賴傳統的關聯式數據庫進行所有處理。


答案: C) 採用Apache Spark作為核心通用處理引擎。

解析: Hadoop MapReduce主要用於批次處理,不支持互動式查詢和機器學習庫。Apache Flink雖然在串流處理方面強大,但其通用性不如Spark。傳統關聯式數據庫無法處理海量數據。Apache Spark以其通用的特性,支援批次處理、互動式查詢(Spark SQL)、機器學習(MLlib)和圖計算,且性能優異,是同時滿足多種工作負載的最佳選擇。


問題 13 (中級)

------------------------------

題目: 在一個使用Apache Spark進行數據處理的場景中,數據工程師發現一個大型的數據集在多個轉換操作後,每次執行都需要重新從源頭計算。為了避免重複計算並提高效率,他應該採取哪種Spark的優化策略?

選項:

A) 增加集群的節點數量。

B) 將數據集寫入磁碟,然後再讀取。

C) 對該數據集使用`cache()`或`persist()`操作。

D) 將所有轉換操作合併成一個複雜的轉換。


答案: C) 對該數據集使用`cache()`或`persist()`操作。

解析: 增加節點數量是擴展計算能力,但不能解決重複計算問題。將數據寫入磁碟會增加I/O延遲。合併轉換可能使代碼難以維護且不一定解決重複計算。`cache()`和`persist()`是Spark提供的優化機制,它們將RDD或DataFrame在計算後緩存到記憶體中(或磁碟),以便後續操作可以直接使用緩存數據,避免了重複計算,顯著提高了性能。


問題 14 (中級)

------------------------------

題目: HDFS (Hadoop Distributed File System) 在設計上特別強調高容錯性。以下哪項特性是HDFS實現這種高容錯性的核心機制?

選項:

A) 數據僅儲存於單一節點,確保數據一致性。

B) 透過將數據塊冗餘複製到多個節點來保證。

C) 採用磁碟陣列 (RAID) 技術在每個節點上。

D) 依賴用戶手動備份重要數據。


答案: B) 透過將數據塊冗餘複製到多個節點來保證。

解析: HDFS的核心設計理念是將大文件分割成數據塊,並將每個數據塊冗餘地複製到集群中的多個(通常是3個)不同節點上。這樣即使某個節點發生故障,數據仍然可以從其他副本中恢復,從而提供了高容錯性。其他選項不符合HDFS的設計原理。


問題 15 (中級)

------------------------------

題目: 一個數據工程師正在評估為一個新的即時推薦系統選擇分散式處理框架。該系統需要處理每秒數百萬事件的數據流,並在毫秒級別內生成推薦結果。除了極低的延遲外,還要求嚴格的數據處理精確性(Exactly-Once Semantics)。基於這些嚴苛需求,他最有可能選擇哪個框架?

選項:

A) Apache Hadoop MapReduce

B) Apache Spark Streaming

C) Apache Flink

D) Apache Hive


答案: C) Apache Flink

解析: Apache Hadoop MapReduce 和 Apache Hive 主要用於批次處理,無法滿足即時性。Apache Spark Streaming 雖然支持串流,但其基於微批次處理的特性,在延遲和Exactly-Once Semantics方面通常不如原生串流處理器。Apache Flink 專為有界和無界數據流設計,提供極低延遲、高吞吐量和強大的狀態管理,以及對Exactly-Once Semantics的內置支持,是此類實時、高精確性要求的首選。


問題 16 (中級)

------------------------------

題目: 在Spark的術語中,RDD (Resilient Distributed Dataset) 的“Resilient”特性指的是什麼?

選項:

A) RDD的數據可以隨意修改。

B) RDD能夠在數據丟失時自動從血緣圖(lineage graph)重建。

C) RDD僅儲存在記憶體中,無法寫入磁碟。

D) RDD可以透過簡單的SQL查詢進行操作。


答案: B) RDD能夠在數據丟失時自動從血緣圖(lineage graph)重建。

解析: RDD是不可變的 (immutable)。它的“Resilient”特性是指,當集群中的節點故障導致部分數據丟失時,Spark能夠利用RDD的血緣圖(即一系列轉換操作的記錄)追溯數據來源,並自動重新計算丟失的分區,從而實現容錯性,避免數據丟失。這與儲存位置和SQL操作無關。


問題 17 (中級)

------------------------------

題目: 一位數據工程師正在設計一個數據處理管線,需要將來自多個源系統的數據進行清洗、轉換,並最終加載到一個雲數據倉儲中。考慮到雲數據倉儲擁有強大的計算能力,他希望盡可能地利用倉儲的性能來執行轉換操作,以縮短數據載入時間。這種情況下,哪種數據整合模式是更優的選擇?

選項:

A) ETL (Extract, Transform, Load)。

B) ELT (Extract, Load, Transform)。

C) OLAP (Online Analytical Processing)。

D) OLTP (Online Transaction Processing)。


答案: B) ELT (Extract, Load, Transform)。

解析: ETL在數據載入目標前進行轉換,可能需要額外的中間處理資源。OLAP和OLTP是數據庫類型而非整合模式。ELT模式首先將原始數據快速提取並載入到高性能的雲數據倉儲中,然後利用倉儲本身的計算能力來執行數據轉換操作。這可以顯著減少數據載入階段的延遲,並充分利用雲數據倉儲的彈性擴展能力。


問題 18 (中級)

------------------------------

題目: 在一個自動化的數據處理管線中,為了確保數據在流經各個階段時的質量,MLOps工程師決定在關鍵節點引入數據品質檢查。以下哪一項功能是數據品質檢查工具(如Great Expectations)在管線中能夠提供的核心能力?

選項:

A) 自動優化數據庫查詢性能。

B) 定義並驗證數據是否符合預期的數據模式和業務規則。

C) 自動將數據從一種格式轉換為另一種格式。

D) 僅在手動觸發時進行數據檢查。


答案: B) 定義並驗證數據是否符合預期的數據模式和業務規則。

解析: 數據品質檢查的核心目標是定義數據的「期望 (Expectations)」,並自動驗證數據是否符合這些期望,例如檢查列是否有缺失值、數值範圍是否正確、類別值是否在預期列表中等。它不負責性能優化或格式轉換,且應是自動化管線的一部分而非僅手動觸發。


問題 19 (中級)

------------------------------

題目: 一個負責維護數據管線的MLOps團隊,為了提高開發效率、減少部署錯誤,並確保不同環境下數據處理邏輯的一致性,決定在數據管線的開發和部署中引入DevOps的最佳實踐。以下哪項技術或原則最符合這種需求?

選項:

A) 僅使用手動部署流程,以確保每個環節都經過人工審核。

B) 強制所有數據處理腳本僅使用單一編程語言。

C) 實施數據處理管線的CI/CD (Continuous Integration/Continuous Deployment) 和容器化 (Containerization)。

D) 限制數據源的數量,以減少複雜性。


答案: C) 實施數據處理管線的CI/CD (Continuous Integration/Continuous Deployment) 和容器化 (Containerization)。

解析: 手動部署容易出錯且效率低。限制編程語言和數據源雖然有助於簡化,但不是最佳實踐。CI/CD 和容器化是DevOps的核心,將自動化測試、版本控制、標準化部署流程引入數據管線,極大提升了效率、可靠性和環境一致性,是DataOps/MLOps的關鍵組成部分。


問題 20 (中級)

------------------------------

題目: Apache Airflow作為一個數據協調工具,其核心概念是使用DAGs (Directed Acyclic Graphs) 來定義工作流。以下關於DAGs在Airflow中的描述,哪一項是錯誤的?

選項:

A) DAG中的每個節點代表一個任務 (Task)。

B) DAG定義了任務之間的依賴關係和執行順序。

C) DAG必須是無環的,即不允許循環依賴。

D) DAGs的執行是即時的,不受排程影響。


答案: D) DAGs的執行是即時的,不受排程影響。

解析: DAG中的每個節點確實代表一個任務,且定義了任務之間的依賴和順序,並且必須是無環的。Airflow的核心功能就是透過排程器 (Scheduler) 來定時觸發DAG的執行,因此其執行是受排程影響的,並非即時的。對於即時處理,通常會使用Flink等專用串流處理框架。


問題 21 (中級)

------------------------------

題目: 在構建數據處理管線時,為了確保機器學習模型訓練的可重現性,並追蹤數據隨時間的演變對模型性能的影響,以下哪種實踐是最關鍵的?

選項:

A) 頻繁地更換數據源以獲取最新數據。

B) 在每次模型訓練前手動記錄數據的Hash值。

C) 實施數據版本控制 (Data Versioning)。

D) 僅使用靜態數據集進行模型訓練。


答案: C) 實施數據版本控制 (Data Versioning)。

解析: 頻繁更換數據源會讓可重現性變差。手動記錄Hash值耗時且容易出錯。僅使用靜態數據集不符合實際業務需求。數據版本控制是一種系統化管理數據集變化的方法,它允許開發者追蹤數據集的所有修改,並能在需要時回溯到特定版本,這是確保模型訓練可重現性和數據譜系 (data lineage) 的關鍵實踐。


問題 22 (中級)

------------------------------

題目: 以下Python程式碼片段通常用於什麼目的?


```python

from sklearn.preprocessing import StandardScaler

import pandas as pd


data = pd.DataFrame({'feature1': [10, 20, 30, 40], 'feature2': [1, 2, 3, 400]})

scaler = StandardScaler()

transformed_data = scaler.fit_transform(data)

```

選項:

A) 執行類別特徵編碼。

B) 處理數據集中的缺失值。

C) 對數值特徵進行標準化 (Standardization)。

D) 進行主成分分析 (PCA)。


答案: C) 對數值特徵進行標準化 (Standardization)。

解析: 這段程式碼使用了`sklearn.preprocessing.StandardScaler`,其`fit_transform`方法會計算數據的均值和標準差,然後將數據轉換為均值為0、標準差為1的分佈,這就是標準化。它不執行類別編碼、缺失值處理或PCA。


問題 23 (中級)

------------------------------

題目: 在Spark中,`DataFrame`和`RDD`都是常用的數據抽象,但它們在性能和易用性上有所不同。以下哪項關於`DataFrame`相對於`RDD`的優勢描述是正確的?

選項:

A) `DataFrame`是惰性求值,而`RDD`是即時求值。

B) `DataFrame`提供了更豐富的類型安全性和結構化數據操作API。

C) `DataFrame`不能利用Catalyst優化器進行查詢優化。

D) `DataFrame`比`RDD`更能處理非結構化數據。


答案: B) `DataFrame`提供了更豐富的類型安全性和結構化數據操作API。

解析: RDD和DataFrame都是惰性求值。DataFrame提供了更高級別的抽象和更豐富的結構化數據操作API(如SQL查詢),並且能夠利用Catalyst優化器進行底層的查詢優化,這是其相對於RDD的重要優勢。RDD更底層,擅長處理非結構化或半結構化數據,但DataFrame通過Schema也能處理。


問題 24 (中級)

------------------------------

題目: 當數據工程師需要在一個分散式數據處理管線中,將不同格式的數據從多個數據源載入到數據湖中,並且希望盡量不對原始數據進行修改,以保持數據的原始狀態。在載入後,再利用數據湖的強大計算能力進行轉換。這種策略最符合哪種數據整合模式?

選項:

A) ETL

B) ELT

C) OLAP

D) Data Mart


答案: B) ELT

解析: ETL是在載入前進行轉換。OLAP和Data Mart是數據倉庫概念。ELT(Extract, Load, Transform)模式的特點是將數據提取後直接載入到目標系統(如數據湖),然後在目標系統中進行轉換。這與題目中『不對原始數據進行修改,以保持數據的原始狀態』和『利用數據湖的強大計算能力進行轉換』的描述完全吻合。


問題 25 (中級)

------------------------------

題目: 一個數據分析團隊在進行A/B測試結果分析時,發現用戶行為數據中的『點擊率』數據分佈呈現高度的正偏態。如果直接使用這個偏態數據進行線性迴歸模型訓練,可能導致模型預測效果不佳。為了改善這種情況,數據分析師應優先考慮哪種數據轉換策略?

選項:

A) One-Hot Encoding

B) Min-Max Scaling

C) Log Transformation

D) Feature Interaction


答案: C) Log Transformation

解析: One-Hot Encoding 用於類別特徵。Min-Max Scaling 只是縮放數據範圍,不改變分佈形態。Feature Interaction 是用於創建新特徵。Log Transformation(對數轉換)是一種常用的數學轉換方法,可以有效壓縮右偏數據的尺度,使其分佈更接近對稱,從而改善模型的性能,特別是對於線性模型。


問題 26 (中級)

------------------------------

題目: 在機器學習專案中,Lasso迴歸和Ridge迴歸都屬於正則化方法,用於防止模型過擬合。Lasso迴歸相較於Ridge迴歸,在特徵選擇方面有何獨特優勢?

選項:

A) Lasso迴歸能夠將不重要的特徵係數縮小到接近零,但無法完全為零。

B) Lasso迴歸傾向於將不重要的特徵係數直接壓縮為零,從而實現自動特徵選擇。

C) Ridge迴歸比Lasso迴歸在特徵選擇方面表現更優。

D) Lasso迴歸僅適用於分類問題,不適用於迴歸問題。


答案: B) Lasso迴歸傾向於將不重要的特徵係數直接壓縮為零,從而實現自動特徵選擇。

解析: Lasso迴歸使用L1正則化,其懲罰項會導致模型將部分不重要特徵的係數精確地縮減為零,從而達到自動特徵選擇的目的。Ridge迴歸使用L2正則化,只能將係數縮小到接近零,但不會完全為零。Lasso迴歸既可用於分類也可用於迴歸。


問題 27 (中級)

------------------------------

題目: 在分散式系統中,高可用性是設計時的一個關鍵考量。對於HDFS來說,當NameNode發生故障時,為了確保文件系統的元數據不丟失並能快速恢復,HDFS通常會採用哪種機制?

選項:

A) 將所有元數據儲存在每個DataNode上。

B) 依賴用戶手動定期備份NameNode的狀態。

C) 採用HA (High Availability) 模式,配置主備NameNode或多個NameNode。

D) 將元數據直接儲存在Zookeeper中。


答案: C) 採用HA (High Availability) 模式,配置主備NameNode或多個NameNode。

解析: NameNode是HDFS的單點故障 (SPOF)。為了解決這個問題,HDFS通常會部署在HA模式下,配置一組高可用的NameNode(通常是Active/Standby模式),並結合共享儲存(如QJM或NFS)和Zookeeper來實現元數據的同步和故障切換,確保元數據不丟失且服務能快速恢復。將元數據儲存在每個DataNode或手動備份都不是HA的常用機制。


問題 28 (中級)

------------------------------

題目: 以下Python程式碼片段展示了什麼樣的特徵工程技術?


```python

from sklearn.preprocessing import PolynomialFeatures

import numpy as np


X = np.array([[2, 3], [4, 5]])

poly = PolynomialFeatures(degree=2, include_bias=False)

X_poly = poly.fit_transform(X)

# X_poly將包含原始特徵、它們的平方項以及它們的交互項

```

選項:

A) 獨熱編碼 (One-Hot Encoding)。

B) 頻率編碼 (Frequency Encoding)。

C) 多項式特徵 (Polynomial Features) 生成。

D) 特徵縮放 (Feature Scaling)。


答案: C) 多項式特徵 (Polynomial Features) 生成。

解析: `sklearn.preprocessing.PolynomialFeatures` 用於從原始特徵中生成多項式特徵,包括原始特徵的冪次(例如 x^2, y^2)以及特徵之間的交互項(例如 x*y)。這是一種常用的特徵創建技術,用於捕捉數據中的非線性關係。


問題 29 (中級)

------------------------------

題目: 在設計一個數據處理管線時,MLOps工程師需要選擇一個數據協調工具來管理數十個相互依賴的批次任務。這些任務需要依賴前一個任務的成功才能啟動,且可能需要定時排程。以下哪種工具最適合這種複雜且有依賴關係的批次任務排程和管理?

選項:

A) Python的`cron`排程器。

B) Apache Kafka。

C) Apache Airflow。

D) Apache ZooKeeper。


答案: C) Apache Airflow。

解析: Python的`cron`只能簡單定時,無法處理複雜的任務依賴。Apache Kafka是用於實時數據流處理的平台。Apache ZooKeeper是用於分散式協調服務。Apache Airflow 是一個專為數據工作流設計的協調工具,它使用DAGs(有向無環圖)來定義任務之間的依賴關係、排程和監控,非常適合管理複雜的批次任務管線。


問題 30 (中級)

------------------------------

題目: 假設一個數據工程師正在監控一個實時數據處理管線,並發現某個關鍵步驟的數據延遲突然異常增高。為了快速定位問題並在數據質量惡化前採取措施,管線設計中應包含哪些機制?

選項:

A) 僅在數據處理失敗時發出告警。

B) 實施數據版本控制,等待版本更新。

C) 配置實時監控系統,並設定關鍵指標的異常告警閾值。

D) 增加數據批次大小以減少處理頻率。


答案: C) 配置實時監控系統,並設定關鍵指標的異常告警閾值。

解析: 僅在失敗時告警無法預防問題,數據版本控制與此問題關係不大,增加批次大小可能加劇延遲。實時監控系統能夠持續追蹤管線的運行指標(如延遲、吞吐量、錯誤率),並在指標超出預設閾值時自動觸發告警,讓工程師能夠在問題惡化前介入處理,這是維護實時管線健康運行的核心。


問題 31 (中級)

------------------------------

題目: 在處理大規模文本數據時,TF-IDF是一種常用的特徵提取方法。以下關於TF-IDF的描述中,哪一項是正確的?

選項:

A) TF-IDF只考慮詞語在單一文檔中的出現頻率。

B) TF-IDF會賦予在多數文檔中都非常常見的詞語(如'的', '是')更高的權重。

C) TF-IDF結合了詞頻 (Term Frequency) 和逆文檔頻率 (Inverse Document Frequency)。

D) TF-IDF主要用於捕捉詞語的語義關係。


答案: C) TF-IDF結合了詞頻 (Term Frequency) 和逆文檔頻率 (Inverse Document Frequency)。

解析: TF-IDF結合了詞頻(TF,表示詞語在文檔中的重要性)和逆文檔頻率(IDF,表示詞語在整個語料庫中的稀有性)。TF-IDF權重會降低在多數文檔中都非常常見的詞語(如停用詞)的權重,並提升在少數文檔中獨特詞語的權重。它主要用於評估詞語對於一份文檔在文檔集中的重要性,而不是捕捉語義關係。


問題 32 (中級)

------------------------------

題目: MLOps工程師為了確保其數據處理管線能在各種運行環境(開發、測試、生產)中保持一致的行為和依賴,同時簡化部署和擴展。哪種技術最適合實現這個目標?

選項:

A) 嚴格遵循手動部署流程。

B) 將所有代碼和依賴打包成一個大型的虛擬機器映像檔。

C) 使用容器化技術(如Docker)打包應用程序及其所有依賴。

D) 僅使用Shell腳本來管理所有部署。


答案: C) 使用容器化技術(如Docker)打包應用程序及其所有依賴。

解析: 手動部署容易出錯且不一致。虛擬機器映像檔較大,啟動慢,資源消耗高。Shell腳本難以管理複雜依賴。容器化技術(如Docker)提供輕量級、可移植、自給自足的執行環境,將應用程式及其所有依賴打包成一個標準化的容器,確保在任何環境下都能提供一致的運行行為,極大地簡化了部署和擴展。


問題 33 (中級)

------------------------------

題目: 以下Python程式碼片段可能存在什麼潛在問題,特別是在大規模數據集上運行時?


```python

import pandas as pd


def process_data(df):

# 假設這裡的處理邏輯會多次迭代,每次都創建新的DataFrame副本

for _ in range(100):

df = df[df['value'] > 0]

return df


large_df = pd.DataFrame({'value': np.random.rand(1000000) - 0.5})

processed_df = process_data(large_df)

```

選項:

A) DataFrame的修改是原地 (in-place) 操作,不會消耗額外記憶體。

B) 頻繁創建DataFrame副本會導致大量的記憶體消耗和性能下降。

C) `process_data`函數會導致數據丟失,而不是性能問題。

D) 這是Pandas處理數據的標準高效方式。


答案: B) 頻繁創建DataFrame副本會導致大量的記憶體消耗和性能下降。

解析: 在Pandas中,許多操作(如過濾、切片)會返回新的DataFrame副本,而不是原地修改。如果`df = df[df['value'] > 0]`這樣的操作在迴圈中頻繁執行,會導致大量的中間DataFrame副本被創建,這對於大規模數據集來說,會迅速耗盡記憶體並顯著降低性能。這並非標準高效方式,需要注意優化,例如一次性過濾或避免在迴圈中重新賦值。


問題 34 (中級)

------------------------------

題目: 在一個金融詐欺偵測模型中,數據科學家發現雖然模型整體準確率很高,但對於少數的詐欺案例(正例)卻常常錯過。為了更好地評估模型在偵測詐欺方面的表現,並指導特徵工程的優化方向,以下哪個評估指標是最為關鍵的?

選項:

A) 準確率 (Accuracy)

B) 精確率 (Precision)

C) 召回率 (Recall)

D) F1-Score


答案: C) 召回率 (Recall)

解析: 在詐欺偵測這種高度不平衡的數據集和高誤報成本的場景中,召回率 (Recall) 是最關鍵的指標。召回率衡量的是模型正確識別出的所有正例(詐欺)佔所有實際正例的比例。錯過詐欺案例的成本很高,因此提高召回率至關重要。雖然精確率、準確率和F1-Score也很重要,但在確保盡可能多地找出所有詐欺的目標下,召回率是優先考慮的。


問題 35 (中級)

------------------------------

題目: 在一個使用Apache Spark進行數據處理的應用中,數據工程師觀察到某些階段的Shuffle操作成為性能瓶頸。為了優化Spark應用程序的Shuffle性能,以下哪種策略通常是有效的?

選項:

A) 增加`spark.driver.memory`的大小。

B) 減少數據分區 (partitions) 的數量,以減少Shuffle文件。

C) 調整`spark.sql.shuffle.partitions`或`spark.default.parallelism`,並優化數據傾斜。

D) 將所有數據都`cache()`到記憶體中。


答案: C) 調整`spark.sql.shuffle.partitions`或`spark.default.parallelism`,並優化數據傾斜。

解析: Shuffle是Spark中將數據從一個階段傳輸到下一個階段的關鍵操作,通常涉及大量的磁碟I/O和網路傳輸。增加`spark.driver.memory`對Shuffle優化作用不大。減少分區可能導致每個分區過大,單一任務處理時間變長。將所有數據cache可能耗盡記憶體。優化Shuffle性能的關鍵策略包括調整分區數量以匹配集群核心數、避免過多小文件,以及識別並解決數據傾斜(Data Skew)問題,例如使用加鹽 (Salting) 或兩階段聚合等技術。


問題 36 (中級)

------------------------------

題目: 在一個機器學習項目中,當數據集中的某個特徵具有很強的預測能力,但同時也與目標變量之間存在數據洩漏 (Data Leakage) 的風險時,數據專案經理應該如何應對?

選項:

A) 無視數據洩漏風險,直接使用該特徵以提高模型準確性。

B) 將該特徵從數據集中移除,以完全消除洩漏風險。

C) 嘗試將該特徵進行嚴格的時間切分或邏輯隔離,確保模型在預測時無法訪問到未來的或不應知道的信息。

D) 對該特徵進行標準化處理,以降低洩漏影響。


答案: C) 嘗試將該特徵進行嚴格的時間切分或邏輯隔離,確保模型在預測時無法訪問到未來的或不應知道的信息。

解析: 數據洩漏是一個嚴重的問題,會導致模型在訓練集上表現極好,但在實際部署時效果大打折扣。直接使用或移除特徵都不是最佳策略。正確的做法是仔細分析洩漏來源,並嘗試通過時間切分(例如,確保訓練數據的特徵值只來自預測目標時間點之前的信息)或邏輯隔離(例如,確保特徵在實際預測時是可用的,而不是從目標變量本身推導出來的)來解決問題,盡可能地保留特徵的預測能力同時避免洩漏。標準化不能解決數據洩漏問題。


問題 37 (中級)

------------------------------

題目: 在設計一個事件驅動型應用(例如實時反詐欺系統)的數據處理架構時,數據架構師需要確保系統能夠以極低的延遲處理數據,並且支持複雜的狀態管理(例如長時間的會話追蹤)。以下哪種框架最適合此類需求?

選項:

A) Apache Hadoop MapReduce

B) Apache Spark Batch Processing

C) Apache Flink

D) Apache Hive


答案: C) Apache Flink

解析: Hadoop MapReduce和Spark Batch Processing主要用於批次處理,延遲較高。Apache Hive是基於Hadoop的數據倉儲工具,不適用於實時處理。Apache Flink專門為處理有界和無界數據流而設計,提供了強大的事件時間處理、精確一次性語義和靈活的狀態管理能力,非常適合需要極低延遲和複雜狀態管理的事件驅動型應用,如實時反詐欺或物聯網數據處理。


問題 38 (中級)

------------------------------

題目: 在一個CI/CD驅動的MLOps流程中,當數據處理管線的Python代碼被提交到版本控制系統後,哪個階段的自動化測試最關鍵,以確保代碼在部署到生產環境前沒有引入新的錯誤或性能問題?

選項:

A) 僅進行手動程式碼審查。

B) 僅在生產環境中進行最終測試。

C) 執行單元測試、集成測試和性能測試。

D) 部署到生產環境後立即回滾。


答案: C) 執行單元測試、集成測試和性能測試。

解析: 手動審查不能發現所有錯誤。在生產環境中測試風險極高。立即回滾不是測試階段。CI/CD的核心是在代碼被提交後自動執行一系列測試。對於數據處理管線,這包括單元測試(驗證函數邏輯)、集成測試(驗證不同組件之間的交互)以及性能測試(確保處理效率和資源消耗符合預期),這些測試是確保管線穩定性和可靠性的關鍵。


問題 39 (中級)

------------------------------

題目: 以下哪個Python `scikit-learn` 函式在訓練機器學習模型(如邏輯迴歸或SVM)之前,必須在訓練數據上執行`fit()`和`transform()`,然後將相同的`transform()`應用於測試數據,以避免數據洩漏?

選項:

A) `sklearn.model_selection.train_test_split`

B) `sklearn.linear_model.LogisticRegression`

C) `sklearn.preprocessing.MinMaxScaler`

D) `sklearn.metrics.accuracy_score`


答案: C) `sklearn.preprocessing.MinMaxScaler`

解析: `train_test_split`用於數據集分割。`LogisticRegression`是模型訓練器。`accuracy_score`是評估指標。`MinMaxScaler`(或其他特徵縮放器如`StandardScaler`)需要在訓練數據上`fit()`學習縮放參數(如最大最小值),然後用這些參數`transform()`訓練數據。為了避免數據洩漏,並確保測試數據的處理方式與訓練數據一致,必須使用訓練數據`fit()`的縮放器來`transform()`測試數據。


問題 40 (中級)

------------------------------

題目: 一個數據工程師正在設計一個數據湖上的ETL管線,目標是將PB級的原始日誌數據轉換為結構化數據,供下游的數據倉儲使用。他選擇了Apache Spark作為處理引擎。為了優化這個管線的性能,避免全表掃描並加速查詢,他應該在數據載入數據湖後,額外考慮哪些數據管理策略?

選項:

A) 僅使用CSV格式儲存所有數據。

B) 啟用Spark的自動記憶體管理功能。

C) 對數據進行分區 (Partitioning) 和優化文件格式(如Parquet或ORC)。

D) 增加Spark Driver的內存。


答案: C) 對數據進行分區 (Partitioning) 和優化文件格式(如Parquet或ORC)。

解析: 僅使用CSV效率低。Spark自動記憶體管理是基礎功能,但對加速查詢作用有限。增加Driver內存通常針對Driver端的計算。對於PB級數據,對數據進行分區是關鍵策略,它可以減少查詢時掃描的數據量。同時,使用列式儲存格式(如Parquet或ORC)可以進一步提高查詢性能,因為它們支持謂詞下推 (Predicate Pushdown) 和列裁剪 (Column Pruning),減少I/O操作。


問題 41 (中級)

------------------------------

題目: 在數據處理管線中實施數據品質檢查時,其中一項關鍵的指標是「數據一致性」。以下哪種檢查最能有效評估數據集內或跨數據集之間的數據一致性?

選項:

A) 檢查單一數值列的缺失值數量。

B) 驗證日期時間列的格式是否統一。

C) 確認不同數據集中相同實體(如用戶ID)的屬性值是否匹配。

D) 監控數據表的總行數變化。


答案: C) 確認不同數據集中相同實體(如用戶ID)的屬性值是否匹配。

解析: 缺失值數量和日期格式檢查主要關注完整性和有效性。總行數變化是監控規模。數據一致性是指數據在不同地方或不同時間保持相同或協調的狀態。因此,確認不同數據集中相同實體的屬性值是否匹配,是評估數據一致性的核心,例如檢查客戶ID在訂單表和CRM表中的郵箱地址是否相同。


問題 42 (中級)

------------------------------

題目: 一個MLOps工程師正在為一個部署在Kubernetes集群上的實時機器學習服務設計數據前處理微服務。為了確保這個微服務能夠快速啟動、資源消耗低,並且方便在容器中部署和擴展,他應該在哪個階段將應用程序及其所有依賴打包起來?

選項:

A) 僅在測試環境中打包。

B) 使用Docker容器化技術。

C) 將所有依賴都安裝在Kubernetes節點上。

D) 透過虛擬機打包。


答案: B) 使用Docker容器化技術。

解析: 只在測試環境打包不足。虛擬機啟動慢、資源消耗高。將依賴直接安裝在Kubernetes節點上會造成環境污染和依賴衝突。Docker容器化技術能夠將應用程序、其運行環境和所有依賴打包成一個輕量級、可移植的單一容器映像,確保了運行環境的一致性,並極大地簡化了在Kubernetes等容器編排系統上的部署、擴展和管理。


問題 43 (中級)

------------------------------

題目: 在機器學習生命週期中,數據版本控制 (Data Versioning) 的重要性日益凸顯。以下哪種場景最能體現數據版本控制的核心價值?

選項:

A) 確保生產環境中的數據庫備份。

B) 允許數據科學家追蹤不同訓練數據集對模型性能的影響,並確保模型訓練的可重現性。

C) 管理模型代碼的版本迭代。

D) 監控數據處理管線的運行狀態。


答案: B) 允許數據科學家追蹤不同訓練數據集對模型性能的影響,並確保模型訓練的可重現性。

解析: 數據庫備份是數據恢復,模型代碼版本控制是代碼管理,監控是運行狀態。數據版本控制的核心價值在於,它允許數據科學家和MLOps工程師精確地記錄和追溯每個訓練數據集的狀態,從而能夠理解數據的變化如何影響模型性能,確保在模型迭代和驗證過程中,不同模型版本可以使用特定的數據版本進行訓練和重現。


問題 44 (中級)

------------------------------

題目: 在處理一個高維度數據集時,數據科學家注意到數據中存在多個冗餘特徵,這些特徵之間高度相關,導致模型訓練效率低且過擬合風險增加。為了在保留數據大部分信息的同時,有效減少特徵數量,以下哪種降維技術是常用的且效果顯著的?

選項:

A) 獨熱編碼 (One-Hot Encoding)。

B) 標籤編碼 (Label Encoding)。

C) 主成分分析 (Principal Component Analysis, PCA)。

D) 頻率編碼 (Frequency Encoding)。


答案: C) 主成分分析 (Principal Component Analysis, PCA)。

解析: 獨熱編碼、標籤編碼和頻率編碼都是類別特徵編碼方法,不屬於降維技術。主成分分析 (PCA) 是一種線性降維技術,它通過將原始數據轉換到一個新的正交坐標系中,找到數據中方差最大的方向(主成分),從而可以在保留大部分信息的情況下,將高維度數據映射到較低的維度,有效減少特徵冗餘。


問題 45 (中級)

------------------------------

題目: 一個數據分析師需要計算某個時間序列數據的移動平均值作為新特徵。在Pandas中,以下哪個方法是實現這一目的最直接且高效的方式?

選項:

A) 使用for迴圈手動計算每個點的平均值。

B) 利用`df.rolling().mean()`方法。

C) 使用`df.groupby().mean()`方法。

D) 將數據轉換為列表,再使用Python內置的`sum()`和`len()`。


答案: B) 利用`df.rolling().mean()`方法。

解析: 使用for迴圈或Python內置函數效率低下。`groupby().mean()`用於分組聚合,不是移動平均。Pandas的`rolling()`方法專為窗口函數設計,配合`mean()`可以高效地計算移動平均值,是處理時間序列數據的標準做法。


問題 46 (中級)

------------------------------

題目: 在一個實時推薦系統的數據處理管線中,數據工程師發現由於上游數據源的更新頻率不一致,導致推薦模型接收到的數據有時效性問題,進而影響推薦質量。為了解決這個數據新鮮度 (Data Freshness) 問題,以下哪種數據處理管線的設計策略是最關鍵的?

選項:

A) 降低推薦模型的複雜度以加快推斷速度。

B) 實施精確的數據監控和告警,及時發現數據延遲。

C) 將所有數據都儲存在記憶體中以減少I/O延遲。

D) 僅使用批次處理模式,定期更新推薦結果。


答案: B) 實施精確的數據監控和告警,及時發現數據延遲。

解析: 降低模型複雜度不解決數據新鮮度。將所有數據儲存在記憶體不切實際。僅使用批次處理與實時推薦需求相悖。實施精確的數據監控和告警,是解決數據新鮮度問題的關鍵一步。透過監控數據的生成時間、處理延遲和到達時間,並設定合理的告警閾值,可以及時發現上游數據源的更新問題或管線中的性能瓶頸,從而確保推薦模型始終使用最新鮮的數據。


問題 47 (中級)

------------------------------

題目: 在數據處理管線中,假設需要對一個包含用戶行為事件的數據流進行處理,每個事件都有一個時間戳。為了正確處理亂序到達的事件,並在達到一定延遲容忍度後才觸發計算,以下哪種時間處理語義是 Apache Flink 的一個核心優勢?

選項:

A) 處理時間 (Processing Time)。

B) 攝取時間 (Ingestion Time)。

C) 事件時間 (Event Time)。

D) 系統時間 (System Time)。


答案: C) 事件時間 (Event Time)。

解析: 處理時間、攝取時間和系統時間都依賴於處理系統的時鐘,無法有效處理亂序事件。事件時間 (Event Time) 是 Apache Flink 的一個核心優勢,它允許基於事件實際發生的時間(即事件本身攜帶的時間戳)進行處理,並結合水位線 (Watermarks) 機制來處理亂序到達的事件和定義延遲容忍度,從而保證數據處理結果的正確性,特別是在複雜的串流處理應用中至關重要。

留言
avatar-img
留言分享你的想法!
avatar-img
iPAS AI 自學路
23會員
70內容數
我是一位正在追求職涯升級的 40 歲非本科系上班族。我會將自己摸索出的高效白話筆記與聽覺學習法無私分享,助你:克服術語障礙、利用零碎時間學習、系統化整理考點。 也歡迎到我的頻道逛逛https://www.youtube.com/@ipasstudybuddy
iPAS AI 自學路的其他內容
2025/10/30
先衝影片再戰模擬考,效果更好
2025/10/30
先衝影片再戰模擬考,效果更好
2025/10/29
先衝影片再戰模擬考,效果更好
2025/10/29
先衝影片再戰模擬考,效果更好
2025/10/28
📺 先看影片,再挑戰模擬考! 理解比死背更重要,看完影片再測驗,效果直接翻倍! 👉 https://www.youtube.com/@ipasstudybuddy
2025/10/28
📺 先看影片,再挑戰模擬考! 理解比死背更重要,看完影片再測驗,效果直接翻倍! 👉 https://www.youtube.com/@ipasstudybuddy
看更多