Chuyển đến nội dung chính
Khoa học Dữ liệu
Dịch vụ Nghề nghiệp

29 Câu Hỏi Phỏng Vấn Nhà Khoa Học Dữ Liệu Hàng Đầu Cho Mọi Cấp Độ

Khám phá các câu hỏi phỏng vấn khoa học dữ liệu hàng đầu kèm đáp án dành cho sinh viên năm cuối và chuyên gia đang tìm việc.
Abid Ali Awan's photo
Abid Ali Awan
Đã cập nhật · 15 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.

Data Science Interview Header.png

Trong hướng dẫn này, tôi tổng hợp các câu hỏi phỏng vấn nhà khoa học dữ liệu thường gặp nhất về thống kê, học máy, lập trình (Python, SQL) và tư duy sản phẩm. Luyện tập những câu hỏi này sẽ giúp bạn vượt qua tất cả các vòng kỹ thuật—dù bạn là sinh viên tìm thực tập hay chuyên gia đang nhắm đến vai trò tiếp theo.

TL;DR

  • Phỏng vấn nhà khoa học dữ liệu kiểm tra 5 mảng: thống kê & xác suất, học máy, lập trình (Python/SQL), hành vi, và tư duy sản phẩm.
  • Chủ đề kỹ thuật trọng yếu: giả định hồi quy tuyến tính, phòng tránh overfitting, phương pháp chọn đặc trưng (filter, wrapper, embedded), giảm chiều dữ liệu, và A/B testing.
  • Cho vòng code, luyện Python (pandas, regex, xử lý list) và SQL (tổng hợp, lọc theo ngày, hàm cửa sổ).
  • Chuẩn bị câu trả lời theo phương pháp STAR cho câu hỏi hành vi về giao tiếp, xử lý xung đột và làm việc trong mơ hồ.
  • Các công ty Big Tech (Meta, Google, Amazon) kiểm tra phân tích chỉ số, tư duy sản phẩm và thống kê ứng dụng bên cạnh kỹ năng cốt lõi.
  • Sử dụng hướng dẫn Chuẩn bị Phỏng vấn Khoa học Dữ liệu của chúng tôi để cấu trúc kế hoạch học cho mọi giai đoạn.

Câu hỏi phỏng vấn Khoa học Dữ liệu phi kỹ thuật 

Bắt đầu với các câu hỏi năng lực tổng quát bạn có thể gặp trong phỏng vấn. Chúng kiểm tra các kỹ năng mềm mà bạn cần với vai trò nhà khoa học dữ liệu: 

Hãy kể về một lần bạn phải giải thích một khái niệm dữ liệu phức tạp cho người không có nền tảng kỹ thuật. Bạn đã đảm bảo họ hiểu như thế nào?

Câu hỏi này đánh giá kỹ năng giao tiếp và khả năng đơn giản hóa chủ đề phức tạp. Dưới đây là ví dụ trả lời:

Ở vai trò trước, tôi cần giải thích khái niệm học máy cho đội marketing. Tôi dùng phép ẩn dụ dạy trẻ nhận biết các loại trái cây. Cũng như bạn cho trẻ xem thật nhiều ví dụ để học, mô hình học máy được “huấn luyện” bằng dữ liệu. Phép ẩn dụ này giúp khái niệm phức tạp trở nên gần gũi và dễ hiểu hơn.

Mô tả một dự án bạn phải làm việc với thành viên nhóm khó tính. Bạn đã xử lý thế nào?

Câu này khám phá kỹ năng hợp tác nhóm và giải quyết xung đột. Bạn có thể trả lời như sau: 

Trong một dự án, tôi làm việc với đồng nghiệp có phong cách làm việc rất khác. Để giải quyết khác biệt, tôi sắp xếp cuộc họp để hiểu góc nhìn của anh ấy. Chúng tôi tìm được điểm chung ở mục tiêu dự án và thống nhất cách tiếp cận chung. Trải nghiệm này dạy tôi giá trị của giao tiếp cởi mở và sự thấu cảm trong làm việc nhóm.

Bạn có thể chia sẻ ví dụ khi phải làm việc với thời hạn rất gấp? Bạn đã quản lý công việc và hoàn thành đúng hạn như thế nào?

Câu này nói về quản lý thời gian và ưu tiên. Ví dụ trả lời: 

Có lần tôi phải hoàn thành phân tích trong thời hạn rất gấp. Tôi ưu tiên các phần quan trọng nhất của dự án, trao đổi kế hoạch với đội, và tập trung thực thi hiệu quả. Bằng cách chia nhỏ công việc và đặt các hạn chót nhỏ, tôi hoàn thành đúng thời hạn mà không giảm chất lượng.

Đã bao giờ bạn mắc lỗi đáng kể trong phân tích? Bạn xử lý ra sao và học được gì?

Người phỏng vấn muốn thấy khả năng nhận trách nhiệm và rút kinh nghiệm. Bạn có thể trả lời: 

Có lần tôi diễn giải sai kết quả của một mô hình dữ liệu. Khi nhận ra lỗi, tôi lập tức thông báo cho nhóm và phân tích lại dữ liệu. Trải nghiệm này dạy tôi tầm quan trọng của việc kiểm tra chéo kết quả và giá trị của minh bạch nơi làm việc.

