Ngân hàng đề — Microsoft Azure Data Scientist

Tìm thấy 313 câu.

Câu 81
You retrain an existing model.
You need to register the new version of a model while keeping the current version of the model in the registry.
What should you do?
  1. A Register a model with a different name from the existing model and a custom property named version with the value 2.
  2. B Register the model with the same name as the existing model.
  3. C Save the new model in the default datastore with the same name as the existing model. Do not register the new model.
  4. D Delete the existing model and register the new one with the same name.
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này thuộc chủ đề AWS SageMaker Model Registry (phần của Amazon SageMaker – dịch vụ machine learning trên AWS). Tình huống: Bạn đã retrain (huấn luyện lại) một mô hình hiện có, và giờ cần đăng ký (register) phiên bản mới của mô hình vào registry, đồng thời giữ nguyên phiên bản hiện tại trong registry mà không làm mất dữ liệu cũ.

📌 Mục tiêu chính: Tạo version mới cho cùng một model name, để registry hỗ trợ versioning tự động (quản lý nhiều phiên bản của cùng model). Đây là tính năng cốt lõi của SageMaker Model Registry, giúp theo dõi lịch sử mô hình, rollback nếu cần, và deploy linh hoạt. Kiến thức này dựa trên phiên bản SageMaker mới nhất (tính đến 2026), nơi Model Registry hỗ trợ infinite versioning mà không ghi đè version cũ.

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Register the model with the same name as the existing model.

Lý do 🛠️:

  • Khi bạn register một model mới với cùng tên (name) như model hiện có trong SageMaker Model Registry, AWS sẽ tự động tạo version mới (ví dụ: version 2), giữ nguyên tất cả version cũ (như version 1).
  • Điều này đảm bảo registry lưu trữ đầy đủ lịch sử mô hình, hỗ trợ aliasing (gắn nhãn version), approval workflow, và deploy dễ dàng.
  • Không cần thêm bước thủ công nào khác – SageMaker xử lý versioning tự động. Đây là best practice theo docs AWS chính thức.

❌ Giải thích tất cả các phương án (đúng/sai)

  • Phương án 1: Register a model with a different name from the existing model and a custom property named version with the value 2.
    ❌ Sai vì: Việc dùng tên khác sẽ tạo một model hoàn toàn mới, không liên kết versioning với model cũ. Custom property "version" chỉ là metadata tùy chỉnh, không thay thế cơ chế versioning tự động của Registry. Điều này làm phức tạp quản lý, không giữ được lịch sử version thực sự.

  • Phương án 2: Register the model with the same name as the existing model.
    ✅ Đúng như đã giải thích ở trên: Tạo version mới tự động, giữ nguyên version cũ – chính xác khớp yêu cầu.

  • Phương án 3: Save the new model in the default datastore with the same name as the existing model. Do not register the new model.
    ❌ Sai vì: Chỉ save vào datastore (như S3) mà không register thì model mới chỉ là file thô, không có versioning, metadata, hay lifecycle management từ Registry. Version cũ vẫn ở registry nhưng mới không được quản lý, dẫn đến khó deploy và track.

  • Phương án 4: Delete the existing model and register the new one with the same name.
    ❌ Sai vì: Delete model cũ sẽ xóa toàn bộ version hiện tại vĩnh viễn (không thể recover trừ khi có backup thủ công). Không đáp ứng yêu cầu "keeping the current version", và mất lịch sử – vi phạm nguyên tắc versioning an toàn.

📘 Tài liệu tham khảo

  • AWS SageMaker Documentation: Model Registry – Phần "Register model versions".
  • AWS Blog (cập nhật 2025): Managing Model Versions in SageMaker.
  • So sánh với Azure ML (từ góc nhìn Azure Data Scientist): Tương tự Azure ML Model Registry, dùng model.register(workspace=ws, model_path=..., model_name="my_model") để auto-versioning.

💡 Lưu ý từ Azure Data Scientist: Trong Azure ML, cách làm tương tự (register cùng name → new version). AWS và Azure đều ưu tiên versioning để production-ready ML!

Câu 82 Chọn nhiều đáp án
You are building a binary classification model by using a supplied training set.
The training set is imbalanced between two classes.
You need to resolve the data imbalance.
What are three possible ways to achieve this goal? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
  1. A Penalize the classification
  2. B Resample the dataset using undersampling or oversampling
  3. C Normalize the training feature set
  4. D Generate synthetic samples in the minority class
  5. E Use accuracy as the evaluation metric of the model
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi này thuộc chủ đề Machine Learning trên AWS (cụ thể liên quan đến Amazon SageMaker hoặc các dịch vụ ML của AWS), tập trung vào việc xử lý vấn đề dữ liệu không cân bằng (imbalanced dataset) trong mô hình phân loại nhị phân (binary classification).

  • Tình huống: Bạn đang xây dựng mô hình phân loại nhị phân sử dụng tập huấn luyện đã cung cấp, nhưng tập dữ liệu bị mất cân bằng giữa hai lớp (ví dụ: lớp thiểu số rất ít, lớp đa số chiếm ưu thế).
  • Mục tiêu: Giải quyết mất cân bằng dữ liệu để mô hình học tốt hơn, tránh thiên vị về lớp đa số.
  • Yêu cầu: Chọn ba cách khả thi (mỗi đáp án đúng là một giải pháp hoàn chỉnh). Đây là dạng câu hỏi multiple correct answers trong kỳ thi AWS Certified Machine Learning – Specialty (phiên bản cập nhật 2023-2026), nơi cần chọn đúng 3/5 lựa chọn.
  • Lưu ý từ AWS: Theo tài liệu AWS SageMaker mới nhất (2026), xử lý imbalance là bước quan trọng trong pipeline ML để cải thiện metrics như Precision, Recall, F1-score, AUC-ROC thay vì Accuracy. Các phương pháp được khuyến nghị bao gồm resampling, synthetic data và class weighting. 📘 Nguồn tham khảo: AWS SageMaker Documentation - Handling Imbalanced Data, AWS ML Blog - Class Imbalance Techniques (2024 update).

✅ Đáp án đúng và lý do lựa chọn

Ba đáp án đúng là:

  1. Penalize the classification
  2. Resample the dataset using undersampling or oversampling
  3. Generate synthetic samples in the minority class

Lý do lựa chọn: Những phương pháp này trực tiếp giải quyết mất cân bằng bằng cách điều chỉnh trọng số lớp, thay đổi kích thước dataset hoặc tạo dữ liệu mới cho lớp thiểu số, giúp mô hình học cân bằng hơn. Chúng được AWS khuyến nghị trong SageMaker Processing Jobs và Built-in Algorithms (như XGBoost với scale_pos_weight). Các phương án sai chỉ là kỹ thuật preprocessing thông thường hoặc metric không phù hợp, không giải quyết gốc rễ vấn đề. 🛠️ Xác nhận từ phiên bản AWS 2026: SageMaker hỗ trợ tích hợp SMOTE, class weights qua hyperparameters.

📋 Phân tích chi tiết từng phương án

Dưới đây là giải thích tất cả 5 phương án, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng (✅) hoặc sai (❌) kèm lý do cụ thể dựa trên best practices AWS ML.

  • ✅ Penalize the classification
    Đúng: Phương pháp này sử dụng class weighting (phạt nặng hơn lỗi dự đoán lớp thiểu số) trong hàm loss function. Trong AWS SageMaker, áp dụng qua hyperparameter như scale_pos_weight trong XGBoost hoặc class_weight trong Linear Learner, giúp mô hình ưu tiên lớp thiểu số mà không thay đổi dữ liệu gốc. Rất hiệu quả cho dataset lớn. 🏆 Ưu điểm: Không làm méo dữ liệu thực tế.

  • ✅ Resample the dataset using undersampling or oversampling
    Đúng: Resampling là kỹ thuật phổ biến nhất: undersampling giảm lớp đa số, oversampling tăng lớp thiểu số (random hoặc với replacement). AWS SageMaker hỗ trợ qua SageMaker Processing với scikit-learn hoặc Spark, tích hợp sẵn trong Data Wrangler. Theo docs 2026, đây là giải pháp đầu tay cho imbalance. 🔄 Ví dụ: Oversampling giúp đạt tỷ lệ 50:50.

  • ❌ Normalize the training feature set
    Sai: Normalization (chuẩn hóa features về cùng scale, ví dụ Min-Max hoặc Z-score) chỉ giúp cải thiện tốc độ hội tụ và hiệu suất mô hình với features khác thang đo, không giải quyết imbalance. Đây là bước preprocessing cơ bản trong SageMaker Feature Store, nhưng vô hiệu với vấn đề lớp dữ liệu. ⚠️ Không liên quan: Imbalance là về số lượng sample, không phải giá trị features.

  • ✅ Generate synthetic samples in the minority class
    Đúng: Sử dụng thuật toán như SMOTE (Synthetic Minority Over-sampling Technique) để tạo dữ liệu giả lập cho lớp thiểu số dựa trên k-nearest neighbors. AWS SageMaker tích hợp SMOTE qua imbalanced-learn library trong Processing Jobs (cập nhật 2025), tránh overfitting so với oversampling random. 🎨 Ưu điểm: Tăng độ đa dạng dữ liệu mà không nhân bản.

  • ❌ Use accuracy as the evaluation metric of the model
    Sai: Accuracy (tỷ lệ dự đoán đúng tổng thể) không phù hợp cho dataset imbalance vì lớp đa số dễ "lừa" metric cao (ví dụ: 99% đa số → predict all đa số đạt 99% accuracy). AWS khuyến nghị dùng AUC-ROC, Precision-Recall, F1 thay thế trong SageMaker Experiments và Clarify. 📊 Vấn đề: Làm mô hình kém hiệu quả thực tế.

Hy vọng phân tích này giúp bạn nắm vững! Nếu cần code ví dụ SageMaker Jupyter notebook, hãy hỏi thêm. 🚀

Câu 83
You have recently concluded the construction of a binary classification machine learning model.
You are currently assessing the model. You want to make use of a visualization that allows for precision to be used as the measurement for the assessment.
Which of the following actions should you take?
  1. A You should consider using Venn diagram visualization.
  2. B You should consider using Receiver Operating Characteristic (ROC) curve visualization.
  3. C You should consider using Box plot visualization.
  4. D You should consider using the Binary classification confusion matrix visualization.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào việc đánh giá mô hình học máy phân loại nhị phân (binary classification) sau khi đã xây dựng xong. Người dùng muốn sử dụng một hình ảnh hóa (visualization) cho phép đo lường precision làm tiêu chí chính để đánh giá hiệu suất mô hình.

  • Precision là chỉ số quan trọng trong phân loại nhị phân, được tính bằng công thức: Precision = TP / (TP + FP) (True Positive / tổng số dự đoán Positive).
  • Trong môi trường AWS SageMaker (dịch vụ ML chính của AWS, cập nhật đến phiên bản 2026 với SageMaker Studio v2 và tích hợp Clarify/Debugger), việc chọn visualization phù hợp giúp trực quan hóa các chỉ số như precision một cách chính xác.
    Câu hỏi yêu cầu chọn hành động tốt nhất để sử dụng visualization hỗ trợ precision làm measurement chính.

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: You should consider using the Binary classification confusion matrix visualization.
🛠️ Lý do: Confusion Matrix (ma trận nhầm lẫn) là visualization chuẩn cho binary classification trong AWS SageMaker. Nó hiển thị trực tiếp TP, TN, FP, FN, từ đó tính toán precision một cách chính xác và trực quan. Trong SageMaker Model Monitor hoặc Debugger (cập nhật 2025-2026 với hỗ trợ tích hợp LLM), confusion matrix là công cụ mặc định để visualize và đánh giá precision, recall, F1-score. Không có visualization nào khác trực tiếp hỗ trợ precision như vậy.

📊 Giải thích chi tiết tất cả các phương án

Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh. Tôi đánh dấu ✅ Đúng hoặc ❌ Sai kèm lý do bằng tiếng Việt rõ ràng:

  • ❌ SAI: You should consider using Venn diagram visualization.
    🧩 Venn diagram dùng để minh họa mối quan hệ giữa các tập hợp (sets) chồng chéo, không liên quan đến đánh giá mô hình ML. Nó không thể tính hoặc visualize precision (TP/(TP+FP)), nên không phù hợp cho binary classification trong AWS SageMaker.

  • ❌ SAI: You should consider using Receiver Operating Characteristic (ROC) curve visualization.
    🛠️ ROC curve vẽ TPR (True Positive Rate) theo FPR (False Positive Rate), dùng để đánh giá trade-off ngưỡng phân loại và tính AUC-ROC. Tuy mạnh mẽ trong SageMaker Clarify (cập nhật 2026 hỗ trợ multi-class), nhưng không trực tiếp sử dụng precision làm measurement chính – precision thay đổi theo ngưỡng, không phải focus của ROC.

  • ❌ SAI: You should consider using Box plot visualization.
    📈 Box plot dùng để hiển thị phân phối dữ liệu (median, quartiles, outliers), thường cho feature engineering hoặc EDA trong SageMaker Data Wrangler. Nó hoàn toàn không liên quan đến precision hay đánh giá phân loại, không hỗ trợ TP/FP.

  • ✅ ĐÚNG: You should consider using the Binary classification confusion matrix visualization.
    🛠️ Như đã giải thích, đây là lựa chọn tối ưu. Trong AWS SageMaker (phiên bản mới nhất 2026), bạn có thể generate confusion matrix qua Processing Jobs, Model Monitor, hoặc Studio visualizations, trực tiếp derive precision từ ma trận.

📘 Tài liệu tham khảo (cập nhật AWS đến 2026)

Hy vọng phân tích này giúp bạn hiểu rõ! 🚀 Nếu cần code SageMaker Jupyter notebook để demo, hãy cho tôi biết.

Câu 84
You write a Python script that processes data in a comma-separated values (CSV) file.
You plan to run this script as an Azure Machine Learning experiment.
The script loads the data and determines the number of rows it contains using the following code:
from azureml.core import Run
import pandas as pd

run = Run.get_context()
data = pd.read_csv('./data.csv')
rows = (len(data))
# record row_count metric here

