AID301cChưa đo Cập nhật 23 giờ trước

AID301c - Thiết kế sản phẩm TTNT

AID301c - Thiết kế sản phẩm TTNT là môn 3 tín chỉ bậc cử nhân của Đại học FPT, học sau SWE201c và AIL303m. Môn xử lý khoảng cách giữa một mô hình chạy tốt trong sổ tay thử nghiệm và một sản phẩm trí tuệ nhân tạo mà doanh nghiệp dùng được mỗi ngày. Nhiều dự án AI không hỏng ở thuật toán: chúng hỏng vì bài toán kinh doanh đặt mơ hồ, vì dữ liệu đổ vào không ổn định, hoặc vì mô hình lặng lẽ xuống cấp sau khi lên hệ thống thật mà không ai hay. Do đó việc làm AI được xem như một vòng khép kín, mở bằng câu hỏi kinh doanh và đóng bằng dữ liệu vận hành quay về chất vấn chính câu hỏi ấy. Đầu cuối của vòng là phần dễ bị xem nhẹ: giám sát mô hình đang chạy, nhận ra độ trôi của dữ liệu đầu vào và của chất lượng dự đoán, rồi dựng vòng phản hồi để biết lúc nào phải huấn luyện lại. Ở đầu kia, ưu tiên kinh doanh được dịch thành giả thuyết đo được, và dữ liệu từ nhiều nguồn rời rạc được gom qua đường ống thu nhận chạy lặp lại thay vì nhặt tay một lần. Chặng chuẩn bị dữ liệu đi qua biến đổi và tạo đặc trưng, việc soát thiên lệch trong dữ liệu lẫn trong kết quả mô hình, và trước đó là phân tích khám phá kèm kiểm định giả thuyết thống kê để tách khác biệt có thật khỏi nhiễu. Ở khâu triển khai, mô hình trở thành dịch vụ: đóng gói trong container Docker, xử lý dữ liệu lớn bằng Apache Spark, chạy và mở rộng trên cụm Kubernetes. Ở khâu mô hình, trọng tâm là chọn thước đo đánh giá khớp với cái giá của từng loại sai, so học máy truyền thống với học sâu, và hai lớp ứng dụng riêng là nhận dạng hình ảnh với xử lý ngôn ngữ tự nhiên. Học xong, người học dựng được một dịch vụ dự đoán có giám sát đủ để bàn giao cho người vận hành, biện hộ được cho lựa chọn mô hình bằng thước đo gắn với thiệt hại thật thay vì một con số chính xác chung chung, và trước cả hai việc đó, đọc được một yêu cầu kinh doanh để chỉ ra dữ liệu nào còn thiếu trước khi viết dòng mã đầu tiên. Môn cũng rèn thói quen nghi ngờ kết quả của chính mình: một mô hình đạt điểm cao trên tập kiểm tra vẫn có thể sai có hệ thống với một nhóm khách hàng, hoặc mất giá trị sau vài tháng khi hành vi người dùng đổi, và phải có số đo liên tục mới thấy được điều đó.

134Câu hỏi
3Bộ đề
6Chủ đề

Câu hỏi của môn