Bạn cập nhật các xu hướng và tiến bộ mới nhất trong khoa học dữ liệu như thế nào?

Câu này thể hiện cam kết học hỏi liên tục và duy trì tính thời sự. Ví dụ: 

Tôi cập nhật bằng cách đọc tạp chí chuyên ngành, tham dự hội thảo trực tuyến và tham gia diễn đàn online. Tôi cũng dành thời gian hàng tuần để thử nghiệm công cụ và kỹ thuật mới. Điều này không chỉ giúp tôi bắt kịp xu hướng mà còn cải thiện kỹ năng liên tục.

Hãy kể về một lần bạn làm dự án với yêu cầu không rõ ràng hoặc thay đổi liên tục. Bạn đã thích nghi thế nào?

Câu hỏi này đánh giá khả năng thích ứng và giải quyết vấn đề. Ví dụ: 

Ở một dự án trước, yêu cầu thay đổi thường xuyên. Tôi thích nghi bằng cách duy trì giao tiếp mở với các bên liên quan để hiểu nhu cầu của họ. Tôi cũng áp dụng phương pháp agile để linh hoạt hơn, giúp đáp ứng thay đổi hiệu quả.

Mô tả tình huống bạn phải cân bằng quyết định dựa trên dữ liệu với các cân nhắc khác (như đạo đức, nhu cầu kinh doanh, v.v.).

Câu này đánh giá khả năng xem xét khía cạnh ngoài dữ liệu. Ví dụ trả lời: 

Ở vai trò trước, tôi phải cân bằng nhu cầu ra quyết định dựa trên dữ liệu với cân nhắc đạo đức. Tôi đảm bảo mọi sử dụng dữ liệu tuân thủ chuẩn mực đạo đức và luật riêng tư, và đưa ra phương án thay thế khi cần. Cách tiếp cận này giúp ra quyết định sáng suốt mà vẫn tôn trọng ranh giới đạo đức.

Câu hỏi phỏng vấn Khoa học Dữ liệu chung

Các giả định cần có cho Hồi quy Tuyến tính là gì?

Bốn giả định của hồi quy tuyến tính gồm:

  1. Mối quan hệ tuyến tính: cần có quan hệ tuyến tính giữa biến độc lập x và biến phụ thuộc y. 
  2. Độc lập: không có tương quan giữa các phần dư liên tiếp. Thường gặp ở dữ liệu chuỗi thời gian. 
  3. Phương sai đồng nhất (Homoscedasticity): tại mọi mức x, phương sai phải không đổi. 
  4. Phân phối chuẩn: phần dư có phân phối chuẩn.

Linear Regression.png

Hình từ Statology

Bạn có thể tìm hiểu các khái niệm và ứng dụng của mô hình tuyến tính qua khóa học Giới thiệu Mô hình Tuyến tính bằng Python. 

Bạn xử lý một bộ dữ liệu thiếu nhiều giá trị như thế nào?

Có nhiều cách xử lý dữ liệu thiếu. Bạn có thể:

  1. Loại bỏ các hàng có giá trị thiếu.
  2. Loại bỏ các cột thiếu quá nhiều giá trị.
  3. Điền giá trị thiếu bằng hằng số chuỗi hoặc số. 
  4. Thay giá trị thiếu bằng trung bình hoặc trung vị của cột. 
  5. Dùng hồi quy bội để ước lượng giá trị thiếu.
  6. Dùng nhiều cột để thay thế giá trị thiếu bằng giá trị mô phỏng trung bình kèm sai số ngẫu nhiên.

Học cách chẩn đoán, trực quan hóa và xử lý dữ liệu thiếu qua khóa Xử lý Dữ liệu Thiếu bằng Imputation trong R.

Bạn giải thích các khía cạnh kỹ thuật của kết quả cho các bên liên quan không có nền tảng kỹ thuật như thế nào?

Đầu tiên, bạn cần tìm hiểu nền tảng của bên liên quan và dùng thông tin đó để điều chỉnh cách diễn đạt. Nếu họ có nền tảng tài chính, hãy học các thuật ngữ thường dùng trong tài chính và sử dụng chúng để giải thích phương pháp phức tạp.  

Thứ hai, hãy dùng nhiều hình ảnh và biểu đồ. Con người học qua trực quan tốt hơn rất nhiều khi dùng các công cụ truyền đạt sinh động.

explain technical aspects.png

Hình do Tác giả

Thứ ba, nói theo kết quả. Đừng cố giải thích phương pháp hay thống kê. Tập trung vào cách họ có thể dùng thông tin từ phân tích để cải thiện kinh doanh hoặc quy trình.

Cuối cùng, khuyến khích họ đặt câu hỏi. Mọi người thường ngại hoặc xấu hổ khi hỏi về chủ đề chưa biết. Hãy tạo kênh giao tiếp hai chiều bằng cách lôi cuốn họ vào thảo luận. 

Học cách tự xây dựng báo cáo và dashboard SQL qua khóa Báo cáo trong SQL.

p-value là gì, và bạn diễn giải nó ra sao?

p-value đo lường xác suất quan sát được kết quả ít nhất cực đoan như dữ liệu thu thập, giả sử giả thuyết không (null) là đúng.

