Danh sách câu hỏi của đề

Câu hỏi: AID301c Thiết kế sản phẩm TTNT – Bộ ôn tập cuối kỳ số 1

50 câu trắc nghiệm kèm lời giải của môn AID301c - Thiết kế sản phẩm TTNT, xếp đúng thứ tự trong đề.

Danh sách câu hỏi

20/50 câuCòn 30
ATo visualize data
BTo summarize model performance
CTo preprocess data
DTo train a model
Lời giải
Đáp án đúng: "To summarize model performance". Hàm classification_report trong sklearn.metrics nhận nhãn thật và nhãn dự đoán rồi in bảng tóm tắt hiệu năng phân loại theo từng lớp: precision (độ chính xác của các dự đoán dương), recall (độ phủ, tỉ lệ ca dương thật được bắt), f1-score (trung bình điều hoà của hai chỉ số trên) và support (số mẫu thật của lớp), kèm các dòng accuracy, macro avg và weighted avg. "To visualize data" sai vì hàm chỉ trả về văn bản hoặc dict số liệu, không vẽ biểu đồ nào; muốn trực quan hoá dữ liệu phải dùng matplotlib hay seaborn. "To preprocess data" sai vì tiền xử lý là việc của các transformer như StandardScaler hay OneHotEncoder, diễn ra trước khi huấn luyện chứ không phải sau khi đã có dự đoán. "To train a model" sai vì huấn luyện là lời gọi fit của estimator; classification_report chỉ dùng sau đó để đánh giá mô hình đã huấn luyện.
Mở trang câu hỏi này →
AIt specifies the script's name
BIt indicates the script is written in Python
CIt tells the system to use the Bash shell to execute the script
DIt is a comment and has no effect
Lời giải
Đáp án đúng: "It tells the system to use the Bash shell to execute the script". Dòng đầu tệp gồm dấu thăng, dấu chấm than rồi đường dẫn /bin/bash gọi là shebang (dòng chỉ định trình thông dịch): khi tệp được chạy trực tiếp như một chương trình, hệ điều hành nhận ra cặp ký tự mở đầu đó rồi giao toàn bộ nội dung tệp cho chương trình nằm ở đường dẫn phía sau, ở đây là Bash, để thực thi các lệnh như spark-submit. Phương án "It specifies the script's name" sai vì tên script là tên tệp trên đĩa, shebang không khai báo tên nào. Phương án "It indicates the script is written in Python" sai vì muốn chạy bằng Python thì shebang phải trỏ tới trình thông dịch Python, còn /bin/bash là shell. Phương án "It is a comment and has no effect" chỉ đúng một nửa: với chính Bash, dòng bắt đầu bằng dấu thăng được bỏ qua khi đọc, nhưng với hệ điều hành dòng này có tác dụng thật vì quyết định chương trình nào chạy tệp, nên không thể nói nó vô tác dụng.
Mở trang câu hỏi này →
AAnalyzing the structure of sentences
BDetermining the emotional tone behind a series of words
CTranslating text from one language to another
DSummarizing large documents
Lời giải
Đáp án đúng: "Determining the emotional tone behind a series of words". Sentiment analysis (phân tích cảm xúc) là bài toán NLP nhằm xác định thái độ hay sắc thái cảm xúc mà một đoạn văn bản thể hiện, thường gán nhãn tích cực, tiêu cực hoặc trung tính, ví dụ phân loại đánh giá sản phẩm của khách hàng. "Analyzing the structure of sentences" là phân tích cú pháp (parsing), quan tâm tới quan hệ ngữ pháp giữa các từ chứ không phải cảm xúc. "Translating text from one language to another" là dịch máy (machine translation), một bài toán NLP khác hẳn. "Summarizing large documents" là tóm tắt văn bản (text summarization), mục tiêu là rút gọn nội dung chứ không đánh giá thái độ của người viết.
Mở trang câu hỏi này →
AStart pulling sales and other data to create a business viability assessment for Vermont
BGather more data and repeat the snowfall experiment
CGather different data say snowfall by county and repeat the experiment
DStart a business viability assessment for all three states
Lời giải
Đáp án đúng gồm ba ý: "Start pulling sales and other data to create a business viability assessment for Vermont", "Gather more data and repeat the snowfall experiment" và "Gather different data say snowfall by county and repeat the experiment". Theo quy trình khoa học (scientific process), một kết luận chỉ là một bước trong vòng lặp: đặt giả thuyết, thu dữ liệu, kiểm định, rồi hoặc hành động dựa trên kết quả, hoặc làm lại thí nghiệm để củng cố nó. Thí nghiệm về lượng tuyết rơi đã chỉ ra Vermont là ứng viên tốt nhất, nên một bước hợp lý là kéo dữ liệu doanh số và dữ liệu khác để lập đánh giá khả thi kinh doanh (business viability assessment) cho chính Vermont. Vì một thí nghiệm đơn lẻ có thể chưa đủ chắc, ta cũng có thể thu thêm dữ liệu cùng loại rồi lặp lại thí nghiệm để kiểm tra kết quả có ổn định không, hoặc đổi sang dữ liệu chi tiết hơn như lượng tuyết theo từng hạt (county) để xem kết luận còn đứng vững ở mức địa phương hay không. Phương án "Start a business viability assessment for all three states" đi ngược quy trình này vì nó bỏ qua bằng chứng vừa thu được: làm đánh giá cho cả ba bang như thể thí nghiệm chưa thu hẹp lựa chọn về Vermont, tốn công mà không học được gì từ dữ liệu.
Mở trang câu hỏi này →
A10-15%
B20-35%
C45-50%
D70-75%
E85-95%
Lời giải
Đáp án đúng: "45-50%". Hàm lemmatize_document trong bài thực hành xử lý ngôn ngữ tự nhiên làm hai việc cùng lúc: đưa mỗi từ về lemma (dạng gốc trong từ điển, chẳng hạn running thành run) và loại bỏ stop word (từ chức năng như the, is, and) cùng dấu câu. Trong văn bản tiếng Anh, từ chức năng và dấu câu chiếm một phần rất lớn số token, nên sau khi lọc, kho văn bản chỉ còn lại khoảng một nửa số token ban đầu. Mức "10-15%" và "20-35%" ngụ ý đã cắt gần hết văn bản, mạnh hơn nhiều so với việc chỉ bỏ từ chức năng và dấu câu. Ngược lại, "70-75%" và "85-95%" ứng với trường hợp gần như không lọc gì; đó là kết quả nếu chỉ lemmatize thuần túy, vì bước này chỉ đổi dạng từ chứ không làm giảm số lượng token.
Mở trang câu hỏi này →
AInstall the SDK
BCreate an IBM Cloud account
CCreate a resource for Natural Language Understanding
DDownload the tutorial files
Lời giải
Đáp án đúng: "Create an IBM Cloud account". Watson Developer Cloud Python SDK (bộ công cụ lập trình để gọi các dịch vụ Watson từ Python) chỉ là lớp vỏ gọi tới các dịch vụ chạy trên IBM Cloud, nên mọi bước khác đều phụ thuộc vào việc có tài khoản đám mây trước: tài khoản là nơi tạo dịch vụ, sinh API key và URL để SDK xác thực. "Install the SDK" là bước cần làm, nhưng cài thư viện xong mà chưa có tài khoản thì không có thông tin xác thực nào để dùng, vì vậy nó đứng sau. "Create a resource for Natural Language Understanding" chỉ thực hiện được khi đã đăng nhập vào một tài khoản IBM Cloud, nên là bước tiếp theo chứ không phải bước đầu. "Download the tutorial files" là tài liệu hỗ trợ học tập, không phải điều kiện để thiết lập SDK và có thể làm vào bất kỳ lúc nào.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
A400
B450
C500
D600
E650
Lời giải
Đá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.
Mở trang câu hỏi này →
ANumPy
BMatplotlib
CPandas
DSciPy
Lời giải
Đá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.
Mở trang câu hỏi này →
10What 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
Đá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.
Mở trang câu hỏi này →
Aunittest
Bcoverage
Cpytest
Dflask
Lời giải
Đá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ử.
Mở trang câu hỏi này →
ATo impress stakeholders
BTo streamline the modeling process and ensure data quality
CTo increase project costs
DTo avoid using Python
Lời giải
Đá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.
Mở trang câu hỏi này →
AIt is always accurate.
BIt can be misleading.
CIt is the only metric available.
DIt does not consider false positives.
Lời giải
Đá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ả.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đá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.
Mở trang câu hỏi này →
ASingapore
BUnited Kingdom
CUSA
DEIRE
EGermany
Lời giải
Đá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.
Mở trang câu hỏi này →
ATrue Negatives (TN)
BFalse Positives (FP)
CTrue Positives (TP)
DAverage Score (AS)
EFalse Negatives (FN)
Lời giải
Đá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.
Mở trang câu hỏi này →
Atmpfs mount
Buse a named pipe
Cbind mounts
DGitHub
Evolumes
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →