Tất cả câu hỏi
Ngân hàng câu hỏi trắc nghiệm có giải thích chi tiết.
7.840/20.347 câuCòn 12.507
ANull Hypothesis Significance Testing (NHST)
BMaximum Likelihood Estimation (MLE)
CMarkov Chain Monte Carlo (MCMC)
DExpectation Maximization (EM)
ESimulation via Permutations
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Null Hypothesis Significance Testing (NHST)". NHST (kiểm định ý nghĩa thống kê với giả thuyết không) là quy trình ra quyết định: giả định giả thuyết không đúng rồi tính p-value để bác bỏ hay không bác bỏ nó, chứ không phải phương pháp tính ước lượng tham số. Các phương án còn trong danh sách đều là cách tính ước lượng nên không được chọn. "Maximum Likelihood Estimation (MLE)" tìm giá trị tham số làm hàm hợp lý (likelihood) của dữ liệu đạt cực đại. "Markov Chain Monte Carlo (MCMC)" lấy mẫu từ phân phối hậu nghiệm trong suy luận Bayes, từ đó ước lượng tham số và khoảng tin cậy. "Expectation Maximization (EM)" là thuật toán lặp tìm ước lượng hợp lý cực đại khi có biến ẩn hoặc dữ liệu thiếu, ví dụ ước lượng tham số mô hình hỗn hợp Gauss. "Simulation via Permutations" dùng hoán vị và lấy mẫu lại để mô phỏng phân phối của một thống kê, từ đó xấp xỉ giá trị và độ bất định của nó mà không cần công thức giải tích.
7822Sparse matrices can be useful as a target destination for ETL, but what are the main caveats (choose one or more)?5 lựa chọn
AYou cannot convert directly from a numpy array to any of the scipy sparse matrices
BNumPy linear algebra functions generally cannot be called directly
CSaving to disk is not possible directly from a scipy sparse format
DThe train test splits need to be performed by hand with scipy sparse matrices
EIt is difficult to print to screen scipy sparse matrices directly
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm hai ý: "NumPy linear algebra functions generally cannot be called directly" và "It is difficult to print to screen scipy sparse matrices directly". Ma trận thưa (sparse matrix) của scipy chỉ lưu phần tử khác 0 theo các định dạng như CSR hay COO nên tiết kiệm bộ nhớ khi làm đích ETL cho dữ liệu nhiều số 0, ví dụ ma trận người dùng và sản phẩm; đổi lại, các hàm numpy.linalg viết cho mảng đặc không nhận trực tiếp đối tượng thưa mà phải dùng scipy.sparse.linalg hoặc đổi sang mảng đặc, còn khi in ra màn hình chỉ thấy danh sách toạ độ kèm giá trị, phải gọi toarray() hay todense() mới xem được dạng bảng. "You cannot convert directly from a numpy array to any of the scipy sparse matrices" sai vì có thể truyền thẳng mảng numpy vào hàm dựng như csr_matrix(arr). "Saving to disk is not possible directly from a scipy sparse format" sai vì scipy.sparse.save_npz và load_npz lưu, đọc trực tiếp định dạng thưa. "The train test splits need to be performed by hand with scipy sparse matrices" sai vì train_test_split của scikit-learn chấp nhận ma trận thưa làm đầu vào.
Adocker-io
Bdocker-ce
Cdocker-compose
Ddocker-toolbox
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "docker-ce". Docker Engine có bản cộng đồng miễn phí, mã nguồn mở gọi là Docker Community Edition, và tên gói cài đặt của nó là docker-ce, phân biệt với bản doanh nghiệp từng mang tên docker-ee. "docker-io" gợi tới gói docker.io do kho phần mềm của các bản phân phối như Debian, Ubuntu tự đóng gói lại, không phải gói cộng đồng chính thức do Docker phát hành. "docker-compose" là công cụ định nghĩa và chạy ứng dụng nhiều container bằng tệp YAML, chạy bên trên Engine chứ không phải bản thân Engine. "docker-toolbox" là bộ cài cũ cho Windows và macOS đời trước, dùng máy ảo VirtualBox để chạy Docker, nay đã được Docker Desktop thay thế.
ATeam experience
BData quality
CProject requirements
DCompany size
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Company size". Câu hỏi phủ định, nên cần chọn thứ không phải yếu tố quyết định thời gian làm sạch dữ liệu (data cleaning). Quy mô công ty tự nó không cho biết dữ liệu bẩn tới mức nào hay cần xử lý kỹ ra sao: một công ty nhỏ vẫn có thể có dữ liệu rất lộn xộn, và ngược lại. "Data quality" là yếu tố rõ nhất, vì dữ liệu càng nhiều giá trị thiếu, bản ghi trùng lặp, sai định dạng hay ngoại lai thì càng tốn công xử lý. "Team experience" có ảnh hưởng thật, vì nhóm từng làm nhiều sẽ nhanh nhận ra lỗi điển hình và có sẵn quy trình, công cụ để tự động hóa. "Project requirements" cũng ảnh hưởng, vì yêu cầu về độ chính xác, phạm vi dữ liệu và thời hạn quyết định cần làm sạch sâu đến đâu. Đây đều là phát biểu đúng nên không được chọn.
7825What is the first stage of the design thinking process?4 lựa chọn
AIdeate
BEmpathize
CPrototype
DTest
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Empathize". Design thinking (tư duy thiết kế) thường được mô tả qua năm giai đoạn theo thứ tự Empathize, Define, Ideate, Prototype, Test. Giai đoạn đầu là thấu cảm: tìm hiểu người dùng và các bên liên quan, quan sát, phỏng vấn để hiểu nhu cầu và nỗi đau thật của họ trước khi bàn giải pháp. Trong một dự án dữ liệu, đây là lúc nắm bài toán kinh doanh và người sẽ dùng kết quả. "Ideate" là giai đoạn thứ ba, chỉ bắt đầu sau khi vấn đề đã được định nghĩa rõ, khi nhóm đưa ra thật nhiều ý tưởng giải pháp. "Prototype" là giai đoạn thứ tư, dựng bản mẫu rẻ và nhanh cho các ý tưởng được chọn. "Test" là giai đoạn cuối, đưa bản mẫu cho người dùng thử để lấy phản hồi và có thể quay vòng lại các bước trước. Bắt đầu bằng bất kỳ giai đoạn nào trong ba giai đoạn này đều có nguy cơ giải sai vấn đề vì chưa hiểu người dùng.
ADashboards are an easy way to share summaries and findings
BDashboards have interactive functionality that helps create a rich experience for the user
CDashboards are generally used after serveral iterations of the AI workflow
DDashboards are quick way to create portable simple plots
EDashboards can be used to tell the story of investigative visualizations
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Dashboards are quick way to create portable simple plots". Dashboard (bảng điều khiển trực quan) là sản phẩm tổng hợp nhiều biểu đồ có tương tác, cần công sức thiết kế và một máy chủ hoặc nền tảng để chạy, nên không phải cách nhanh để tạo biểu đồ đơn giản mang đi dùng ở nơi khác; việc đó hợp với một hình tĩnh xuất từ Matplotlib hơn. "Dashboards are an easy way to share summaries and findings" đúng vì dashboard giúp người liên quan xem kết quả tổng hợp ở một chỗ. "Dashboards have interactive functionality that helps create a rich experience" đúng vì người dùng có thể lọc, phóng to, chọn chiều dữ liệu. "Dashboards are generally used after serveral iterations of the AI workflow" đúng vì thường chỉ dựng dashboard khi phân tích đã ổn định qua vài vòng lặp. "Dashboards can be used to tell the story of investigative visualizations" đúng vì chúng sắp xếp các phát hiện thành một mạch kể chuyện bằng dữ liệu.
7827What is the purpose of kubectl in kubernetes?4 lựa chọn
AAutomatic logging of requests and responses
BA tool that makes it easy to run a single-node cluster locally
CThe primary node agent on each node, responsible for the processes running on that machine
DThe CLI for communicating with the kubernetes cluster
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The CLI for communicating with the kubernetes cluster". kubectl là công cụ dòng lệnh (CLI) gửi yêu cầu tới API server của cụm Kubernetes để tạo, xem, sửa, xoá tài nguyên như pod, deployment, service, ví dụ kubectl apply -f deployment.yaml hay kubectl get pods. Phương án "Automatic logging of requests and responses" sai vì việc ghi nhật ký tự động thuộc về ứng dụng hoặc hệ thống logging của cụm; kubectl chỉ cho phép đọc log bằng kubectl logs chứ không tự ghi lại các yêu cầu. Phương án "A tool that makes it easy to run a single-node cluster locally" mô tả minikube, công cụ dựng cụm một nút trên máy cá nhân để thử nghiệm. Phương án "The primary node agent on each node, responsible for the processes running on that machine" mô tả kubelet, tác tử chạy trên mỗi nút để đảm bảo các container của pod được khởi chạy và giữ đúng trạng thái.
Adef make_dict(lst1,lst2): res = {} for key,value in zip(lst1,lst2): res[key]= value return res
Bdef make_dict(lst1,lst2): res = {} res[lst1]= lst2 return res
Cdef make_dict(lst1,lst2): res = {} for key,value in (lst1,lst2): res[key]= value return res
Ddef make_dict(lst1,lst2): res = [] for key,value in zip(lst1,lst2): res[key]= value return res
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "def make_dict(lst1,lst2): res = {} for key,value in zip(lst1,lst2): res[key]= value return res". Khi viết thành nhiều dòng, thân hàm tạo dict rỗng res = {}, dòng for thụt vào một mức duyệt các cặp do zip sinh ra, câu gán res[key]= value thụt thêm một mức nằm trong vòng lặp, còn return res thẳng hàng với for để trả kết quả sau khi lặp xong; zip(lst1,lst2) ghép phần tử cùng vị trí thành các cặp (a, 1), (b, 2), (c, 3) nên kết quả là dict ánh xạ a sang 1, b sang 2, c sang 3. "def make_dict(lst1,lst2): res = {} res[lst1]= lst2 return res" sai vì list là kiểu không băm được (unhashable) nên dùng cả danh sách làm khoá gây TypeError, và kể cả chạy được cũng chỉ tạo một cặp chứ không ghép từng phần tử. "def make_dict(lst1,lst2): res = {} for key,value in (lst1,lst2): res[key]= value return res" sai vì thiếu zip: vòng lặp duyệt một tuple gồm hai danh sách, mỗi lượt cố tách một danh sách ba phần tử vào hai biến key, value nên báo ValueError too many values to unpack. "def make_dict(lst1,lst2): res = [] for key,value in zip(lst1,lst2): res[key]= value return res" sai vì res là list rỗng, gán res[key] với key là chuỗi gây TypeError do chỉ số của list phải là số nguyên.
Aservice version, service API key, service JSON map
Bservice URL, service JSON map, service API key
Cservice API key, service version, service URL
Dservice version, service IAMAuthenticator, service URL
Eservice API key, service URL, service IAMAuthenticator
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "service API key, service version, service URL". Khi gọi Watson Natural Language Understanding qua Python SDK, mã cần ba giá trị: API key để xác thực tài khoản, version (chuỗi ngày phiên bản API) để cố định hành vi của dịch vụ, và URL của điểm cuối dịch vụ theo vùng; ba giá trị này thường được lưu trong một tệp riêng trên máy rồi nhập vào notebook như biến. "service version, service API key, service JSON map" và "service URL, service JSON map, service API key" đều chứa "JSON map", vốn không phải thông tin cần lưu, và mỗi danh sách lại thiếu một trong ba mục thật. "service version, service IAMAuthenticator, service URL" và "service API key, service URL, service IAMAuthenticator" nhầm IAMAuthenticator, là lớp trong thư viện được khởi tạo từ API key ngay trong mã nên không phải giá trị cần lưu riêng; danh sách đầu còn thiếu API key, danh sách sau thiếu version.
Atmpfs mount
Buse a named pipe
Cbind mounts
DGitHub
Evolumes
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "bind mounts". Bind mount (gắn thư mục máy chủ vào container) ánh xạ trực tiếp một thư mục có sẵn trên máy host, ví dụ thư mục dự án chứa notebook và script, vào một đường dẫn bên trong container bằng tùy chọn -v hoặc --mount khi chạy docker run; sửa tệp ở bên nào thì bên kia thấy ngay, rất hợp cho vòng lặp phát triển. "volumes" là vùng lưu trữ do Docker tự tạo và quản lý trong khu vực riêng của nó, phù hợp để giữ dữ liệu bền vững như dữ liệu cơ sở dữ liệu, nhưng không trỏ thẳng tới tệp mã nguồn bạn đang có trên máy. "tmpfs mount" chỉ cấp vùng nhớ tạm trong RAM và mất sạch khi container dừng. "use a named pipe" là kênh truyền dữ liệu giữa các tiến trình, không phải cách chia sẻ thư mục. "GitHub" là nơi lưu mã từ xa; kéo mã về không phải cơ chế để container truy cập tệp trên máy host.
ATrue Negatives (TN)
BFalse Positives (FP)
CTrue Positives (TP)
DAverage Score (AS)
EFalse Negatives (FN)
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Average Score (AS)". Confusion matrix (ma trận nhầm lẫn) của bài toán phân loại nhị phân là bảng 2x2 đối chiếu nhãn thật với nhãn dự đoán, gồm đúng bốn ô; từ bốn ô này mới tính ra các chỉ số như accuracy, precision, recall. "Average Score (AS)" không phải một ô của ma trận, cũng không phải thuật ngữ chuẩn nào gắn với nó, nên là đáp án của câu hỏi phủ định. Ba ô còn lại đều là thành phần thật nên không được chọn: "True Negatives (TN)" là số mẫu âm được dự đoán đúng là âm; "False Positives (FP)" là số mẫu âm bị dự đoán nhầm thành dương, còn gọi là lỗi loại I; "True Positives (TP)" là số mẫu dương được dự đoán đúng là dương; "False Negatives (FN)" là số mẫu dương bị bỏ sót, dự đoán nhầm thành âm, tức lỗi loại II.
ASingapore
BUnited Kingdom
CUSA
DEIRE
EGermany
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "United Kingdom". Khi cộng doanh thu (số lượng nhân đơn giá) của mọi giao dịch theo từng quốc gia trong bộ dữ liệu bán lẻ trực tuyến của bài thực hành, United Kingdom đứng đầu với khoảng cách rất lớn, vì đây là thị trường gốc của doanh nghiệp và phần lớn đơn hàng đến từ khách trong nước. "Singapore" chỉ có một lượng giao dịch nhỏ nên tổng doanh thu thấp. "USA" xuất hiện ít trong dữ liệu, tổng doanh thu không đáng kể so với thị trường chính. "EIRE" (Ireland) và "Germany" là các thị trường nước ngoài có doanh thu cao nhất sau thị trường chính, nhưng vẫn kém xa United Kingdom khi tổng hợp bằng groupby theo quốc gia rồi lấy tổng.
7833The decision tree base models in random forests individually have high bias and low variance.2 lựa chọn
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "False". Trong random forest (rừng ngẫu nhiên, Breiman), mỗi cây quyết định thành phần thường được cho mọc sâu, gần như không cắt tỉa, nên từng cây riêng lẻ có bias (độ chệch) thấp nhưng variance (phương sai) cao: nó khớp rất sát dữ liệu huấn luyện và thay đổi mạnh khi dữ liệu đổi một chút. Rừng ngẫu nhiên giảm phương sai bằng cách lấy trung bình hoặc bỏ phiếu trên nhiều cây được huấn luyện trên các mẫu bootstrap khác nhau và chỉ xét một tập con đặc trưng ngẫu nhiên ở mỗi lần tách, làm các cây ít tương quan với nhau. Phát biểu "True" mô tả ngược lại: bias cao và variance thấp là đặc điểm của các mô hình yếu, nông như stump (cây một tầng) dùng trong boosting, nơi thuật toán giảm bias bằng cách cộng dồn tuần tự. Vì vậy với base model của random forest, phát biểu trong câu hỏi là sai.
AIt is always accurate.
BIt can be misleading.
CIt is the only metric available.
DIt does not consider false positives.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It can be misleading.". Accuracy (độ chính xác tổng thể) là tỉ lệ dự đoán đúng trên tổng số mẫu, nên khi các lớp mất cân bằng, chẳng hạn 99% giao dịch hợp lệ và 1% gian lận, một mô hình luôn đoán hợp lệ vẫn đạt accuracy 99% dù không bắt được ca gian lận nào; vì vậy cần xem thêm precision, recall, F1 hoặc ma trận nhầm lẫn. "It is always accurate." sai vì chính ví dụ trên cho thấy con số cao có thể che giấu một mô hình vô dụng với lớp thiểu số. "It is the only metric available." sai vì còn nhiều chỉ số khác như recall, F1, ROC AUC hay PR AUC, vốn phù hợp hơn cho dữ liệu mất cân bằng. "It does not consider false positives." sai vì accuracy có tính dương tính giả: chúng nằm trong phần dự đoán sai làm giảm tử số; vấn đề thật là nó gộp mọi loại lỗi làm một và để lớp đa số lấn át kết quả.
ATo impress stakeholders
BTo streamline the modeling process and ensure data quality
CTo increase project costs
DTo avoid using Python
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To streamline the modeling process and ensure data quality". Ghi chép dữ liệu (data documentation) trước khi bắt đầu dự án gồm mô tả nguồn, ý nghĩa từng cột, kiểu dữ liệu, đơn vị, cách thu thập và các giới hạn đã biết; nhờ vậy nhóm phát hiện sớm giá trị thiếu, sai định dạng hay rò rỉ thông tin, chọn biến hợp lý và tránh phải làm lại khi xây mô hình. "To impress stakeholders" không phải mục đích: tài liệu có giúp trao đổi với các bên liên quan, nhưng giá trị của nó nằm ở chất lượng công việc chứ không phải gây ấn tượng. "To increase project costs" ngược với thực tế, vì ghi chép kỹ từ đầu giúp giảm chi phí sửa lỗi về sau. "To avoid using Python" không liên quan, vì việc mô tả dữ liệu không quyết định ngôn ngữ lập trình, thậm chí thường được làm ngay bằng Python với pandas.
Aunittest
Bcoverage
Cpytest
Dflask
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "coverage". Gói coverage (coverage.py) theo dõi những dòng mã nào thực sự được thực thi trong lúc bộ test chạy, rồi báo cáo test coverage (độ phủ kiểm thử): tỉ lệ dòng hoặc nhánh đã được chạm tới và chỉ rõ dòng nào chưa có test nào đi qua. "unittest" là framework kiểm thử có sẵn trong thư viện chuẩn của Python, dùng để viết và chạy ca kiểm thử chứ bản thân nó không đo độ phủ. "pytest" cũng là công cụ viết và chạy test; nó chỉ báo được độ phủ khi gắn thêm plugin pytest-cov, mà plugin này lại dựa trên chính gói coverage. "flask" là web framework để dựng ứng dụng web hoặc API, chẳng hạn API phục vụ dự đoán của mô hình, nên không liên quan gì đến việc ước lượng độ phủ kiểm thử.
7837What is a poisoning attack?4 lựa chọn
AAn attack that occurs during model deployment
BAn attack that injects malicious data into the training set
CAn attack that modifies the model's architecture
DAn attack that occurs only at test time
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "An attack that injects malicious data into the training set". Poisoning attack (tấn công đầu độc dữ liệu) là kiểu tấn công nhắm vào giai đoạn huấn luyện: kẻ tấn công chèn hoặc sửa một phần dữ liệu huấn luyện, ví dụ gắn nhãn sai hay cài mẫu có dấu hiệu kích hoạt, để mô hình học ra hành vi lệch theo ý họ. Phương án "An attack that occurs during model deployment" sai vì lúc triển khai mô hình đã học xong, tấn công ở đây thường là đánh lừa đầu vào chứ không đầu độc dữ liệu học. Phương án "An attack that modifies the model's architecture" mô tả việc can thiệp trực tiếp vào cấu trúc mô hình, đó là xâm nhập hệ thống chứ không phải đầu độc dữ liệu. Phương án "An attack that occurs only at test time" là định nghĩa của evasion attack (tấn công né tránh), dùng mẫu đối kháng (adversarial example) để đánh lừa mô hình đã huấn luyện, trái ngược hẳn với poisoning vốn xảy ra trước khi mô hình được dùng.
A
NumPyB
MatplotlibC
PandasD
SciPyLời giải
Mở trang câu hỏi này →Đáp án đúng: "Pandas". Thư viện Pandas cung cấp cấu trúc DataFrame (bảng dữ liệu có nhãn cột) cùng các hàm read_csv và to_csv, là cách phổ biến nhất trong Python để đọc và ghi tệp CSV, tự xử lý tiêu đề cột, kiểu dữ liệu và giá trị thiếu. "NumPy" làm việc với mảng số nhiều chiều; nó có loadtxt và savetxt nhưng không tiện cho bảng có cột chữ lẫn cột số. "Matplotlib" là thư viện vẽ biểu đồ, không dùng để đọc ghi dữ liệu dạng bảng. "SciPy" tập trung vào tính toán khoa học như tối ưu, thống kê, xử lý tín hiệu, không phải công cụ chính để nhập xuất CSV.
A400
B450
C500
D600
E650
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "600". Khi gộp các tệp JSON giao dịch theo tháng thành một DataFrame (bảng dữ liệu của pandas) rồi lấy ngày nhỏ nhất và lớn nhất của cột ngày, khoảng thời gian dữ liệu phủ là gần hai năm, tức vào khoảng 600 ngày. Cách kiểm chứng là tạo cột ngày bằng pd.to_datetime từ năm, tháng, ngày rồi tính hiệu giữa giá trị lớn nhất và nhỏ nhất, kết quả quy ra số ngày. Phương án "400" và "450" quá ngắn, chỉ tương ứng khoảng mười ba đến mười lăm tháng, không phủ hết các tệp đã gộp. Phương án "500" vẫn hụt so với khoảng thật, giống như bỏ sót vài tháng dữ liệu cuối. Phương án "650" lại vượt quá phạm vi dữ liệu, tương đương cộng thêm gần hai tháng không có giao dịch nào. Bài học thực hành ở đây là luôn kiểm tra phạm vi thời gian sau khi gộp dữ liệu để phát hiện tệp thiếu hoặc ngày bị đọc sai định dạng.
AThe explicit training vs implicit training comparison
BThe lambda or regularization parameter
CThe epsilon or scale parameter
DThe l1 vs l2 comparison
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The lambda or regularization parameter". Trong ALS (Alternating Least Squares, bình phương tối thiểu luân phiên) dùng cho hệ gợi ý, ma trận đánh giá được phân rã thành ma trận nhân tố người dùng và ma trận nhân tố sản phẩm; tham số lambda (regularization, chính quy hoá) phạt độ lớn của các nhân tố để chống quá khớp trên dữ liệu rất thưa, nên khi dò siêu tham số trong bài tình huống triển khai mô hình, thay đổi lambda làm sai số trên tập kiểm tra biến động rõ nhất. "The explicit training vs implicit training comparison" sai vì chọn phản hồi tường minh hay ngầm định là chọn kiểu dữ liệu đầu vào cho đúng bài toán, không phải tinh chỉnh mang lại khác biệt lớn nhất. "The epsilon or scale parameter" sai vì ALS không có tham số epsilon hay scale đóng vai trò chính; tham số gần nhất là alpha chỉ dùng ở chế độ implicit. "The l1 vs l2 comparison" sai vì ALS chuẩn dùng chính quy hoá kiểu L2 trên các nhân tố, không có lựa chọn chuyển sang L1 để so sánh.