p-value nhỏ hơn mức ý nghĩa của bạn (thường là 0,05) cho bằng chứng để bác bỏ giả thuyết không. Ví dụ, trong A/B test có p-value 0,03, chỉ có 3% khả năng thấy kết quả này dưới giả thuyết không, gợi ý biến thể có hiệu ứng thực.

Hiểu lầm phổ biến: p-value không đo xác suất giả thuyết không là đúng, mà chỉ đo mức độ tương thích của dữ liệu với giả thuyết không.

Sự khác nhau giữa sai lầm Loại I và Loại II là gì?

Đây là hai kiểu sai sót trong kiểm định giả thuyết:

  • Sai lầm Loại I (dương tính giả): Bác bỏ giả thuyết không khi nó thực sự đúng. Được kiểm soát bởi mức ý nghĩa (α). Ví dụ: kết luận mô hình mới tốt hơn khi thực tế không phải.
  • Sai lầm Loại II (âm tính giả): Không bác bỏ giả thuyết không khi nó sai. Bị chi phối bởi lực kiểm định (1 − β). Ví dụ: kết luận mô hình không cải thiện khi thực tế có.

Giảm α làm giảm lỗi Loại I nhưng tăng lỗi Loại II. Cân bằng phù hợp phụ thuộc chi phí của từng sai sót trong bài toán cụ thể—rất quan trọng trong phát hiện gian lận, chẩn đoán y khoa, hay quyết định A/B testing.

Tìm hiểu thêm trong hướng dẫn Kiểm định Giả thuyết Dễ hiểu của chúng tôi.

Câu hỏi phỏng vấn Kỹ thuật Khoa học Dữ liệu

Các phương pháp chọn đặc trưng dùng để chọn biến phù hợp là gì?

Có ba phương pháp chính để chọn đặc trưng: filter, wrapper và embedded.

Phương pháp Filter

Filter thường dùng ở bước tiền xử lý. Các phương pháp này chọn đặc trưng độc lập với thuật toán học máy. Chúng nhanh, tốn ít tài nguyên và loại bỏ đặc trưng trùng lặp, tương quan, dư thừa.

Filter Methods.png

Hình do Tác giả

Một số kỹ thuật gồm:  

  • Ngưỡng phương sai (Variance Threshold)
  • Hệ số tương quan (Correlation Coefficient)
  • Kiểm định Chi-Square
  • Phụ thuộc tương hỗ (Mutual Dependence)

Phương pháp Wrapper

Với wrapper, ta huấn luyện mô hình lặp lại với tập con đặc trưng. Dựa trên kết quả, thêm hoặc bớt đặc trưng. Chúng tốn tính toán hơn filter nhưng cho độ chính xác tốt hơn. 

Wrapper Methods.png

Hình do Tác giả

Một số kỹ thuật gồm:

  • Chọn tiến (Forward selection)
  • Loại lùi (Backward elimination)
  • Loại hai chiều (Bi-directional elimination)
  • Loại đệ quy (Recursive elimination) 

Phương pháp Embedded

Embedded kết hợp ưu điểm của filter và wrapper. Thuật toán chọn đặc trưng được hòa trộn vào thuật toán học, cung cấp cơ chế chọn đặc trưng tích hợp sẵn. Chúng nhanh như filter, chính xác như wrapper, và cũng xét đến tổ hợp đặc trưng.  

Embedded Methods.png

Hình do Tác giả

Một số kỹ thuật gồm:

  • Regularization
  • Phương pháp dựa trên cây (Tree-based)

Học các kỹ thuật chọn đặc trưng thường được hỏi trong Hướng dẫn Chọn Đặc trưng bằng Python.

Làm sao tránh overfitting mô hình?

Overfitting là khi mô hình học quá “thuộc” dữ liệu huấn luyện nhưng thất bại trên tập kiểm tra/validation.

Bạn có thể tránh overfitting bằng cách:

  1. Giữ mô hình đơn giản: giảm độ phức tạp, xem xét ít biến hơn, giảm số tham số trong mạng nơ-ron.
  2. Dùng kỹ thuật cross-validation.
  3. Huấn luyện với nhiều dữ liệu hơn.
  4. Dùng tăng cường dữ liệu để tăng số mẫu. 
  5. Dùng ensembling (Bagging và Boosting)
  6. Dùng regularization để phạt các tham số có nguy cơ gây overfitting.

Đọc hướng dẫn chi tiết Overfitting là gì? và bài học về Regularization trong Học máy.

Liệt kê các kiểu quan hệ trong SQL

Có bốn kiểu quan hệ SQL chính:

  • Một - Một: mỗi bản ghi của một bảng chỉ liên quan đến một bản ghi ở bảng khác. 
  • Một - Nhiều và Nhiều - Một: phổ biến nhất, mỗi bản ghi ở một bảng liên kết với nhiều bản ghi ở bảng khác.  
  • Nhiều - Nhiều: mỗi bản ghi của bảng thứ nhất liên quan đến hơn một bản ghi ở bảng thứ hai, và ngược lại.
  • Tự tham chiếu: khi một bảng cần khai báo quan hệ với chính nó.