You need to record the row count as a metric named row_count that can be returned using the get_metrics method of the Run object after the experiment run completes.
Which code should you use?
  1. A run.upload_file(T3 row_count', './data.csv')
  2. B run.log('row_count', rows)
  3. C run.tag('row_count', rows)
  4. D run.log_table('row_count', rows)
  5. E run.log_row('row_count', rows)
Xem giải thích

🧩 Phân tích chi tiết câu hỏi

Câu hỏi này thuộc lĩnh vực Azure Machine Learning (Azure ML), tập trung vào việc ghi nhận (logging) một metric đơn giản trong một script Python chạy như một phần của experiment trong Azure ML.

  • Bối cảnh: Bạn đang viết script Python xử lý file CSV (sử dụng pandas để đọc dữ liệu và tính số hàng rows = len(data)). Script này sẽ chạy trong Azure ML experiment, và bạn cần ghi metric tên "row_count" với giá trị là rows. Metric này phải có thể truy xuất sau khi experiment hoàn thành thông qua phương thức run.get_metrics() của đối tượng Run.
  • Mục tiêu chính: Sử dụng đúng phương thức của lớp Run (từ azureml.core) để log metric scalar (giá trị số đơn lẻ), đảm bảo nó được lưu trữ và có thể lấy metrics một cách chính xác.
  • Phiên bản kiến thức: Dựa trên Azure ML SDK v1 (azureml-core) phiên bản mới nhất đến năm 2026 (v1.52+), nơi Run.log() là chuẩn cho scalar metrics. (Lưu ý: SDK v2 khuyến khích dùng MLflow, nhưng code mẫu dùng v1 nên áp dụng v1).

📘 Nguồn tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: run.log('row_count', rows)

Lý do 🛠️:

  • Phương thức run.log(name, value) được thiết kế chuyên biệt để ghi scalar metrics (giá trị số đơn lẻ như rows). Metric này sẽ được lưu trữ tự động trong Azure ML workspace và có thể truy xuất đầy đủ qua run.get_metrics(), trả về dictionary chứa 'row_count': rows. Đây là cách chuẩn, đơn giản nhất cho metrics theo dõi experiment (hỗ trợ cả số nguyên, float, và tự động xử lý định dạng).

📋 Giải thích tất cả các phương án (đúng/sai)

  • ✅ [ĐÚNG] run.log('row_count', rows)
    🟢 Đúng vì: Như giải thích trên, đây là phương thức chuẩn cho scalar metrics. Nó lưu giá trị vào run history và dễ dàng visualize trong Azure ML Studio. Ví dụ: run.get_metrics() sẽ trả {'row_count': 1000} nếu rows=1000.

  • ❌ [SAI] run.upload_file('row_count', './data.csv')
    🔴 Sai vì: run.upload_file(name, path) dùng để upload file (như CSV) vào run history với tên name, không phải log metric số. Nó lưu file ./data.csv dưới tên 'row_count', nhưng get_metrics() không truy xuất được (chỉ lấy metadata file, không phải giá trị rows). Không phù hợp cho metric số.

  • ❌ [SAI] run.tag('row_count', rows)
    🔴 Sai vì: run.tag(key, value) dùng để gắn tags metadata (nhãn tùy chỉnh cho run, như tags Azure resource). Tags không phải metrics, không hiển thị trong charts/metrics tab của experiment, và get_metrics() không trả về tags (phải dùng run.get_tags() riêng). Không dùng cho theo dõi số liệu định lượng.

  • ❌ [SAI] run.log_table('row_count', rows)
    🔴 Sai vì: run.log_table(name, table) dành cho bảng dữ liệu (dictionary hoặc DataFrame với nhiều cột/hàng). rows chỉ là số scalar, không phải table → sẽ lỗi runtime (TypeError). get_metrics() hỗ trợ tables nhưng phức tạp hơn, không cần thiết cho scalar.

  • ❌ [SAI] run.log_row('row_count', rows)
    🔴 Sai vì: run.log_row(name, row) dùng để log một hàng dữ liệu vào table metric (row là dict). rows là scalar → lỗi tương tự log_table. Dùng cho series dữ liệu theo thời gian, không phải single metric. get_metrics() sẽ coi nó là table row, không đơn giản như scalar.

Tóm tắt nhanh 🚀: Chỉ run.log() phù hợp hoàn hảo cho scalar metric trong Azure ML experiment. Các phương án sai đều dùng sai mục đích của API Run!

Câu 85 Chọn nhiều đáp án
You use the Azure Machine Learning SDK to run a training experiment that trains a classification model and calculates its accuracy metric.
The model will be retrained each month as new data is available.
You must register the model for use in a batch inference pipeline.
You need to register the model and ensure that the models created by subsequent retraining experiments are registered only if their accuracy is higher than the currently registered model.
What are two possible ways to achieve this goal? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
  1. A Specify a different name for the model each time you register it.
  2. B Register the model with the same name each time regardless of accuracy, and always use the latest version of the model in the batch inferencing pipeline.
  3. C Specify the model framework version when registering the model, and only register subsequent models if this value is higher.
  4. D Specify a property named accuracy with the accuracy metric as a value when registering the model, and only register subsequent models if their accuracy is higher than the accuracy property value of the currently registered model.
  5. E Specify a tag named accuracy with the accuracy metric as a value when registering the model, and only register subsequent models if their accuracy is higher than the accuracy tag value of the currently registered model.
Xem giải thích

🧩 Phân tích chi tiết câu hỏi trắc nghiệm

📘 Nội dung câu hỏi:
Câu hỏi thuộc lĩnh vực Azure Machine Learning (Azure ML), không phải AWS như mô tả ban đầu (có thể là nhầm lẫn). Cụ thể, bạn đang sử dụng Azure Machine Learning SDK để chạy một thí nghiệm huấn luyện (training experiment) mô hình phân loại (classification model) và tính toán chỉ số độ chính xác (accuracy metric). Mô hình sẽ được tái huấn luyện hàng tháng khi có dữ liệu mới. Yêu cầu là đăng ký (register) mô hình để sử dụng trong batch inference pipeline (đường ống suy luận hàng loạt). Quan trọng nhất: Các mô hình từ các lần tái huấn luyện sau chỉ được đăng ký nếu độ chính xác cao hơn mô hình đang đăng ký hiện tại. Câu hỏi yêu cầu hai cách khả thi để đạt mục tiêu này (multi-select, mỗi đáp án đúng 1 điểm).

Mục tiêu chính: Sử dụng cơ chế tags hoặc properties của Azure ML Model Registry để lưu trữ metric accuracy, từ đó so sánh và quyết định đăng ký phiên bản mới (với cùng tên model, tự động tạo version mới). Điều này đảm bảo chỉ giữ model tốt nhất. Kiến thức dựa trên Azure ML SDK v2 (phiên bản mới nhất đến 2026), hỗ trợ quản lý model qua mlclient.models.register_model() với tags/properties.

✅ Đáp án đúng (hai lựa chọn):

  • Specify a property named accuracy with the accuracy metric as a value when registering the model, and only register subsequent models if their accuracy is higher than the accuracy property value of the currently registered model.
  • Specify a tag named accuracy with the accuracy metric as a value when registering the model, and only register subsequent models if their accuracy is higher than the accuracy tag value of the currently registered model.

🛠️ Lý do chọn đáp án đúng:
Cả hai cách đều tận dụng Model Registry của Azure ML, nơi model được đăng ký với tên giống nhau (tạo version mới tự động). Trước khi đăng ký, dùng mlclient.models.get(name=..., label="latest") để lấy model hiện tại, đọc property hoặc tag "accuracy", so sánh với accuracy mới. Nếu cao hơn, mới đăng ký với property/tag cập nhật. Properties là metadata nội bộ (read-only sau đăng ký), tags là key-value linh hoạt để filter/search. Cả hai đều hỗ trợ lưu metric và so sánh hiệu quả trong code Python SDK.

📋 Giải thích tất cả các phương án (sử dụng kiến thức Azure ML mới nhất)

  • ❌ Specify a different name for the model each time you register it.
    Phương án này sai vì sẽ tạo nhiều model riêng biệt với tên khác nhau, không tự động so sánh accuracy giữa các lần tái huấn luyện. Batch inference pipeline khó quản lý (phải track tên thủ công), không đảm bảo chỉ giữ model tốt nhất. Azure ML khuyến nghị dùng cùng tên + version để overwrite/select latest tốt nhất.

  • ❌ Register the model with the same name each time regardless of accuracy, and always use the latest version of the model in the batch inferencing pipeline.
    Phương án này sai vì đăng ký mù quáng mọi lần (không check accuracy), dẫn đến latest version có thể kém hơn trước. Batch pipeline dùng latest sẽ fail mục tiêu "chỉ đăng ký nếu accuracy cao hơn". Không kiểm soát chất lượng model.

  • ❌ Specify the model framework version when registering the model, and only register subsequent models if this value is higher.
    Phương án này sai vì framework version (như TensorFlow 2.15 hoặc scikit-learn 1.5) là thông tin kỹ thuật về thư viện, không liên quan đến accuracy metric của model. Không thể dùng để so sánh chất lượng huấn luyện; có thể framework version cao hơn nhưng accuracy thấp hơn do dữ liệu kém.

  • ✅ Specify a property named accuracy with the accuracy metric as a value when registering the model, and only register subsequent models if their accuracy is higher than the accuracy property value of the currently registered model.
    Phương án này đúng vì properties (qua model_properties={"accuracy": str(accuracy)}) lưu metadata số, dễ đọc bằng model.properties["accuracy"]. Code kiểm tra trước khi register_model() đảm bảo chỉ update nếu tốt hơn. Hỗ trợ đầy đủ trong Azure ML v2 (2024-2026).

  • ✅ Specify a tag named accuracy with the accuracy metric as a value when registering the model, and only register subsequent models if their accuracy is higher than the accuracy tag value of the currently registered model.
    Phương án này đúng vì tags (qua tags={"accuracy": str(accuracy)}) là key-value public, dễ query/filter qua Studio/CLI/SDK như model.tags["accuracy"]. Linh hoạt hơn properties cho dashboard, và logic so sánh giống hệt.

📚 Tài liệu tham khảo (cập nhật 2026):

Câu 86
This question is included in a number of questions that depicts the identical set-up. However, every question has a distinctive result. Establish if the recommendation satisfies the requirements.
You have been tasked with evaluating your model on a partial data sample via k-fold cross-validation.
You have already configured a k parameter as the number of splits. You now have to configure the k parameter for the cross-validation with the usual value choice.
Recommendation: You configure the use of the value k=1.
Will the requirements be satisfied?
  1. A Yes
  2. B No
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này thuộc chủ đề Machine Learning trên AWS (cụ thể là Amazon SageMaker), tập trung vào kỹ thuật k-fold cross-validation (CV) để đánh giá mô hình trên một mẫu dữ liệu partial (dữ liệu con).

  • Bối cảnh: Bạn đang thực hiện đánh giá mô hình bằng k-fold CV. Đã cấu hình tham số k là số lượng splits (folds). Bây giờ cần chọn giá trị k phù hợp cho CV với lựa chọn "thông thường" (usual value choice).
  • Khuyến nghị (Recommendation): Sử dụng k=1.
  • Yêu cầu đánh giá: Khuyến nghị này có đáp ứng yêu cầu không? (Will the requirements be satisfied?)
  • Mục tiêu chính: Kiểm tra xem k=1 có phải là giá trị hợp lý cho k-fold CV không. Trong thực tế AWS SageMaker (phiên bản mới nhất 2026), k-fold CV yêu cầu k ≥ 3 (thường 5 hoặc 10) để chia dữ liệu thành các fold độc lập, train trên k-1 fold và validate trên 1 fold còn lại, lặp lại để tránh overfitting và đánh giá ổn định. Giá trị k=1 chỉ tương đương train trên toàn bộ data mà không có validation riêng, vi phạm nguyên tắc CV.

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: No

Lý do: 🛠️ Khuyến nghị k=1 không đáp ứng yêu cầu vì k-fold CV yêu cầu k ≥ 3 (giá trị thông thường là 5 hoặc 10) để chia dữ liệu thành các fold độc lập, đảm bảo đánh giá mô hình đáng tin cậy trên partial data. Với k=1, không có sự phân chia train/validation thực sự → mô hình chỉ train trên toàn bộ data mà không validate, dẫn đến bias cao và không đạt "usual value choice" theo chuẩn AWS SageMaker. Điều này vi phạm best practices ML để tránh overfitting.

📋 Giải thích tất cả các phương án (đúng/sai)

  • Yes ❌ SAI: Phương án này cho rằng k=1 đáp ứng yêu cầu, nhưng thực tế hoàn toàn sai vì k=1 không tạo ra cross-validation đúng nghĩa. Trong SageMaker, k=1 chỉ train 100% data mà không có hold-out set, không đánh giá được generalization error trên partial sample. Giá trị "thông thường" là k=5/10 (theo AWS docs 2026), k=1 bị coi là invalid cho CV.

  • No ✅ ĐÚNG: Phương án này chính xác vì k=1 không satisfy requirements. K-fold CV trên AWS yêu cầu k>1 để lặp lại quá trình train/validate trên các fold khác nhau, đảm bảo đánh giá ổn định. SageMaker tự động hỗ trợ k=3-10 trong built-in algorithms (như XGBoost, Linear Learner), và k=1 sẽ fail hoặc không khuyến khích, dẫn đến kết quả không đáng tin cậy.

Câu 87
A set of CSV files contains sales records. All the CSV files have the same data schema.
Each CSV file contains the sales record for a particular month and has the filename sales.csv. Each file is stored in a folder that indicates the month and year when the data was recorded. The folders are in an Azure blob container for which a datastore has been defined in an Azure Machine Learning workspace. The folders are organized in a parent folder named sales to create the following hierarchical structure:

At the end of each month, a new folder with that month's sales file is added to the sales folder.
You plan to use the sales data to train a machine learning model based on the following requirements:
✑ You must define a dataset that loads all of the sales data to date into a structure that can be easily converted to a dataframe.
✑ You must be able to create experiments that use only data that was created before a specific previous month, ignoring any data that was added after that month.
✑ You must register the minimum number of datasets possible.
You need to register the sales data as a dataset in Azure Machine Learning service workspace.
What should you do?
  1. A Create a tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file every month. Register the dataset with the name sales_dataset each month, replacing the existing dataset and specifying a tag named month indicating the month and year it was registered. Use this dataset for all experiments.
  2. B Create a tabular dataset that references the datastore and specifies the path 'sales/*/sales.csv', register the dataset with the name sales_dataset and a tag named month indicating the month and year it was registered, and use this dataset for all experiments.
  3. C Create a new tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file every month. Register the dataset with the name sales_dataset_MM-YYYY each month with appropriate MM and YYYY values for the month and year. Use the appropriate month-specific dataset for experiments.
  4. D Create a tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file. Register the dataset with the name sales_dataset each month as a new version and with a tag named month indicating the month and year it was registered. Use this dataset for all experiments, identifying the version to be used based on the month tag as necessary.
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này thuộc lĩnh vực Azure Machine Learning (Azure ML), tập trung vào việc quản lý và đăng ký dataset từ dữ liệu bán hàng lưu trữ trong Azure Blob Storage. Dữ liệu gồm các file CSV có cùng schema, mỗi file chứa hồ sơ bán hàng của một tháng cụ thể (tên file luôn là sales.csv), được tổ chức trong thư mục con theo định dạng mm-yyyy (ví dụ: 01-2019), tất cả nằm trong thư mục cha sales thuộc một Azure Blob container đã được định nghĩa là datastore trong Azure ML workspace.

📁 Phân tích cấu trúc thư mục từ hình ảnh (dựa trên mô tả text và hình minh họa):

sales/
├── 01-2019/
│   └── sales.csv
├── 02-2019/
│   └── sales.csv
├── 03-2019/
│   └── sales.csv
└── ... (các tháng sau được thêm dần vào cuối mỗi tháng)
  • Mỗi tháng mới, một thư mục mới mm-yyyy chứa sales.csv sẽ được thêm vào /sales/.
  • Yêu cầu chính:
    • ✅ Tạo dataset dạng tabular (bảng), load tất cả dữ liệu bán hàng đến thời điểm hiện tại vào cấu trúc dễ chuyển thành DataFrame (như Pandas).
    • ✅ Cho phép tạo experiments chỉ dùng dữ liệu trước một tháng cụ thể (bỏ qua dữ liệu tháng sau).
    • ✅ Đăng ký số lượng dataset tối thiểu có thể (tối ưu hóa quản lý).
  • Mục tiêu: Đăng ký dữ liệu bán hàng làm dataset trong Azure ML workspace để train mô hình ML.

🛠️ Kiến thức liên quan (cập nhật đến 2026): Trong Azure ML (phiên bản mới nhất v2, theo docs 2024-2026), TabularDataset hỗ trợ chỉ định đường dẫn file cụ thể (list paths), wildcard, hoặc pattern. Khi đăng ký dataset với tên giống nhau, Azure ML tự động tạo version mới (versioning). Tags (metadata) giúp filter version theo thời gian. Wildcard (*) load tất cả file khớp pattern, nhưng khó loại trừ file mới mà không tạo dataset riêng. Minimum datasets đạt được bằng versioning một dataset duy nhất.

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Create a tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file. Register the dataset with the name sales_dataset each month as a new version and with a tag named month indicating the month and year it was registered. Use this dataset for all experiments, identifying the version to be used based on the month tag as necessary.

Lý do:

  • 🛠️ Tạo TabularDataset bằng cách liệt kê tất cả đường dẫn file cụ thể đến tháng hiện tại (ví dụ: ['sales/01-2019/sales.csv', 'sales/02-2019/sales.csv', ...]), load toàn bộ dữ liệu vào DataFrame dễ dàng.
  • 📈 Đăng ký với tên sales_dataset cố định → Azure ML tự tạo version mới mỗi tháng (minimum 1 dataset, chỉ nhiều version).
  • 🏷️ Tag month (ví dụ: month: '03-2019') cho phép filter version cũ để experiments chỉ dùng dữ liệu trước tháng cụ thể (ignore file mới).
  • ✅ Đáp ứng tất cả yêu cầu: Load full data to date, linh hoạt thời gian, tối thiểu dataset (chỉ 1 tên, nhiều version).

📋 Giải thích tất cả các phương án (đúng/sai)

  • ❌ [SAI] Create a tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file every month. Register the dataset with the name sales_dataset each month, replacing the existing dataset and specifying a tag named month indicating the month and year it was registered. Use this dataset for all experiments.

    • Lý do sai: Việc replace dataset (ghi đè version hiện tại) sẽ mất dữ liệu version cũ, không thể truy xuất dữ liệu "trước tháng cụ thể" vì chỉ giữ version mới nhất. Không hỗ trợ experiments lịch sử, vi phạm yêu cầu linh hoạt thời gian. Tag không cứu vãn được vì history bị xóa.
  • ❌ [SAI] Create a tabular dataset that references the datastore and specifies the path 'sales/*/sales.csv', register the dataset with the name sales_dataset and a tag named month indicating the month and year it was registered, and use this dataset for all experiments.

    • Lý do sai: Wildcard sales/*/sales.csv tự động load tất cả file mới (không kiểm soát được), không thể ignore dữ liệu sau tháng cụ thể mà không thay đổi dataset. Đăng ký 1 lần duy nhất → không cập nhật theo tháng mới, tag chỉ metadata không filter file động. Không linh hoạt cho experiments cũ.
  • ❌ [SAI] Create a new tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file every month. Register the dataset with the name sales_dataset_MM-YYYY each month with appropriate MM and YYYY values for the month and year. Use the appropriate month-specific dataset for experiments.

    • Lý do sai: Tạo dataset mới với tên khác nhau mỗi tháng (ví dụ: sales_dataset_01-2019, sales_dataset_02-2019) → số lượng dataset tăng vô hạn, vi phạm "minimum number of datasets possible". Quản lý phức tạp, không tối ưu.
  • ✅ [ĐÚNG] Create a tabular dataset that references the datastore and explicitly specifies each 'sales/mm-yyyy/sales.csv' file. Register the dataset with the name sales_dataset each month as a new version and with a tag named month indicating the month and year it was registered. Use this dataset for all experiments, identifying the version to be used based on the month tag as necessary.

    • Lý do đúng: Như phân tích ở phần trên – versioning giữ history đầy đủ, explicit paths kiểm soát chính xác dữ liệu đến tháng, tag filter dễ chọn version cho experiments. Minimum 1 dataset, load DataFrame mượt mà. Hoàn hảo cho quy trình end-of-month! 🎯
Câu 88
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You are creating a new experiment in Azure Machine Learning Studio.
One class has a much smaller number of observations than the other classes in the training set.
You need to select an appropriate data sampling strategy to compensate for the class imbalance.
Solution: You use the Synthetic Minority Oversampling Technique (SMOTE) sampling mode.
Does the solution meet the goal?
  1. A Yes
  2. B No
Xem giải thích

🧠 Phân tích câu hỏi trắc nghiệm về Azure Machine Learning Studio

📖 Giải thích nội dung câu hỏi một cách chi tiết và rõ ràng:
Câu hỏi thuộc dạng series questions trong kỳ thi chứng chỉ (gợi ý giống như AZ-104 hoặc DP-100 của Microsoft Azure), nơi mỗi câu hỏi trình bày một tình huống giống nhau nhưng giải pháp khác biệt. Bạn đang tạo một experiment mới trong Azure Machine Learning Studio (nay là Azure ML Studio classic hoặc Designer). Vấn đề cụ thể: Trong tập dữ liệu huấn luyện (training set), có class imbalance – một lớp (class) có số lượng quan sát (observations) ít hơn rất nhiều so với các lớp khác. Mục tiêu: Chọn data sampling strategy phù hợp để bù đắp sự mất cân bằng lớp (compensate for class imbalance).
Giải pháp đề xuất (Solution): Sử dụng chế độ lấy mẫu Synthetic Minority Oversampling Technique (SMOTE).
Câu hỏi yêu cầu đánh giá: Giải pháp này có đạt được mục tiêu không? (Does the solution meet the goal?).
🛠️ Bối cảnh cập nhật đến 2026: Azure Machine Learning (phiên bản mới nhất v2) vẫn hỗ trợ SMOTE qua module SMOTE trong Designer hoặc custom script trong notebooks. Đây là kỹ thuật chuẩn cho oversampling minority class, tạo dữ liệu tổng hợp (synthetic samples) dựa trên k-nearest neighbors, giúp mô hình học tốt hơn mà không làm mất dữ liệu gốc.

✅ Đáp án đúng và lý do lựa chọn:
Đáp án đúng: Yes
Lý do: SMOTE là kỹ thuật oversampling chuyên dụng cho class imbalance, đặc biệt hiệu quả với minority class (lớp thiểu số). Nó tạo ra các mẫu dữ liệu tổng hợp mới bằng cách nội suy giữa các điểm dữ liệu minority gần nhau (dựa trên thuật toán k-NN), giúp cân bằng dataset mà không nhân bản đơn giản (tránh overfitting). Trong Azure ML Studio/Designer, module SMOTE được thiết kế chính xác cho tình huống này, đáp ứng mục tiêu bù đắp imbalance. Theo tài liệu Microsoft cập nhật 2025-2026, SMOTE vẫn là lựa chọn hàng đầu cho các experiment xử lý imbalance trong classification tasks.
Nguồn tham khảo:

🧩 Giải thích tất cả các phương án (đúng và sai):

  • Yes ✅:
    Phương án này ĐÚNG vì SMOTE trực tiếp giải quyết vấn đề class imbalance bằng cách oversampling minority class một cách thông minh, tạo synthetic samples để tăng số lượng quan sát mà không làm giảm chất lượng dữ liệu. Trong Azure ML Studio, module này dễ tích hợp vào pipeline experiment, giúp mô hình phân loại (như binary/multi-class) học đều các lớp. Không có nhược điểm lớn ở đây, phù hợp 100% với goal.

  • No ❌:
    Phương án này SAI vì phủ nhận hiệu quả của SMOTE, trong khi giải pháp hoàn toàn phù hợp. Nếu chọn No, bạn đang bỏ qua tính năng core của Azure ML cho imbalance (như SMOTE vs. undersampling hoặc random oversampling). SMOTE tránh các vấn đề của undersampling (mất dữ liệu majority) và được khuyến nghị chính thức bởi Microsoft cho scenario này. Chọn No sẽ không meet the goal.

💡 Lời khuyên từ Azure Data Scientist:
Hãy ưu tiên SMOTE cho imbalance <10:1 ratio; kết hợp với undersampling nếu dataset lớn. Test với cross-validation để validate! 🚀

Câu 89
You are a data scientist working for a hotel booking website company. You use the Azure Machine Learning service to train a model that identifies fraudulent transactions.
You must deploy the model as an Azure Machine Learning real-time web service using the Model.deploy method in the Azure Machine Learning SDK. The deployed web service must return real-time predictions of fraud based on transaction data input.
You need to create the script that is specified as the entry_script parameter for the InferenceConfig class used to deploy the model.
What should the entry script do?
  1. A Register the model with appropriate tags and properties.
  2. B Create a Conda environment for the web service compute and install the necessary Python packages.
  3. C Load the model and use it to predict labels from input data.
  4. D Start a node on the inference cluster where the web service is deployed.
  5. E Specify the number of cores and the amount of memory required for the inference compute.
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi mô tả tình huống bạn là một data scientist làm việc cho công ty website đặt phòng khách sạn. Bạn đã huấn luyện một mô hình machine learning trên Azure Machine Learning service để phát hiện giao dịch gian lận (fraudulent transactions). Bây giờ, bạn cần deploy mô hình dưới dạng real-time web service sử dụng phương thức Model.deploy() trong Azure Machine Learning SDK. Web service này phải trả về dự đoán thời gian thực về gian lận dựa trên dữ liệu giao dịch đầu vào.
Nhiệm vụ cụ thể: Tạo entry_script (thường là file score.py) được chỉ định trong tham số entry_script của lớp InferenceConfig khi deploy.
Mục đích chính: Entry script định nghĩa logic inference (dự đoán) cho web service, bao gồm việc load mô hình và xử lý input/output. Đây là bước cốt lõi trong quy trình deploy real-time endpoint trên Azure ML (phiên bản SDK v2 cập nhật đến 2026, hỗ trợ managed endpoints với entry script linh hoạt hơn).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Load the model and use it to predict labels from input data.
Lý do: Entry script trong Azure ML InferenceConfig phải chứa hai hàm chính:

  • init(): Load mô hình từ file đã đăng ký (model.pkl hoặc tương tự).
  • run(input_data): Nhận input (dữ liệu giao dịch JSON/CSV), sử dụng mô hình để dự đoán (predict labels như "fraud" hoặc "not fraud"), và trả về kết quả.
    Điều này đảm bảo web service hoạt động real-time, xử lý request HTTP POST và response JSON predictions. Theo docs Azure ML SDK v2 (2023-2026), đây là yêu cầu bắt buộc cho real-time inference.

📋 Giải thích tất cả các phương án

Dưới đây là phân tích chi tiết từng lựa chọn, với ✅ cho đúng và ❌ cho sai. Tôi giữ nguyên văn bản gốc tiếng Anh của phương án, chỉ giải thích bằng tiếng Việt:

  • ❌ Register the model with appropriate tags and properties.
    Sai vì việc đăng ký (register) mô hình với tags/properties được thực hiện trước khi deploy, qua Model.register(). Entry script chỉ chạy sau khi deploy, tập trung vào inference, không liên quan đến metadata.

  • ❌ Create a Conda environment for the web service compute and install the necessary Python packages.
    Sai vì môi trường Conda được định nghĩa trong Environment object (conda_file hoặc docker image), không phải entry script. Entry script chỉ là Python code cho logic dự đoán, không quản lý packages.

  • ✅ Load the model and use it to predict labels from input data.
    Đúng hoàn toàn, như đã giải thích ở phần đáp án. Entry script phải load model (qua joblib.load hoặc pickle) và gọi model.predict() trên input data để trả về predictions real-time.

  • ❌ Start a node on the inference cluster where the web service is deployed.
    Sai vì việc khởi động node/cluster thuộc về DeploymentConfig (ACI/AKS compute target), không phải entry script. Entry script chỉ là code chạy trên node đã deploy.

  • ❌ Specify the number of cores and the amount of memory required for the inference compute.
    Sai vì specs tài nguyên (cores, memory) được chỉ định trong DeploymentConfig (như compute_target hoặc instance_type), không phải entry script. Entry script chỉ xử lý logic model.

📘 Tài liệu tham khảo

🛠️ Lời khuyên: Khi viết entry script, luôn test local với MLClient trước deploy để tránh lỗi runtime! Nếu cần code mẫu, hãy hỏi thêm nhé! 🚀

Câu 90
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You are creating a new experiment in Azure Machine Learning Studio.
One class has a much smaller number of observations than the other classes in the training set.
You need to select an appropriate data sampling strategy to compensate for the class imbalance.
Solution: You use the Stratified split for the sampling mode.
Does the solution meet the goal?
  1. A Yes
  2. B No
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi thuộc dạng series questions trong kỳ thi chứng chỉ (có thể là Azure Data Scientist Associate - DP-100), nơi mỗi câu trình bày một tình huống giống nhau nhưng giải pháp khác nhau. Người dùng đang tạo một experiment mới trong Azure Machine Learning Studio (phiên bản classic, cập nhật đến 2026 vẫn hỗ trợ các module tương tự). Vấn đề chính: Dataset huấn luyện có sự mất cân bằng lớp (class imbalance), tức một lớp (class) có số lượng quan sát (observations) ít hơn rất nhiều so với các lớp khác.

Mục tiêu (goal): Chọn chiến lược lấy mẫu dữ liệu (data sampling strategy) phù hợp để bù đắp cho sự mất cân bằng lớp này.

Giải pháp đề xuất (Solution): Sử dụng Stratified split làm chế độ lấy mẫu (sampling mode).

Câu hỏi cụ thể: Giải pháp này có đạt được mục tiêu không? (Does the solution meet the goal?)

📘 Lưu ý từ Azure ML Studio (cập nhật 2026): Module Split Data có các chế độ như Split Rows (random), Stratified split (chia theo tỷ lệ lớp), Relative columns, v.v. Stratified split chỉ đảm bảo tỷ lệ lớp được giữ nguyên trong tập train/test/validation, không phải là kỹ thuật xử lý imbalance như oversampling/undersampling.

✅ Đáp án đúng: No

Lý do lựa chọn:
Giải pháp Stratified split chỉ dùng để chia dữ liệu một cách phân tầng (stratified), đảm bảo tỷ lệ các lớp được duy trì đồng đều giữa tập train và test (ví dụ: nếu lớp thiểu số chiếm 10% dataset, nó vẫn ~10% ở cả hai tập). Tuy nhiên, nó không bù đắp imbalance vì:

  • Không tăng/giảm số lượng mẫu của lớp thiểu số (không oversample/undersample).
  • Không áp dụng kỹ thuật như SMOTE, class weights, hay Synthetic Minority Oversampling.
    Để xử lý imbalance thực sự trong Azure ML, cần dùng module SMOTE, Edit Decision Tree for Imbalanced Dataset, hoặc Synthetic Minority Oversampling Technique trong Sweep Clustering – không phải Split Data.
    🛠️ Kiến thức cập nhật: Theo tài liệu Microsoft Azure ML Designer (2026), Stratified split chỉ là sampling mode cho splitting, không phải balancing strategy. Imbalance cần resampling techniques riêng biệt trước khi split.

📋 Giải thích tất cả các phương án

  • Yes ❌ SAI: Phương án này cho rằng Stratified split có thể bù đắp class imbalance. Thực tế, nó chỉ giữ nguyên tỷ lệ lớp hiện có khi chia tập dữ liệu (train/test), không thay đổi số lượng mẫu của lớp thiểu số. Kết quả: Model vẫn bị bias về lớp đa số, không đạt mục tiêu compensate imbalance. (Ví dụ: Lớp thiểu số 100 mẫu → vẫn ~10% ở train/test, không tăng lên).

  • No ✅ ĐÚNG: Đúng vì Stratified split không phải chiến lược sampling để xử lý imbalance. Nó chỉ hỗ trợ fair splitting để đánh giá model chính xác hơn, nhưng dataset gốc vẫn imbalance → model kém hiệu quả với lớp thiểu số. Giải pháp đúng cần resampling (như SMOTE) trước khi split.

🔗 Tài liệu tham khảo

  • 📘 Microsoft Docs (Azure ML Studio - Split Data module): Split Data - Azure Machine Learning (cập nhật 2026: Xác nhận Stratified split chỉ cho splitting, không balancing).
  • 📘 Handle Imbalanced Dataset: Handle imbalanced datasets - Azure ML (Khuyến nghị SMOTE/Edit Samples).
  • 🧪 Demo thực tế: Azure ML Designer experiment với class imbalance → Stratified split không cải thiện precision/recall cho minority class.