44/134 câuCòn 90
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
Đá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.
Mở trang câu hỏi này →
ANull Hypothesis Significance Testing (NHST)
BMaximum Likelihood Estimation (MLE)
CMarkov Chain Monte Carlo (MCMC)
DExpectation Maximization (EM)
ESimulation via Permutations
Lời giải
Đá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.
Mở trang câu hỏi này →
AA type of software bug
BThe main branch of code where all changes are merged
CA deployment strategy
DA testing framework
Lời giải
Đáp án đúng: "The main branch of code where all changes are merged". Trong Continuous Integration (tích hợp liên tục), trunk là nhánh mã chính, nơi mọi lập trình viên tích hợp thay đổi thường xuyên; mỗi lần hợp nhất sẽ kích hoạt build và kiểm thử tự động để phát hiện lỗi sớm, đây cũng là ý của cách làm trunk-based development. "A type of software bug" sai vì trunk là khái niệm quản lý mã nguồn chứ không phải một loại lỗi. "A deployment strategy" sai vì chiến lược triển khai như blue-green hay canary nói về cách đưa phần mềm ra môi trường chạy thật, không phải nhánh mã. "A testing framework" sai vì framework kiểm thử như unittest hay pytest là công cụ viết test, còn trunk là nơi mã được hợp nhất rồi mới chạy test.
Mở trang câu hỏi này →
AIt is easier to collect
BIt allows for more detailed analysis
CIt takes less time to process
DIt is more visually appealing
Lời giải
Đáp án đúng: "It allows for more detailed analysis". Dữ liệu chi tiết (granular data) ghi ở mức từng giao dịch, từng khách hàng, từng thời điểm, nên từ nó ta luôn có thể tổng hợp ngược lên mức tóm tắt theo bất kỳ chiều nào, còn dữ liệu tóm tắt (summary level data) đã mất thông tin và không tách ngược được. Nhờ vậy dữ liệu chi tiết cho phép phân tích sâu hơn, tạo đặc trưng tốt hơn và phát hiện mẫu ẩn trong từng nhóm nhỏ. "It is easier to collect" sai vì thu thập ở mức chi tiết thường tốn công hơn, cần hệ thống ghi nhận từng sự kiện. "It takes less time to process" sai vì khối lượng lớn hơn nhiều nên xử lý lâu hơn; đó là cái giá phải trả chứ không phải lợi ích. "It is more visually appealing" sai vì dữ liệu thô chẳng đẹp hơn khi nhìn, việc trực quan hóa còn thường cần gom nhóm trước, và vẻ ngoài không phải lý do chọn mức độ chi tiết.
Mở trang câu hỏi này →
ADataFrames/Arrays most closely resemble tables in relational databases.
BDataFrames/Arrays are the only structures in Python capable of holding significant amounts of data.
CNearly all modeling algorithms take input data in a tabular format analogous to format of DataFrames/Arrays.
DAll of the answers
Lời giải
Đáp án đúng: "Nearly all modeling algorithms take input data in a tabular format analogous to format of DataFrames/Arrays.". Hầu hết thuật toán học máy, từ hồi quy tuyến tính tới random forest trong scikit-learn, nhận đầu vào là một ma trận đặc trưng: mỗi hàng là một mẫu (sample), mỗi cột là một đặc trưng (feature). DataFrame của Pandas và mảng NumPy chính là dạng biểu diễn đó, nên đưa dữ liệu thô về dạng bảng là bước chuẩn bị tất yếu trước khi huấn luyện. Phát biểu "DataFrames/Arrays most closely resemble tables in relational databases." đúng về hình thức nhưng chỉ là sự giống nhau bề ngoài, không phải lý do cuối cùng khiến ta cần định dạng dữ liệu như vậy. Phát biểu "are the only structures in Python capable of holding significant amounts of data" sai, vì Python còn list, dict, các thư viện như Dask hay định dạng tệp như Parquet đều chứa được lượng dữ liệu lớn. Vì có một phát biểu sai nên "All of the answers" cũng không thể đúng.
Mở trang câu hỏi này →
AOSEMN
BCRISP-DM
CDesign Thinking
DAgile
Lời giải
Đáp án đúng: "CRISP-DM". CRISP-DM (Cross-Industry Standard Process for Data Mining, quy trình chuẩn liên ngành cho khai phá dữ liệu) được khởi xướng năm 1996 bởi một nhóm doanh nghiệp, là tiêu chuẩn mở không gắn với công cụ hay nhà cung cấp nào, gồm sáu pha lặp theo vòng: hiểu nghiệp vụ, hiểu dữ liệu, chuẩn bị dữ liệu, mô hình hoá, đánh giá và triển khai. "OSEMN" (Obtain, Scrub, Explore, Model, iNterpret) là khung gợi nhớ các bước làm việc của nhà khoa học dữ liệu, ra đời muộn hơn nhiều và không phải một tiêu chuẩn quy trình. "Design Thinking" là phương pháp đổi mới lấy con người làm trung tâm, dùng rộng trong thiết kế sản phẩm, không phải tiêu chuẩn mở về khai phá dữ liệu. "Agile" là triết lý phát triển phần mềm theo vòng lặp ngắn, được công bố qua Tuyên ngôn Agile năm 2001, cũng không phải mô hình quy trình khai phá dữ liệu.
Mở trang câu hỏi này →
AData collection
BObservation and Reflection
CRapid prototyping
DUser testing
Lời giải
Đáp án đúng: "Observation and Reflection". Khung design thinking (tư duy thiết kế) theo cách tiếp cận của IBM là một vòng lặp liên tục gồm quan sát (Observe), suy ngẫm (Reflect) và làm (Make): đội ngũ quan sát người dùng thật trong bối cảnh của họ, rồi dừng lại suy ngẫm để thống nhất hiểu biết và định hướng trước khi tạo giải pháp, sau đó lặp lại. Quan sát và suy ngẫm vì thế là nguyên tắc nền giúp một sản phẩm dữ liệu xuất phát từ nhu cầu thật thay vì từ giả định của nhóm kỹ thuật. "Data collection" sai vì thu thập dữ liệu là một bước kỹ thuật trong quy trình khoa học dữ liệu, không phải nguyên tắc của design thinking. "Rapid prototyping" sai vì làm mẫu nhanh chỉ là một kỹ thuật nằm trong pha Make, không phải nguyên tắc cốt lõi được nhấn mạnh. "User testing" sai vì kiểm thử với người dùng là một hoạt động cụ thể bên trong vòng lặp, chứ không phải nguyên tắc định hướng cả quy trình.
Mở trang câu hỏi này →
AConvert missing values to a flag
BUse imputation techniques
CDelete the entire dataset
DReplace with a random value
Lời giải
Đáp án đúng: "Use imputation techniques". Imputation (điền khuyết) là thay giá trị thiếu bằng giá trị ước lượng hợp lý như trung bình, trung vị, giá trị từ mô hình KNN hay hồi quy, giúp giữ lại các dòng dữ liệu và không làm hỏng phân phối của biến số, ví dụ SimpleImputer trong scikit-learn. Phương án "Convert missing values to a flag" là kỹ thuật bổ trợ hữu ích, thêm một cột chỉ báo dòng nào từng thiếu, nhưng tự nó không cho cột số một giá trị dùng được nên không phải cách xử lý được khuyến nghị chính. Phương án "Delete the entire dataset" vô lý vì vứt bỏ toàn bộ thông tin chỉ vì một phần bị thiếu; ngay cả xoá dòng cũng chỉ phù hợp khi tỷ lệ thiếu rất nhỏ và ngẫu nhiên. Phương án "Replace with a random value" đưa nhiễu vào dữ liệu, làm sai lệch quan hệ giữa các biến và khiến kết quả không tái lập được.
Mở trang câu hỏi này →
AData collection
BIteration
CData visualization
DData storage
Lời giải
Đáp án đúng: "Iteration". Biến đổi dữ liệu (data transformation) như chuẩn hoá, mã hoá biến phân loại, giảm chiều hay xử lý giá trị thiếu hiếm khi đúng ngay lần đầu; người làm phải thử, đánh giá ảnh hưởng tới mô hình rồi điều chỉnh, nên lặp lại (iteration) là đặc điểm cốt lõi, và pipeline giúp việc thử lại diễn ra nhất quán. "Data collection" là bước thu thập dữ liệu diễn ra trước, không phải đặc điểm của việc áp dụng biến đổi. "Data visualization" hỗ trợ khám phá và kiểm tra kết quả, nhưng bản thân nó không phải cách áp dụng biến đổi. "Data storage" nói về nơi lưu trữ dữ liệu như cơ sở dữ liệu hay tệp, không liên quan trực tiếp tới quá trình biến đổi.
Mở trang câu hỏi này →
AThe number of products sold
BIf the teams are well-optimized based on historical sales data
CThe marketing budget for each team
DThe demographics of the customers
Lời giải
Đáp án đúng: "If the teams are well-optimized based on historical sales data". Trong quy trình AI, việc đầu tiên là hiểu câu hỏi kinh doanh mà người ra quyết định thật sự quan tâm. Với ban quản lý, khi số liệu bán hàng được công bố, mối bận tâm là liệu cách bố trí và vận hành các đội bán hàng đã tối ưu chưa khi đối chiếu với lịch sử doanh số, vì đó là câu hỏi dẫn tới hành động như phân bổ lại nguồn lực. "The number of products sold" chỉ là một con số mô tả có sẵn trong chính dữ liệu được công bố, nó là đầu vào chứ không phải điều cần kết luận. "The marketing budget for each team" là thông tin quản trị nội bộ mà ban quản lý vốn đã nắm, không phải điều họ chờ dữ liệu bán hàng trả lời. "The demographics of the customers" có thể hữu ích cho phân khúc thị trường, nhưng nó không trả lời câu hỏi về hiệu quả của các đội mà ban quản lý cần biết.
Mở trang câu hỏi này →
ATo increase the number of features
BTo simplify models and reduce computation time
CTo eliminate all data points
DTo create more complex models
Lời giải
Đáp án đúng: "To simplify models and reduce computation time". Dimensionality reduction (giảm chiều dữ liệu) là giảm số đặc trưng đầu vào, bằng cách chọn ra các đặc trưng quan trọng hoặc biến đổi chúng thành ít thành phần hơn như PCA (phân tích thành phần chính), trong khi giữ lại phần lớn thông tin. Nhờ vậy mô hình gọn hơn, huấn luyện nhanh hơn, ít bị overfitting (quá khớp) và dữ liệu dễ trực quan hóa hơn. "To increase the number of features" đi ngược hẳn mục tiêu; tạo thêm đặc trưng là việc của feature engineering chứ không phải giảm chiều. "To eliminate all data points" sai, vì giảm chiều tác động lên cột (đặc trưng) chứ không xóa hàng (mẫu), và xóa hết dữ liệu thì không còn gì để học. "To create more complex models" cũng ngược mục đích, vì giảm chiều nhằm làm mô hình đơn giản đi.
Mở trang câu hỏi này →
ATrying different data transformations on a given model
BReturning to the data collection stage from transformations to reduce the number of transforms
CPerforming EDA on the data after a model has been deployed and data have been logged
DMoving from the business opportunity and data collection to model iteration
EReturning to discuss the business opportunity after a model has been deployed
Lời giải
Đáp án đúng: "Moving from the business opportunity and data collection to model iteration". Trong quy trình AI được trình bày, vòng phản hồi (feedback loop) là việc quay lại một pha trước để điều chỉnh dựa trên điều vừa học được; còn đi thẳng từ cơ hội kinh doanh và thu thập dữ liệu sang lặp mô hình là bước tiến về phía trước, lại bỏ qua phân tích khám phá (EDA) và biến đổi dữ liệu, nên không phải vòng phản hồi hợp lệ. Câu hỏi phủ định nên các vòng hợp lệ sau không được chọn. "Trying different data transformations on a given model" là vòng giữa pha biến đổi và pha mô hình: đổi cách biến đổi rồi đo lại hiệu năng của cùng một mô hình. "Returning to the data collection stage from transformations to reduce the number of transforms" là quay ngược hợp lệ: thu thập dữ liệu tốt hơn để bớt phải biến đổi phức tạp. "Performing EDA on the data after a model has been deployed and data have been logged" là vòng sau triển khai: dữ liệu ghi log cho phép khám phá lại để phát hiện trôi dữ liệu. "Returning to discuss the business opportunity after a model has been deployed" cũng hợp lệ, vì kết quả thực tế của mô hình có thể buộc nhóm xem lại giả thuyết và chỉ số kinh doanh ban đầu.
Mở trang câu hỏi này →
AThey are always more accurate
BThey require less time and resources
CThey are easier to understand
DThey eliminate the need for data
Lời giải
Đáp án đúng: "They require less time and resources". Các NLP API có sẵn, như dịch vụ phân tích văn bản trên đám mây, đã được nhà cung cấp huấn luyện trên kho dữ liệu lớn, nên đội sản phẩm chỉ cần gửi văn bản và nhận kết quả, không phải tự gán nhãn dữ liệu, thuê hạ tầng GPU hay tuyển chuyên gia để huấn luyện từ đầu; đây là bài toán đánh đổi giữa tự xây và đi mua thường gặp khi vận hành AI. "They are always more accurate" sai vì mô hình tổng quát có thể kém mô hình tự huấn luyện trên miền chuyên biệt như văn bản y khoa hay pháp lý. "They are easier to understand" sai vì API thường là hộp đen, người dùng hầu như không thấy kiến trúc hay dữ liệu huấn luyện bên trong. "They eliminate the need for data" sai vì vẫn cần dữ liệu đầu vào để xử lý và dữ liệu đánh giá để kiểm tra API có đạt yêu cầu của sản phẩm hay không.
Mở trang câu hỏi này →
ALack of available data
BDifficulty in improving training time for large models
CInability to use multiple GPUs
DLimited programming languages available
Lời giải
Đáp án đúng: "Difficulty in improving training time for large models". Khi tối ưu mã cho học máy, khó khăn thường gặp là thời gian huấn luyện tăng rất nhanh theo kích thước mô hình và dữ liệu, nên phải tìm cách tăng tốc như vector hoá, song song hoá, dùng GPU, giảm độ chính xác số học hay tối ưu đường ống nạp dữ liệu, và mỗi cải thiện thường khó đạt được. Phương án "Lack of available data" là vấn đề về dữ liệu, thuộc giai đoạn thu thập, không phải thách thức của việc tối ưu mã. Phương án "Inability to use multiple GPUs" không đúng vì các thư viện hiện nay như TensorFlow và PyTorch đều hỗ trợ huấn luyện phân tán trên nhiều GPU; cái khó là dùng chúng hiệu quả chứ không phải không dùng được. Phương án "Limited programming languages available" sai vì học máy có nhiều ngôn ngữ và thư viện để chọn như Python, R, Julia, C++ và Scala.
Mở trang câu hỏi này →
AIn your pipeline use variance thresholding to limit the number of features
BUse the Shuffle and split form of cross-validation
CUse a randomized grid search form of cross validation
DRandomly subset the data
EUse PCA to reduce the dimensionality of the data before training
Lời giải
Đáp án đúng: "Use the Shuffle and split form of cross-validation". Thời gian grid search (dò lưới siêu tham số) phụ thuộc vào số tổ hợp tham số, số lần chia kiểm định chéo và kích thước dữ liệu mỗi lần huấn luyện. ShuffleSplit chỉ đổi cách xáo trộn và chia tập huấn luyện với tập kiểm định, không giảm số đặc trưng, số mẫu hay số tổ hợp, nên ít khả năng tăng tốc nhất. "In your pipeline use variance thresholding to limit the number of features" bỏ các đặc trưng gần như không đổi, giảm chi phí tính toán. "Use a randomized grid search form of cross validation" chỉ thử một số tổ hợp ngẫu nhiên thay vì toàn bộ lưới nên nhanh hơn rõ rệt. "Randomly subset the data" huấn luyện trên ít mẫu hơn nên mỗi lần khớp mô hình rẻ hơn. "Use PCA to reduce the dimensionality of the data before training" nén dữ liệu xuống ít chiều hơn, giảm thời gian huấn luyện trên dữ liệu nhiều đặc trưng.
Mở trang câu hỏi này →
Athreading
Bsubprocess
Cmultiprocessing
Dnumpy
Lời giải
Đáp án đúng: "multiprocessing". Gói multiprocessing trong thư viện chuẩn Python tạo các tiến trình (process) riêng, mỗi tiến trình có trình thông dịch và bộ nhớ riêng, nên vượt qua được GIL (Global Interpreter Lock, khóa chỉ cho một luồng chạy mã Python tại một thời điểm) và tận dụng nhiều lõi CPU, ví dụ dùng Pool để chạy một hàm song song trên nhiều phần dữ liệu. "threading" tạo luồng (thread) trong cùng một tiến trình chứ không sinh tiến trình, và vì GIL nên nó ít tăng tốc cho tác vụ nặng tính toán, chủ yếu có ích với tác vụ chờ vào ra. "subprocess" đúng là sinh tiến trình, nhưng mục đích là chạy chương trình hay lệnh bên ngoài và đọc kết quả, không phải chia việc tính toán của mã Python ra nhiều lõi để tối ưu. "numpy" tăng tốc bằng phép toán vector hóa viết bằng C trên mảng, không phải công cụ sinh tiến trình.
Mở trang câu hỏi này →
AMulti-layer perceptron
BRecurrent neural networks
CTransfer learning
DConvolutional neural network
EAutoencoders
Lời giải
Đáp án đúng: "Recurrent neural networks". Recurrent neural network (mạng nơ-ron hồi quy) xử lý dữ liệu theo từng bước thời gian và mang theo một trạng thái ẩn đóng vai trò bộ nhớ, nên nắm được sự phụ thuộc giữa giá trị hiện tại với các giá trị trước đó; các biến thể như LSTM và GRU là lựa chọn quen thuộc nhất cho chuỗi thời gian. "Multi-layer perceptron" nhận một vectơ đầu vào cố định và không có cơ chế ghi nhớ thứ tự, nên phải tự tạo đặc trưng trễ bằng tay. "Transfer learning" là kỹ thuật tái sử dụng mô hình đã huấn luyện cho bài toán mới, không phải một kiến trúc mạng. "Convolutional neural network" mạnh nhất với dữ liệu ảnh; tích chập một chiều có thể dùng cho chuỗi nhưng không phải lựa chọn phổ biến nhất. "Autoencoders" chủ yếu dùng để nén dữ liệu hoặc phát hiện bất thường, không phải kiến trúc chính để mô hình hóa chuỗi thời gian.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "True". Dữ liệu rời bỏ thuê bao (churn) của AAVAIL là bài toán phân loại có giám sát với nhãn hai lớp (khách ở lại hay huỷ), đặc trưng gồm cả biến số như tuổi, số lượt xem lẫn biến phân loại như quốc gia, loại thuê bao. Cây quyết định (decision tree) hợp với dạng dữ liệu này: nó chia dữ liệu theo ngưỡng của từng đặc trưng, không cần chuẩn hoá thang đo, nắm được quan hệ phi tuyến và tương tác giữa các biến, và cho ra các luật dễ giải thích với bộ phận kinh doanh, ví dụ nhóm khách nào có nguy cơ huỷ cao. Nó cũng là nền của các mô hình tập hợp như random forest. Vì vậy "False" không đúng: hạn chế của một cây đơn như dễ quá khớp (overfitting) chỉ đòi hỏi giới hạn độ sâu hay cắt tỉa, chứ không làm cây trở thành mô hình vô dụng cho dữ liệu churn.
Mở trang câu hỏi này →
ATo write new algorithms from scratch
BTo identify which parts of the code are bottlenecks
CTo increase the number of processor cores
DTo reduce the amount of data used
Lời giải
Đáp án đúng: "To identify which parts of the code are bottlenecks". Profiling (đo hồ sơ thực thi) là chạy chương trình dưới một công cụ đo như cProfile hay line_profiler để biết hàm hoặc dòng nào chiếm nhiều thời gian và bộ nhớ nhất, từ đó tối ưu đúng chỗ thay vì đoán; nguyên tắc là đo trước rồi mới sửa, vì phần lớn thời gian chạy thường dồn vào một phần nhỏ của mã. "To write new algorithms from scratch" sai vì profiling chỉ chỉ ra chỗ chậm, còn viết lại thuật toán là bước có thể làm sau đó và không phải lúc nào cũng cần. "To increase the number of processor cores" sai vì số nhân là phần cứng; profiling có thể gợi ý nên song song hoá nhưng không thay đổi tài nguyên máy. "To reduce the amount of data used" sai vì giảm dữ liệu là một chiến lược tối ưu khác, còn profiling giữ nguyên đầu vào để đo hành vi của mã.
Mở trang câu hỏi này →
ALists and dictionaries
BDataFrames and Series
CNumPy arrays and SciPy sparse matrices
DStrings and tuples
Lời giải
Đáp án đúng: "NumPy arrays and SciPy sparse matrices". Các estimator (bộ ước lượng) của scikit-learn có giao diện thống nhất fit, predict, transform, và đầu vào chuẩn của chúng là mảng NumPy cho dữ liệu dày đặc và ma trận thưa của SciPy cho dữ liệu có rất nhiều số 0 như ma trận đếm từ khi xử lý văn bản. Phương án "Lists and dictionaries" sai vì đây là cấu trúc Python thuần; list có thể được chuyển ngầm thành mảng, còn dictionary phải qua DictVectorizer mới dùng được, nên chúng không phải dạng đầu vào chuẩn. Phương án "DataFrames and Series" là dạng dữ liệu của pandas, được chấp nhận vì scikit-learn chuyển chúng về mảng NumPy bên trong, nhưng cấu trúc chuẩn mà giao diện được thiết kế quanh vẫn là mảng. Phương án "Strings and tuples" sai vì mô hình cần đặc trưng dạng số; chuỗi ký tự phải được mã hoá hoặc vector hoá trước khi đưa vào.
Mở trang câu hỏi này →