Học cách khám phá bảng, quan hệ giữa chúng và dữ liệu lưu trữ qua khóa Phân tích Dữ liệu Khám phá trong SQL.

Giảm chiều dữ liệu là gì và lợi ích của nó?

Giảm chiều là quá trình chuyển đổi dữ liệu từ nhiều chiều về ít chiều hơn trong khi vẫn giữ thông tin tương tự. 

dimensionality reduction.png

Hình do Tác giả | Biểu đồ từ howecoresearch

Lợi ích của giảm chiều:

  1. Nén dữ liệu và giảm không gian lưu trữ. 
  2. Giảm thời gian tính toán, cho phép xử lý nhanh hơn.  
  3. Loại bỏ đặc trưng dư thừa nếu có. 

Nắm khái niệm giảm chiều và thành thạo kỹ thuật qua khóa Giảm Chiều trong Python.

Mục tiêu của A/B Testing là gì?

AB Testing.png

Hình do Tác giả

A/B testing loại bỏ phỏng đoán và giúp đưa ra quyết định dựa trên dữ liệu để tối ưu sản phẩm hoặc website. Nó cũng được gọi là thử nghiệm chia nhỏ (split testing), nơi tiến hành thí nghiệm ngẫu nhiên để phân tích hai hay nhiều phiên bản của biến (trang web, tính năng ứng dụng, v.v.) và xác định phiên bản tạo ra lưu lượng và chỉ số kinh doanh tối đa. 

Học cách tạo, chạy và phân tích A/B test qua khóa Phân tích Khách hàng và A/B Testing trong Python.

Câu hỏi phỏng vấn Lập trình Khoa học Dữ liệu

Cho một từ điển gồm nhiều gốc từ (root) và một câu, hãy stemming tất cả từ trong câu về gốc tạo nên chúng.

Stemming thường dùng trong phân tích văn bản và cảm xúc. Trong câu hỏi này, bạn sẽ viết hàm Python để chuyển một số từ trong danh sách về dạng gốc của chúng - Interview Query.

Đầu vào:

Hàm nhận hai đối số: danh sách gốc từ và câu.  

roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"

Đầu ra:

Hàm trả về câu với các gốc từ. 

"the cat was rat by the bat"

Trước khi viết mã, bạn cần hiểu sẽ làm hai việc: kiểm tra từ có gốc hay không và thay thế nó. 

  1. Tách câu thành các từ.
  2. Chạy vòng lặp ngoài trên từng từ và vòng lặp trong trên danh sách gốc từ.
  3. Kiểm tra từ có bắt đầu bằng gốc hay không. Python cung cấp hàm `startswith()` cho việc này. 
  4. Nếu từ bắt đầu bằng gốc, thay thế từ bằng gốc dùng chỉ số danh sách. 
  5. Nối lại tất cả từ để tạo câu. 
roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"


def replace_words(roots, sentence):
    words = sentence.split(" ")

    # looping over each word
    for index, word in enumerate(words):
        # looping over each root
        for root in roots:
            # checking if words start with root
            if word.startswith(root):
                # replacing the word with its root
                words[index] = root
    return " ".join(words)


replace_words(roots, sentence)


# 'the cat was rat by the bat'

Kiểm tra chuỗi Palindrome

Cho chuỗi text, trả về True nếu đó là palindrome, ngược lại False.

Sau khi chuyển tất cả ký tự về thường và loại bỏ ký tự không phải chữ-số, từ phải đọc giống nhau xuôi và ngược.

String is Pallindrome.png

Hình do Tác giả

Python cung cấp cách đơn giản để giải bài này. Bạn có thể coi chuỗi là iterable và đảo bằng text[::-1] hoặc dùng reversed(text) tích hợp.

  1. Đầu tiên, chuyển text về chữ thường.
  2. Làm sạch text bằng regex để loại ký tự không chữ-số. 
  3. Đảo chuỗi bằng [::-1].
  4. So sánh chuỗi đã làm sạch với chuỗi đảo.  
import re

def is_palindrome(text):
    # lowering the string
    text = text.lower()
   
    # Cleaning the string
    rx = re.compile('\W+')
    text = rx.sub('',text).strip()
   
    # Reversing and comparing the string
    return text == text[::-1]

Ở cách thứ hai, bạn chỉ cần thay bước đảo chuỗi bằng ''.join(reversed(text)) và so sánh với chuỗi đã làm sạch. 

Cả hai cách đều trực quan. 

def is_palindrome(text):
    # lowering the string
    text = text.lower()
   
    # Cleaning the string
    rx = re.compile('\W+')
    text = rx.sub('',text).strip()
   
    # Reversing the string
    rev = ''.join(reversed(text))
    return text == rev

Kết quả:

Chúng ta cung cấp danh sách từ cho hàm is_palindrome() và in kết quả. Như bạn thấy, ngay cả với ký tự đặc biệt, hàm vẫn nhận diện “Level” và “Radar” là palindrome. 

# Test cases
test_words = ['Anna', '**Radar****', 'Abid', '(Level)', 'Data']

for text in test_words:
    print(f"Is {text} a palindrome? {is_palindrome(text)}")


# Is Anna a palindrome? True
# Is **Radar**** a palindrome? True
# Is Abid a palindrome? False
# Is (Level) a palindrome? True
# Is Data a palindrome? False

Chuẩn bị cho các buổi phỏng vấn coding tiếp theo bằng khóa Luyện các Câu hỏi Phỏng vấn Coding trong Python tương tác của chúng tôi. Để luyện Python sâu hơn, xem 41 Câu hỏi & Đáp án Phỏng vấn Python Hàng đầu cho 2026.

Tìm mức lương cao thứ hai

Dễ để tìm giá trị cao nhất và thấp nhất, nhưng khó để tìm giá trị cao thứ hai hoặc thứ n. 

Trong câu hỏi này, bạn được cung cấp bảng cơ sở dữ liệu gồm id và base_salary. Bạn sẽ viết truy vấn SQL để tìm mức lương cao thứ hai. 

SQL query.png

Hình do Tác giả

Trong truy vấn này, bạn tìm các giá trị duy nhất và sắp xếp giảm dần. Sau đó dùng LIMIT 1 để chỉ hiển thị giá trị cao nhất. Cuối cùng, dùng offset bằng 1 để hiển thị số cao thứ hai. 

Bạn cũng có thể thay đổi giá trị OFFSET để lấy mức lương cao thứ n. 

SELECT DISTINCT base_salary AS "Second Highest Salary"
FROM employee
ORDER BY base_salary DESC
LIMIT 1
OFFSET 1;

Mức lương cơ bản cao thứ hai là 8.500.

sql salary.png

Tìm email trùng lặp

Trong câu hỏi này, bạn sẽ viết truy vấn hiển thị tất cả email bị trùng. 

Duplicate Emails database table.png

Hình do Tác giả

Trong truy vấn này, bạn hiển thị cột email và nhóm bảng theo email. Sau đó, dùng mệnh đề HAVING để tìm email xuất hiện hơn một lần. 

HAVING được dùng thay cho WHERE khi kết hợp với phép tổng hợp.

SELECT email
FROM employee_email
GROUP BY email
HAVING COUNT(email) > 1;

Chỉ “matt@hotmail.com” xuất hiện hơn một lần.

sql email.png

Viết SQL dễ bảo trì để trả lời câu hỏi kinh doanh qua khóa Ứng dụng SQL cho Vấn đề Thực tế. 

Câu hỏi phỏng vấn Khoa học Dữ liệu ở Big Tech

Câu hỏi phỏng vấn Khoa học Dữ liệu tại Meta

Công cụ đăng bài Facebook (composer) giảm từ 3% số bài đăng mỗi người dùng tháng trước xuống 2,5% hôm nay. Bạn sẽ điều tra chuyện gì đã xảy ra như thế nào?

Abid's Facebook composer.png

Hình do Tác giả

Tỷ lệ bài đăng từ một tháng trước giảm từ 3% xuống 2,5% hôm nay. Trước khi kết luận, bạn cần làm rõ bối cảnh vấn đề. 

Bạn cần hỏi:

  • Hôm nay có phải ngày trong tuần không?
  • Cách đây một tháng có rơi vào cuối tuần không?
  • Có dịp đặc biệt, sự kiện hay tính mùa vụ không? 
  • Đây là xu hướng giảm dần hay sự kiện một lần?

Phần tiếp theo, bạn cần phân tích yếu tố dẫn tới sụt giảm. Số người dùng tăng hay số bài đăng giảm? Sau đó, người phỏng vấn sẽ yêu cầu bạn thảo luận dựa trên một hoặc cả hai hướng lập luận.

Bạn nghĩ phân phối thời gian dùng Facebook mỗi ngày trông như thế nào? Bạn sẽ dùng métric nào để mô tả phân phối đó?

Về phân phối thời gian dùng Facebook mỗi ngày, có thể giả định có hai nhóm:

  1. Người lướt nhanh mà không dành quá nhiều thời gian.
  2. Người dùng “nặng” dành nhiều thời gian trên Facebook.

Với phần hai, bạn cần dùng ngôn ngữ thống kê để mô tả phân phối, như:

  1. Trung tâm: trung bình, trung vị, mode
  2. Độ phân tán: độ lệch chuẩn, khoảng tứ phân vị, và khoảng
  3. Hình dạng: độ lệch (skewness), độ nhọn (kurtosis), đơn hay hai đỉnh
  4. Giá trị ngoại lai

Cho một tập dữ liệu điểm kiểm tra, viết mã pandas để trả về phần trăm cộng dồn của học sinh đạt điểm trong các khoảng <50, <75, <90, <100.

Trong câu hỏi này, bạn viết mã pandas để chia điểm thành các khoảng rồi tính phần trăm học sinh đạt điểm trong các khoảng đó. 

Đầu vào:

Tập dữ liệu có cột user_id, grade và test_score. 

Dataset Test Score.png

Hình do Tác giả 

Đầu ra:

Bạn sẽ viết hàm dùng cột grade và test_score. Và hiển thị dataframe với bậc lớp, khoảng điểm và phần trăm cộng dồn học sinh đạt khoảng điểm đó.  

dataset grades.png

Hình do Tác giả

  1. Dùng hàm pandas.cut() để chuyển điểm thành khoảng theo bins và nhãn.
  2. Tính kích thước từng nhóm (grade và test_score).
  3. Để tính phần trăm, cần tử số (tổng cộng dồn) và mẫu số (tổng tất cả giá trị).
  4. Chuyển phân số thành phần trăm bằng cách nhân 100 và thêm “%”.
  5. Reset index và đổi tên cột thành "percentage".
def bucket_test_scores(df):
    bins = [0, 50, 75, 90, 100]
    labels = ["<50", "<75", "<90", "<100"]

    # converting the scores into buckets
    df["test_score"] = pd.cut(df["test_score"], bins, labels=labels, right=False)

    # Calculate size of each group, by grade and test score
    df = df.groupby(["grade", "test_score"]).size()

    # Calculate numerator and denominator for percentage
    NUM = df.groupby("grade").cumsum()
    DEN = df.groupby("grade").sum()

    # Calculate percentage, multiply by 100, and add %
    percentage = (NUM / DEN).map(lambda x: f"{int(100*x):d}%")

    # reset the index
    percentage = percentage.reset_index(name="percentage")
    return percentage


bucket_test_scores(df)

Bạn đã có kết quả hoàn hảo với khoảng điểm và phần trăm. 

dataset grades.png

Học cách làm sạch dữ liệu, tính thống kê, và tạo trực quan hóa với khóa Xử lý Dữ liệu với pandas. Để đào sâu hơn, xem hướng dẫn 35 Câu hỏi Phỏng vấn Học máy Hàng đầu cho 2026.

Câu hỏi phỏng vấn Khoa học Dữ liệu tại Amazon

Giải thích khoảng tin cậy (confidence intervals)

Khoảng tin cậy là một khoảng ước lượng cho tham số chưa biết mà bạn kỳ vọng sẽ chứa tham số đó với một tỷ lệ phần trăm nhất định nếu bạn chạy thí nghiệm lại hoặc lấy mẫu lại quần thể tương tự.

confidence intervals.png

Hình từ omnicalculator

Mức tin cậy 95% thường được dùng trong thí nghiệm thống kê, và đó là tỷ lệ phần trăm số lần bạn kỳ vọng tái tạo được tham số ước lượng. Khoảng tin cậy có cận trên và cận dưới được xác định bởi giá trị alpha.

Bạn có thể dùng khoảng tin cậy cho nhiều ước lượng thống kê, như tỷ lệ, trung bình quần thể, chênh lệch giữa trung bình hoặc tỷ lệ của các quần thể, và ước lượng độ biến thiên giữa các nhóm.

Xây nền tảng thống kê qua khóa Tư duy Thống kê trong Python (Phần 1).

Bạn xử lý bộ dữ liệu mất cân bằng như thế nào?

Trong bộ dữ liệu mất cân bằng, các lớp phân bố không đều. Ví dụ, trong tập phát hiện gian lận, chỉ có 400 trường hợp gian lận so với 300.000 trường hợp không gian lận. Dữ liệu mất cân bằng khiến mô hình phát hiện gian lận kém hiệu quả. 

unbalanced data set.png

Hình do Tác giả

Để xử lý dữ liệu mất cân bằng, bạn có thể dùng:

  1. Undersampling
  2. Oversampling
  3. Tạo dữ liệu tổng hợp
  4. Kết hợp under và over sampling

Undersampling

Lấy mẫu lại lớp đa số để cân bằng với lớp thiểu số. 

Trong tập gian lận, cả hai lớp sẽ bằng 400 mẫu. Bạn có thể dùng imblearn.under_sampling để lấy mẫu lại dễ dàng.

from imblearn.under_sampling import RandomUnderSampler
RUS = RandomUnderSampler(random_state=1)
X_US, y_US = RUS.fit_resample(X_train, y_train)

Oversampling

Lấy mẫu lại lớp thiểu số để cân bằng với lớp đa số. Lặp lại hoặc lặp có trọng số các mẫu lớp thiểu số là cách thường dùng để cân bằng dữ liệu. Tóm lại, cả hai lớp sẽ có 300K mẫu. 

from imblearn.over_sampling import RandomOverSampler

ROS = RandomOverSampler(random_state=0)
X_OS, y_OS = ROS.fit_resample(X_train, y_train)

Tạo dữ liệu tổng hợp

Vấn đề của lặp lại là không cung cấp thông tin mới, dẫn đến hiệu năng mô hình kém. Để khắc phục, ta có thể dùng SMOTE (Synthetic Minority Oversampling Technique) để tạo điểm dữ liệu tổng hợp. 

from imblearn.over_sampling import SMOTE

SM = SMOTE(random_state=1)
X_OS, y_OS = SM.fit_resample(X_train, y_train)

Kết hợp under và over sampling

Để cải thiện sai lệch và hiệu năng mô hình, bạn có thể kết hợp over và under-sampling. Ta sẽ dùng SMOTE để over-sampling và EEN (Edited Nearest Neighbours) để làm sạch. 

imblearn.combine cung cấp nhiều hàm tự động thực hiện cả hai.

from imblearn.combine import SMOTEENN

SMTN = SMOTEENN(random_state=0)
X_OUS, y_OUS = SMTN.fit_resample(X_train, y_train)

Viết truy vấn trả về tổng số bán hàng cho mỗi sản phẩm trong tháng 3 năm 2022.

Với vai trò nhà khoa học dữ liệu, bạn sẽ viết truy vấn tương tự để trích xuất dữ liệu và phân tích. Trong bài này, bạn sẽ dùng mệnh đề WHERE với dấu so sánh hoặc WHERE với BETWEEN để lọc.

Bảng: orders

orders SQL table.png

Hình do Tác giả

Đầu ra mẫu:

Sample output.png

Hình do Tác giả

  1. Hiển thị product_id và tổng số lượng từ bảng orders. 
  2. Lọc dữ liệu từ ngày ‘2022-03-01’ đến '2022-04-01' dùng WHERE và AND. Bạn cũng có thể dùng BETWEEN cho hành động tương tự. 
  3. Group by product_id để lấy tổng doanh số cho mỗi sản phẩm.
SELECT product_id,
      SUM(qty)
FROM orders
WHERE order_dt >= '2022-03-01'
  AND order_dt < '2022-04-01'
GROUP BY product_id;

Câu hỏi phỏng vấn Khoa học Dữ liệu tại Google

Nếu nhãn đã biết trong một dự án phân cụm, bạn đánh giá hiệu năng mô hình thế nào?

Trong học không giám sát, đánh giá hiệu năng phân cụm có thể khó. Tiêu chí của phân cụm tốt là các nhóm tách biệt rõ với độ tương đồng thấp. 

Không có métic “độ chính xác” trong mô hình phân cụm, nên ta sẽ dùng độ tương đồng hoặc độ khác biệt giữa các nhóm để đánh giá hiệu năng.  

clustering performance.png

Hình từ tài liệu scikit-learn

Ba métic thường dùng là:

  • Silhouette Score
  • Chỉ số Calinski-Harabaz
  • Chỉ số Davies-Bouldin

Silhouette Score

Được tính bằng khoảng cách trung bình trong cụm và khoảng cách trung bình đến cụm gần nhất. 

Có thể dùng scikit-learn để tính. Silhouette Score nằm trong [-1, 1], điểm cao hơn nghĩa là tương đồng giữa nhóm thấp hơn và cụm tách biệt hơn. 

from sklearn import metrics


model = KMeans().fit(X)
labels = model.labels_

metrics.silhouette_score(X, labels)

Chỉ số Calinski-Harabaz

Tính độ khác biệt giữa các nhóm dựa trên phương sai giữa cụm và trong cụm. Métic không bị chặn; tương tự Silhouette, điểm cao hơn nghĩa là mô hình tốt hơn. 

metrics.calinski_harabasz_score(X, labels)

Chỉ số Davies-Bouldin

Tính độ tương đồng trung bình của mỗi cụm với cụm giống nó nhất. Khác với các métic khác, điểm thấp hơn nghĩa là mô hình tốt hơn và tách cụm tốt hơn.   

metrics.davies_bouldin_score(X, labels)


Học cách áp dụng phân cụm phân cấp và k-means qua khóa Phân tích Cụm trong R.

Có bốn người trong thang máy và bốn tầng trong tòa nhà. Xác suất để mỗi người xuống ở một tầng khác nhau là bao nhiêu?

4 people and 4 floors probability problem.png

Hình do Tác giả

Ta sẽ dùng:

probability.png

  • F = Số tầng
  • P = Số người

Để giải, trước tiên tìm tổng số cách xuống các tầng: 44 = 4x4x4x4 = 256 cách.

Sau đó, số cách để mỗi người xuống một tầng khác nhau: 4! = 24.

Để tính xác suất, chia số cách mỗi người xuống tầng khác nhau cho tổng số cách: 

24/256 = 3/32

Học chiến lược trả lời các câu xác suất “xoắn não” với R qua khóa Câu đố Xác suất trong R.

Viết hàm tạo N mẫu từ phân phối chuẩn và vẽ biểu đồ histogram.

Để tạo N mẫu từ phân phối chuẩn, bạn có thể dùng Numpy (np.random.randn(N)) hoặc SciPy (sp.stats.norm.rvs(size=N)). 

Để vẽ histogram, bạn có thể dùng Matplotlib hoặc Seaborn. 

  1. Tạo mẫu phân phối chuẩn ngẫu nhiên bằng Numpy randn. 
  2. Vẽ histogram kèm KDE bằng Seaborn. 
  3. Vẽ histogram cho 10K mẫu và trả về mảng Numpy. 
import numpy as np
import seaborn as sns

N = 10_000

def norm_dist_hist(N):
    # Generating Random normal distribution samples
    x = np.random.randn(N)
    # Plotting histogram
    sns.histplot(x, bins = 20, kde=True);
    return x
   
X = norm_dist_hist(N)

distribution histogram.png

Học cách tạo trực quan sinh động, nhiều thông tin trong vài giây qua khóa Giới thiệu Trực quan hóa Dữ liệu với Seaborn.

Cách Chuẩn bị cho Phỏng vấn Khoa học Dữ liệu

Data Science Interview weightage .png

Hình do Tác giả

Phỏng vấn khoa học dữ liệu chia thành bốn đến năm giai đoạn. Bạn sẽ được hỏi về thống kê và học máy, lập trình (Python, R, SQL), hành vi, tư duy sản phẩm, và đôi khi là lãnh đạo. 

Bạn có thể chuẩn bị cho tất cả giai đoạn bằng cách:

  1. Nghiên cứu công ty và mô tả công việc: giúp bạn ưu tiên nỗ lực vào lĩnh vực nhất định của khoa học dữ liệu. 
  2. Xem lại các dự án trong hồ sơ: quản lý tuyển dụng sẽ đánh giá kỹ năng bằng cách hỏi về dự án của bạn. 
  3. Ôn lại nền tảng khoa học dữ liệu: xác suất, thống kê, kiểm định giả thuyết, thống kê mô tả và Bayes, giảm chiều. Cheat sheet là cách nhanh để nắm căn bản. 
  4. Luyện code: làm bài đánh giá, giải thử thách code online, và xem lại các câu hỏi code thường gặp. 
  5. Luyện dự án end-to-end: mài giũa kỹ năng làm sạch, xử lý, phân tích và trực quan hóa dữ liệu. 
  6. Đọc các câu hỏi phỏng vấn thường gặp:  tư duy sản phẩm, thống kê, phân tích, hành vi, và lãnh đạo. 
  7. Thực hành phỏng vấn thử: phỏng vấn với bạn bè, cải thiện vốn từ thống kê, và tăng tự tin. 

Đọc blog Chuẩn bị Phỏng vấn Khoa học Dữ liệu để biết mong đợi gì và cách tiếp cận phỏng vấn.

Câu hỏi Thường gặp về Phỏng vấn Khoa học Dữ liệu

Bốn thành phần chính của khoa học dữ liệu là gì?

Bốn thành phần chính của khoa học dữ liệu là:

  • Hiểu biết kinh doanh và chiến lược dữ liệu.
  • Chuẩn bị dữ liệu (làm sạch, điền khuyết, xác thực).
  • Phân tích dữ liệu và mô hình hóa.
  • Trực quan hóa dữ liệu và vận hành hóa.

Phỏng vấn khoa học dữ liệu có khó không?

Thường là có. Để vượt qua phỏng vấn khoa học dữ liệu, bạn phải thể hiện thành thạo nhiều mảng như thống kê & xác suất, lập trình, phân tích dữ liệu, học máy, tư duy sản phẩm và báo cáo. Xem hướng dẫn về câu hỏi phỏng vấn nhà khoa học dữ liệu để hỗ trợ quá trình chuẩn bị!

Khoa học dữ liệu có phải công việc căng thẳng không?

Còn tùy. Cả đội/người trong công ty có thể dựa vào bạn để cung cấp phân tích và thông tin hành động. Đôi khi bạn phải “đội nhiều mũ”, như kỹ sư dữ liệu, nhà phân tích dữ liệu, kỹ sư học máy, kỹ sư MLOps, quản lý dữ liệu, và trưởng nhóm. Một số người thấy điều này thú vị và thách thức, trong khi người khác thấy căng thẳng và quá tải vào lúc nào đó.

Một năm học có đủ cho khoa học dữ liệu không?

Có thể. Phụ thuộc nền tảng của bạn. Nếu bạn là kỹ sư phần mềm và muốn chuyển hướng, bạn có thể học phần lớn trong một năm. Nhưng nếu bắt đầu từ con số 0, sẽ khó để sẵn sàng đi làm trong một năm. Hãy bắt đầu hành trình Nhà Khoa học Dữ liệu với Python và học toàn bộ nền tảng trong 6 tháng. 

Khoa học dữ liệu có nặng về toán không?

Có. Bạn cần học thống kê, xác suất, toán, phân tích dữ liệu, trực quan hóa dữ liệu, và xây dựng, đánh giá mô hình học máy.

Nghề khoa học dữ liệu có lương tốt không?

Có. Theo Glassdoor, tổng thu nhập trung vị của nhà khoa học dữ liệu ở Mỹ khoảng $130.000–$145.000 mỗi năm vào năm 2026, với vị trí cấp cao tại các công ty công nghệ lớn cao hơn nhiều. Mức lương thay đổi đáng kể theo công ty, địa điểm và kinh nghiệm. Xem hướng dẫn Cách Trở thành Nhà Khoa học Dữ liệu năm 2026 để biết thêm về lộ trình sự nghiệp và đãi ngộ.

Làm thế nào tôi có thể chứng minh kiến thức khoa học dữ liệu với nhà tuyển dụng?

Ngoài việc hoàn thành các khóa học và làm dự án khoa học dữ liệu thực tế, Chứng chỉ Nhà Khoa học Dữ liệu của chúng tôi là cách tốt nhất để chứng minh chuyên môn với nhà tuyển dụng. Chứng chỉ được công nhận trong ngành này kiểm tra kỹ năng của bạn qua hai bài thi tính giờ và một bài thi thực hành.

Chủ đề
Khoa học Dữ liệu
Dịch vụ Nghề nghiệp

Khóa học Khoa học Dữ liệu

Khóa học

Python nâng cao

4 giờ
1.4M
Nâng cao kỹ năng Khoa học dữ liệu của bạn bằng cách tạo trực quan hóa với Matplotlib và thao tác DataFrame bằng pandas.
Xem chi tiếtBắt Đầu Khóa Học

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.
Xem thêm
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêm