Chuẩn bị dữ liệu cho AI là gì
Chuẩn bị dữ liệu cho AI là quá trình làm sạch, tổ chức và chuyển đổi dữ liệu thô thành các định dạng phù hợp và thân thiện cho việc phân tích và huấn luyện mô hình AI.
Đây là bước tiền xử lý (“pre-processing”) thiết yếu bao gồm thu thập dữ liệu từ các nguồn khác nhau, làm sạch để loại bỏ lỗi và sự không nhất quán, gán nhãn (nếu cần thiết cho học có giám sát) và chuyển đổi dữ liệu thành một cấu trúc phù hợp cho các thuật toán ML tiếp nhận.
Quá trình này cũng thường bao gồm khám phá và trực quan hóa dữ liệu để hiểu rõ hơn về đặc tính của nó.
Mục tiêu cuối cùng của chuẩn bị dữ liệu cho AI là biến đổi khối lượng dữ liệu thô, thường lộn xộn, không đầy đủ và không nhất quán từ nhiều nguồn thành các tập dữ liệu chất lượng cao, có cấu trúc và sẵn sàng cho phân tích và xây dựng mô hình.
Một thực tế đáng kinh ngạc trong ngành khoa học dữ liệu và AI là giai đoạn chuẩn bị dữ liệu chiếm một phần lớn thời gian và công sức của các chuyên gia.
Nhiều nghiên cứu và báo cáo uy tín chỉ ra các nhà khoa học dữ liệu dành trung bình khoảng 80% thời gian làm việc của họ cho thu thập, làm sạch, tổ chức và chuyển đổi dữ liệu.
Điều này đồng nghĩa với việc chỉ còn lại khoảng 20% thời gian ít ỏi cho các công việc cốt lõi mang lại giá trị trực tiếp như phân tích dữ liệu, xây dựng và tinh chỉnh mô hình.
Con số 80% này không chỉ phản ánh sự tốn kém về mặt thời gian và nguồn lực mà còn cho thấy chuẩn bị dữ liệu là một nút thắt cổ chai (bottleneck) lớn trong quy trình phát triển AI.
Nó nhấn mạnh tầm quan trọng của việc tối ưu hóa giai đoạn này.
Bất kỳ sự thiếu hiệu quả hoặc sai sót nào trong quá trình chuẩn bị dữ liệu, vốn chiếm phần lớn nguồn lực, đều có thể gây ra tác động lan tỏa tiêu cực đến toàn bộ dự án, bao gồm chậm trễ tiến độ, tăng chi phí và giảm chất lượng của mô hình cuối cùng.
Do đó, đầu tư vào các công cụ, kỹ thuật và quy trình chuẩn bị dữ liệu hiệu quả không chỉ là một vấn đề kỹ thuật mà còn mang ý nghĩa chiến lược, giúp giảm thiểu rủi ro và đẩy nhanh quá trình đưa các ứng dụng AI vào thực tế.
Quy trình chuẩn bị dữ liệu
Thu thập và tích hợp dữ liệu
Khi bắt đầu bất kỳ dự án AI hay Machine Learning nào, việc đầu tiên và quan trọng nhất là tập hợp toàn bộ dữ liệu cần thiết.
Đây không chỉ là bước khởi đầu mà còn là nền tảng quyết định thành công của cả dự án.
Nguồn dữ liệu đa dạng
Dữ liệu ngày nay xuất hiện từ vô số nguồn với hình thức khác nhau:
- Các hệ thống lưu trữ như cơ sở dữ liệu, kho dữ liệu và hồ dữ liệu
- Nhiều định dạng tệp tin như CSV, JSON, văn bản thuần túy hay PDF
- Các API từ dịch vụ bên thứ ba
- Nội dung thu thập từ website
- Phần mềm quản lý doanh nghiệp (CRM, ERP)
- Thiết bị IoT ghi nhận dữ liệu theo thời gian thực
Ví dụ: Một dự án phân tích giao thông thông minh có thể cần kết hợp dữ liệu từ camera giám sát (video), cảm biến đường bộ (dữ liệu thời gian thực), hệ thống vé điện tử (dữ liệu giao dịch) và dự báo thời tiết (dữ liệu API) để tạo mô hình dự đoán tắc nghẽn giao thông hiệu quả.
Những thách thức trong thu thập dữ liệu
Quá trình thu thập dữ liệu thường gặp nhiều khó khăn:
- Dữ liệu phân tán: Thông tin thường nằm rải rác trong nhiều hệ thống khác nhau, đôi khi còn tồn tại trong các “ốc đảo dữ liệu” khó tiếp cận.
- Tăng trưởng theo cấp số nhân: Khối lượng dữ liệu tăng chóng mặt, đòi hỏi chiến lược quản lý hiệu quả.
- Đa dạng định dạng: Dữ liệu tồn tại ở ba dạng chính
– Dữ liệu có cấu trúc (bảng, cơ sở dữ liệu quan hệ)
– Dữ liệu bán cấu trúc (XML, JSON)
– Dữ liệu phi cấu trúc (văn bản, hình ảnh, âm thanh)
Ví dụ: Một hệ thống chăm sóc sức khỏe thông minh cần kết hợp dữ liệu từ hồ sơ bệnh án điện tử (có cấu trúc), các tệp DICOM từ thiết bị X-quang (bán cấu trúc) và ghi chú của bác sĩ (phi cấu trúc).
Việc hòa hợp các định dạng này đòi hỏi quy trình xử lý phức tạp.
Đánh giá chất lượng nguồn dữ liệu
Trước khi tiến hành tích hợp, cần đánh giá kỹ lưỡng các nguồn dữ liệu về:
- Độ phù hợp với mục tiêu dự án
- Chất lượng và độ tin cậy của dữ liệu
- Khả năng tích hợp vào hệ thống hiện tại
- Tính pháp lý và quyền sử dụng
Quy trình tích hợp dữ liệu
Khi dữ liệu đến từ nhiều nguồn khác nhau, quá trình tích hợp trở nên vô cùng quan trọng.
Đây là ba kỹ thuật chính trong tích hợp dữ liệu:
Hợp nhất cấu trúc dữ liệu: Đây là quá trình chuyển đổi các bộ dữ liệu có cấu trúc khác nhau về một định dạng thống nhất.
Ví dụ: Hệ thống quản lý nhân sự của công ty A lưu trữ tên nhân viên trong hai cột riêng biệt (Họ và Tên), trong khi công ty B lưu trong một cột duy nhất (Họ tên đầy đủ).
Khi sáp nhập, cần xây dựng quy tắc chuyển đổi để thống nhất cách lưu trữ.
Liên kết bản ghi: Đây là quy trình xác định và kết nối các bản ghi từ nhiều nguồn nhưng đề cập đến cùng một đối tượng.
Ví dụ: Một khách hàng có thể xuất hiện trong hệ thống bán hàng dưới tên “Nguyễn Văn A”, trong hệ thống hỗ trợ là “A. Nguyễn”, và trong hệ thống thanh toán là “NVA”.
Hệ thống liên kết bản ghi sẽ sử dụng thuật toán khớp mờ (fuzzy matching) để nhận diện đây là cùng một người dựa trên các thông tin bổ sung như số điện thoại, email hoặc địa chỉ.
Hợp nhất dữ liệu: Sau khi đã xác định các bản ghi liên quan đến cùng một đối tượng, bước tiếp theo là kết hợp chúng thành một bản ghi tổng hợp, vừa loại bỏ thông tin trùng lặp vừa giữ lại những thông tin độc đáo từ mỗi nguồn.
Ví dụ: Khi hợp nhất thông tin sản phẩm từ nhiều nhà phân phối, mỗi nguồn có thể cung cấp những mảnh thông tin khác nhau – nguồn A có mô tả chi tiết sản phẩm, nguồn B có thông số kỹ thuật đầy đủ, và nguồn C có hình ảnh chất lượng cao.
Quá trình hợp nhất sẽ tạo ra một bản ghi hoàn chỉnh kết hợp ưu điểm từ mỗi nguồn.
Đảm bảo tính đại diện của dữ liệu
- Một yếu tố quan trọng không kém trong giai đoạn thu thập là đảm bảo dữ liệu có tính đại diện cao.
- Điều này có nghĩa là dữ liệu phải phản ánh đầy đủ các tình huống và điều kiện mà mô hình AI sẽ gặp phải trong thực tế.
Ví dụ cụ thể: Một hệ thống nhận diện giọng nói tiếng Việt cần được huấn luyện với dữ liệu ghi âm từ người nói đa dạng về giới tính, độ tuổi, và vùng miền (Bắc, Trung, Nam) để đảm bảo hoạt động tốt với tất cả người dùng.
- Nếu dữ liệu huấn luyện chỉ có giọng Bắc, hệ thống sẽ gặp khó khăn khi nhận diện giọng miền Nam hoặc miền Trung do đặc thù về ngữ âm và cách phát âm.
- Thiếu đa dạng trong dữ liệu không chỉ làm giảm hiệu suất mô hình mà còn có thể dẫn đến những kết quả thiên vị.
- Từ đó tạo ra sự bất công hoặc vô tình phân biệt đối xử với một số nhóm đối tượng.
Khám phá và đánh giá dữ liệu
Sau khi hoàn tất quá trình thu thập và hợp nhất dữ liệu, bước tiếp theo vô cùng quan trọng là khám phá và đánh giá dữ liệu.
Đây không đơn thuần là việc nhìn lướt qua các con số, mà là quá trình tìm hiểu sâu sắc về bản chất, đặc tính và những thông điệp ẩn chứa trong dữ liệu.
Ý nghĩa của khám phá dữ liệu
Khám phá dữ liệu giống như một nhà thám hiểm khảo sát địa hình trước khi lên kế hoạch hành trình.
Quá trình này giúp:
- Hiểu rõ về đặc điểm và cấu trúc dữ liệu
- Phát hiện các mẫu, xu hướng tiềm ẩn
- Nhận diện các điểm ngoại lai và bất thường
- Đánh giá mức độ phù hợp của dữ liệu với mục tiêu dự án
Ví dụ: Một công ty viễn thông muốn xây dựng mô hình dự đoán khách hàng rời mạng (churn prediction).
Trong giai đoạn khám phá dữ liệu, họ có thể phát hiện ra rằng tỷ lệ rời mạng tăng đột biến vào tháng 9 hàng năm – thời điểm các nhà mạng thường tung ra chương trình khuyến mãi lớn.
Phát hiện này sẽ định hướng các bước phân tích tiếp theo và chiến lược giữ chân khách hàng.
Các hoạt động chính
Xác định kiểu dữ liệu, định dạng và cấu trúc
Đây là bước đầu tiên nhằm hiểu rõ “nguyên liệu” bạn đang làm việc. Bạn cần phân loại từng trường dữ liệu theo các kiểu:
- Số nguyên (integer): như ID khách hàng, số lượng mua
- Số thực (float): như giá trị giao dịch, chỉ số kỹ thuật
- Chuỗi ký tự (string): như tên, địa chỉ, mô tả
- Ngày tháng (date/time): như thời gian giao dịch, ngày sinh
- Phân loại (categorical): như giới tính, tình trạng hôn nhân
Ví dụ: Khi phân tích dữ liệu IoT từ các cảm biến môi trường, một nhóm nghiên cứu Việt Nam phát hiện rằng nhiều cảm biến ghi nhận nhiệt độ dưới dạng chuỗi ký tự kèm đơn vị (ví dụ: “32°C”) thay vì số thực.
Nhận diện sớm vấn đề giúp họ thiết kế quy trình tiền xử lý phù hợp, tách giá trị số từ đơn vị đo lường.
Tính toán thống kê mô tả
Các chỉ số thống kê giúp nắm bắt nhanh chóng đặc tính của dữ liệu số:
Các độ đo trung tâm: Giá trị trung bình, trung vị, yếu vị
- Trung bình: Tổng các giá trị chia cho số lượng quan sát
- Trung vị: Giá trị ở vị trí giữa khi sắp xếp tất cả quan sát
- Yếu vị: Giá trị xuất hiện nhiều nhất
- Các độ đo phân tán: Độ lệch chuẩn, giá trị min/max, phân vị
- Độ lệch chuẩn: Mức độ biến thiên xung quanh giá trị trung bình
- Phân vị: Các điểm chia dữ liệu thành các phần bằng nhau (tứ phân vị, thập phân vị)
Ví dụ: Một dự án phân tích hiệu suất mạng tại một ISP Việt Nam cho thấy thời gian phản hồi trung bình là 25ms, nhưng độ lệch chuẩn lên tới 15ms.
Điều này ngụ ý dù hiệu suất trung bình tốt, nhưng độ ổn định còn hạn chế, cần được cải thiện để nâng cao trải nghiệm người dùng.
Trực quan hóa dữ liệu
- Trực quan hóa biến dữ liệu thành hình ảnh, giúp nhận diện nhanh chóng các mẫu và xu hướng khó thấy qua các con số đơn thuần.
- Biểu đồ histogram: Hiển thị phân phối của một biến số
- Biểu đồ phân tán (scatter plot): Thể hiện mối quan hệ giữa hai biến số
- Biểu đồ hộp (box plot): Tóm tắt phân phối và xác định giá trị ngoại lai
- Biểu đồ đường (line plot): Thể hiện xu hướng theo thời gian
- Biểu đồ cột (bar chart): So sánh giá trị giữa các nhóm khác nhau
Ví dụ: Một nhóm nghiên cứu về giao thông thông minh sử dụng biểu đồ nhiệt (heatmap) để trực quan hóa tình trạng tắc nghẽn theo giờ trong ngày và các tuyến đường.
Họ phát hiện ra một mẫu bất thường – tắc nghẽn xảy ra vào buổi trưa trên một tuyến đường không phải là khu vực trường học hay văn phòng.
Điều tra thêm cho thấy đây là tuyến đường gần một khu chợ đầu mối thực phẩm hoạt động mạnh vào khung giờ này.
Đánh giá chất lượng dữ liệu
Quá trình này nhằm phát hiện các vấn đề tiềm ẩn cần xử lý:
- Giá trị thiếu (missing values): Các ô trống, NULL, hay NaN
- Dữ liệu trùng lặp: Các bản ghi xuất hiện nhiều lần
- Lỗi định dạng: Dữ liệu không tuân theo quy ước (như định dạng ngày tháng không đồng nhất)
- Giá trị không nhất quán: Cùng một khái niệm nhưng biểu diễn khác nhau (ví dụ: “Nam”, “M”, “1” đều biểu thị giới tính nam)
- Điểm ngoại lai (outliers): Giá trị khác thường cần xác minh tính hợp lệ
Ví dụ: Trong một dự án xây dựng hệ thống chẩn đoán hỗ trợ y tế, nhóm nghiên cứu tại một bệnh viện lớn phát hiện rằng 15% hồ sơ bệnh nhân có chỉ số BMI (Body Mass Index) bằng 0.
Điều tra sâu hơn cho thấy nguyên nhân là do nhân viên y tế không nhập chiều cao hoặc cân nặng của bệnh nhân, khiến hệ thống tự động tính toán BMI bằng 0.
Phát hiện này đã dẫn đến việc cải tiến giao diện nhập liệu, đòi hỏi xác nhận khi các trường quan trọng bị bỏ trống.
Tầm quan trọng của khám phá dữ liệu
Mặc dù không yêu cầu các mô hình phức tạp, giai đoạn khám phá dữ liệu đóng vai trò nền tảng cho toàn bộ quy trình xây dựng mô hình AI/ML.
Nó cung cấp thông tin cần thiết để:
- Đưa ra quyết định chính xác về cách làm sạch dữ liệu
- Xác định các biến có giá trị và ít giá trị
- Định hướng chiến lược chuyển đổi dữ liệu
- Phát hiện sớm các vấn đề tiềm ẩn
Đầu tư thời gian vào giai đoạn này sẽ tiết kiệm rất nhiều công sức trong các bước tiếp theo và nâng cao chất lượng của mô hình cuối cùng.
Làm sạch dữ liệu
Làm sạch dữ liệu là quá trình nhận diện và sửa chữa các lỗi, sự không nhất quán và thiếu sót trong bộ dữ liệu thô.
Đây được xem như một trong những công đoạn quan trọng bậc nhất nhưng thường đòi hỏi nhiều thời gian và nỗ lực nhất trong quy trình chuẩn bị dữ liệu.
Mục đích chính là đảm bảo dữ liệu mang tính chính xác, đầy đủ, nhất quán và đáng tin cậy để hỗ trợ phân tích và huấn luyện mô hình.
Dữ liệu không sạch có thể dẫn tới kết quả phân tích không chính xác và quyết định kinh doanh sai lầm.
Kỹ thuật làm sạch dữ liệu chính
Xử lý giá trị thiếu
Xác định
- Sử dụng các hàm như isna() hoặc isnull() trong Pandas để phát hiện các giá trị thiếu (thường được biểu thị bằng NaN hoặc None).
Ví dụ thực tế: Khi phân tích dữ liệu khách hàng của một công ty viễn thông, bạn có thể thấy nhiều trường thông tin như “ngày hết hạn hợp đồng” bị thiếu do lỗi từ hệ thống CRM.
Xóa bỏ
- Cách đơn giản nhất là loại bỏ các hàng (quan sát) hoặc cột (đặc trưng) chứa giá trị thiếu. Pandas cung cấp hàm dropna().
- Tuy nhiên, phương pháp này có thể gây mất thông tin quan trọng, đặc biệt nếu tỷ lệ thiếu cao hoặc dữ liệu thiếu không ngẫu nhiên.
- Cần xem xét kỹ trước khi xóa. Nếu một cột có quá nhiều giá trị thiếu, việc loại bỏ cột đó có thể hợp lý.
Thay thế
Điền vào các giá trị thiếu bằng một giá trị ước tính.
Các phương pháp phổ biến bao gồm:
– Giá trị cố định
– Giá trị thống kê: Trung bình, trung vị hoặc yếu vị
– Điền tiến/lùi: Sử dụng giá trị liền trước hoặc liền sau (hữu ích cho dữ liệu chuỗi thời gian).
– Phương pháp nâng cao: Sử dụng các thuật toán ML như K-Nearest Neighbors (KNN) hoặc hồi quy (Regression) để dự đoán giá trị thiếu dựa trên các đặc trưng khác.
Ví dụ: Trong một bộ dữ liệu IoT từ các cảm biến nhiệt độ, khi có đoạn dữ liệu bị mất do mất kết nối, việc sử dụng phương pháp điền tiến giúp duy trì tính liên tục của dữ liệu thời gian.
Tạo đặc trưng chỉ báo thiếu
Đôi khi, việc dữ liệu bị thiếu lại mang thông tin hữu ích.
Có thể tạo một cột nhị phân mới để đánh dấu các hàng có giá trị thiếu cho một đặc trưng cụ thể.
Lựa chọn
- Việc chọn phương pháp xử lý giá trị thiếu phụ thuộc vào loại dữ liệu, tỷ lệ thiếu, cơ chế gây ra sự thiếu hụt (ngẫu nhiên hay không), và thuật toán ML sẽ sử dụng.
Xử lý giá trị ngoại lai
- Ngoại lai là các điểm dữ liệu khác biệt đáng kể so với phần còn lại của tập dữ liệu.
- Chúng có thể do lỗi đo lường, lỗi nhập liệu, hoặc là các quan sát cực đoan nhưng có thật.
Ví dụ: Trong dữ liệu lưu lượng mạng, một đột biến bất thường có thể là dấu hiệu của cuộc tấn công DDoS hoặc chỉ đơn giản là thời điểm có nhiều người dùng truy cập cùng lúc.
Phát hiện
- Trực quan hóa: Biểu đồ hộp (Box plot), biểu đồ phân tán.
Phương pháp thống kê
Quy tắc Z-score
- Điểm dữ liệu có Z-score (số độ lệch chuẩn so với giá trị trung bình) vượt quá một ngưỡng nhất định (thường là 2.5 hoặc 3) được coi là ngoại lai.
- Tuy nhiên, phương pháp này nhạy cảm với chính các giá trị ngoại lai vì chúng ảnh hưởng đến giá trị trung bình và độ lệch chuẩn.
Quy tắc IQR
- Xác định các giá trị nằm ngoài khoảng, trong đó Q1 và Q3 là phân vị thứ 25 và 75, IQR = Q3 – Q1.
- Phương pháp này ổn định hơn (robust) đối với outliers so với Z-score.
Thuật toán ML
- Local Outlier Factor (LOF), Isolation Forest, One-Class SVM.
- Scikit-learn cung cấp các lớp triển khai các thuật toán này.
Xử lý
- Loại bỏ (Removal): Xóa các quan sát chứa ngoại lai. Cần thận trọng vì có thể làm mất thông tin.
- Biến đổi (Transformation): Áp dụng các phép biến đổi toán học (ví dụ: logarit) để giảm tác động của ngoại lai.
- Capping/Winsorization: Thay thế các giá trị ngoại lai bằng giá trị tối thiểu/tối đa được coi là chấp nhận được (ví dụ: giới hạn trên/dưới theo IQR hoặc phân vị).
- Coi là loại dữ liệu riêng: Trong một số trường hợp, ngoại lai có thể đại diện cho một nhóm đặc biệt và được xử lý riêng.
Ví dụ: Trong dữ liệu chi tiêu khách hàng từ ngành viễn thông, thay vì loại bỏ hoàn toàn các khách hàng doanh nghiệp có mức chi tiêu cao (outliers), ta có thể xem xét phân tích riêng nhóm này.
Lưu ý
Cần phải xác định xem một ngoại lai có phải là lỗi hay không trước khi loại bỏ nó. Việc xử lý ngoại lai phụ thuộc vào lĩnh vực và mục tiêu phân tích.
Xử lý dữ liệu trùng lặp
Tác động
- Các bản ghi giống hệt hoặc gần giống nhau có thể làm sai lệch kết quả phân tích (ví dụ: thống kê tần suất), gây lãng phí tài nguyên lưu trữ và xử lý.
- Từ đó ảnh hưởng đến hiệu suất mô hình.
Ví dụ: Trong hệ thống quản lý khách hàng, một khách hàng có thể được nhập nhiều lần với các biến thể nhỏ về cách viết tên hoặc địa chỉ, dẫn đến trùng lặp và ảnh hưởng đến việc thống kê.
Xác định
- Khớp chính xác (Exact Matching): Tìm các hàng hoàn toàn giống nhau trên tất cả các cột hoặc một tập con các cột. Pandas: duplicated().
- Khớp mờ (Fuzzy Matching) / Liên kết bản ghi (Record Linkage): Tìm các bản ghi tương tự nhưng không hoàn toàn giống nhau, thường do lỗi chính tả, định dạng khác nhau.
- Các kỹ thuật bao gồm tính toán độ tương tự chuỗi (ví dụ: Levenshtein distance), hashing, hoặc sử dụng các thư viện chuyên dụng như recordlinkage, pandas-dedupe, string-grouper.
Loại bỏ
- Pandas: drop_duplicates() giúp loại bỏ các bản ghi trùng lặp, giữ lại bản ghi đầu tiên (keep=’first’), cuối cùng (keep=’last’), hoặc loại bỏ tất cả (keep=False).
- Có thể chỉ định subset các cột để xác định trùng lặp.
- PySpark: dropDuplicates().
- Dask: drop_duplicates() cho dữ liệu lớn.
Lưu ý
- Trong một số trường hợp, như xử lý tập dữ liệu mất cân bằng, việc giữ lại hoặc tạo thêm bản sao có thể hữu ích.
Sửa lỗi cấu trúc
- Bao gồm chuẩn hóa các quy ước đặt tên, sửa lỗi chính tả, đồng bộ hóa cách viết hoa/thường.
- Hơn nữa cần đảm bảo định dạng dữ liệu nhất quán (ví dụ: ngày tháng, tiền tệ, đơn vị đo lường).
Ví dụ: Trong dữ liệu thu thập từ nhiều hệ thống khác nhau, định dạng ngày tháng có thể không thống nhất (MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD).
- Chuyển đổi tất cả về một định dạng chuẩn giúp tránh sai sót khi phân tích theo thời gian.
Xử lý dữ liệu không liên quan
- Loại bỏ các cột hoặc hàng không cung cấp thông tin hữu ích cho bài toán cụ thể đang giải quyết.
- Lựa chọn thuộc tính không cần thiết có thể dựa trên kiến thức miền hoặc các kỹ thuật lựa chọn đặc trưng sơ bộ.
Ví dụ: Khi phân tích hiệu suất mạng di động, các thông tin như ID thiết bị, mã IMEI có thể không liên quan trực tiếp đến việc phân tích chất lượng tín hiệu và có thể được loại bỏ để giảm kích thước dữ liệu.
- Quá trình làm sạch dữ liệu đòi hỏi sự chi tiết, kiến thức về lĩnh vực và hiểu biết về các công cụ hỗ trợ.
- Đây là nền tảng vững chắc để đảm bảo chất lượng cho các giai đoạn tiếp theo trong quy trình xử lý dữ liệu.
Chuyển đổi dữ liệu
Sau khi đã làm sạch dữ liệu, bước quan trọng tiếp theo là biến đổi dữ liệu thành định dạng thích hợp cho phân tích và các thuật toán học máy.
Các thuật toán ML thường đòi hỏi đầu vào dạng số và có thể bị ảnh hưởng mạnh bởi thang đo của từng đặc trưng.
Kỹ thuật chuyển đổi phổ biến
Chuẩn hóa đặc trưng
Mục đích
Đưa các đặc trưng số về cùng thang đo nhằm tránh tình trạng các đặc trưng có giá trị lớn gây ảnh hưởng không công bằng tới quá trình học của mô hình.
Đây là bước cực kỳ quan trọng đối với các thuật toán dựa trên khoảng cách như KNN, SVM hoặc các thuật toán sử dụng gradient descent như hồi quy tuyến tính và mạng nơ-ron.
Các phương pháp chính
Chuẩn hóa Min-Max (Normalization)
- Biến đổi dữ liệu về khoảng [0,1] hoặc [-1,1]
- Công thức: Xnorm = (X – Xmin) / (Xmax – Xmin)
Ví dụ: Khi xử lý dữ liệu cảm biến IoT, các giá trị nhiệt độ (20°C-40°C) và độ ẩm (30%-90%) có thang đo khác nhau, chuẩn hóa giúp đưa cả hai về cùng khoảng [0,1]
- Ưu điểm: Giữ nguyên hình dạng phân phối
- Nhược điểm: Nhạy cảm với các giá trị ngoại lai (outliers)
Thực hiện với: MinMaxScaler trong Scikit-learn
- Chuẩn hóa Z-score (Standardization): Biến đổi dữ liệu để có giá trị trung bình = 0 và độ lệch chuẩn = 1
- Công thức: Xstd = (X – μ) / σ
Ví dụ: Khi phân tích dữ liệu thị trường chứng khoán, chuẩn hóa Z-score giúp so sánh các cổ phiếu có giá trị và biến động giá khác nhau
- Ưu điểm: Ít bị ảnh hưởng bởi outliers hơn so với Min-Max
- Nhược điểm: Không giới hạn giá trị trong một khoảng cụ thể
Thực hiện với: StandardScaler trong Scikit-learn
- Robust Scaling: Sử dụng các thống kê ít nhạy cảm với outliers như trung vị và khoảng tứ phân vị (IQR)
Ví dụ thực tế: Khi xử lý dữ liệu thu nhập, có thể có một số người có thu nhập cực cao, Robust Scaling sẽ tránh bị ảnh hưởng bởi các giá trị này
Thực hiện với: RobustScaler trong Scikit-learn
Lựa chọn phương pháp phù hợp:
- Nếu dữ liệu tuân theo phân phối chuẩn → Ưu tiên Standardization
- Nếu thuật toán yêu cầu dữ liệu trong khoảng cụ thể → Dùng Normalization
- Nếu dữ liệu có nhiều outliers → Dùng Robust Scaling
Mã hóa biến phân loại
Mục đích: Biến đổi dữ liệu dạng chuỗi hoặc phân loại thành dạng số mà thuật toán ML có thể xử lý.
Các phương pháp chính
Label Encoding: Gán một số nguyên duy nhất cho mỗi giá trị phân loại
Ví dụ thực tế: Mã hóa cấp độ học vấn (‘THPT’, ‘Đại học’, ‘Sau đại học’) trong dự đoán thu nhập
- Ưu điểm: Đơn giản, tiết kiệm bộ nhớ
- Nhược điểm: Có thể tạo ra thứ tự giả tạo giữa các category
Thực hiện với: LabelEncoder hoặc OrdinalEncoder trong Scikit-learn
- One-Hot Encoding (OHE): Tạo các cột nhị phân mới cho mỗi category
Ví dụ thực tế: Mã hóa tỉnh/thành phố trong dự đoán giá nhà đất, mỗi tỉnh/thành trở thành một cột riêng
- Ưu điểm: Tránh thứ tự giả tạo
- Nhược điểm: Có thể làm tăng đáng kể số chiều dữ liệu (“lời nguyền số chiều”
Thực hiện với: OneHotEncoder (Scikit-learn) hoặc get_dummies (Pandas)
- Sự khác biệt giữa pd.get_dummies và sklearn.OneHotEncoder:
- get_dummies (Pandas): Dễ sử dụng, trả về DataFrame
- OneHotEncoder (Scikit-learn): Hoạt động như một Transformer trong ML pipeline, “học” các category từ tập huấn luyện và biến đổi nhất quán trên các tập dữ liệu khác
Ví dụ: Khi xây dựng mô hình dự đoán trong thực tế, các category mới có thể xuất hiện trong dữ liệu mới (ví dụ: sản phẩm mới), OneHotEncoder xử lý tốt hơn với tham số handle_unknown
Các phương pháp mã hóa nâng cao
- Binary Encoding: Chuyển category thành mã nhị phân
- Target Encoding: Sử dụng thông tin từ biến mục tiêu
- Hashing Encoder: Không lưu trữ mapping, tiết kiệm bộ nhớ
Ví dụ: Khi mã hóa biến “Mã sản phẩm” có hàng nghìn giá trị, Binary Encoding hoặc Hashing Encoder sẽ hiệu quả hơn OHE
Lựa chọn phương pháp phù hợp
- Biến có thứ tự (ordinal) → Label Encoding
- Biến danh nghĩa (nominal) ít category → One-Hot Encoding
- Biến danh nghĩa nhiều category → Binary Encoding, Hashing Encoder, Target Encoding
Kỹ thuật đặc trưng
Mục đích: Tạo ra các đặc trưng mới từ đặc trưng hiện có để nâng cao khả năng dự đoán của mô hình ML.
Các kỹ thuật tiêu biểu:
Polynomial Features: Tạo đặc trưng mới là lũy thừa và tích của đặc trưng hiện có.
Ví dụ: Trong bài toán dự đoán giá nhà, diện tích (S) ảnh hưởng đến giá theo hàm phi tuyến, tạo thêm S² giúp mô hình tuyến tính nắm bắt mối quan hệ này tốt hơn
Thực hiện với: PolynomialFeatures trong Scikit-learn
Binning/Discretization: Chia biến liên tục thành các khoản
Ví dụ: Trong phân tích tín dụng ngân hàng, chia thu nhập thành các nhóm để phát hiện mối quan hệ phi tuyến với khả năng trả nợ
Thực hiện với: KBinsDiscretizer trong Scikit-learn, Bucketizer trong PySpark
Trích xuất đặc trưng văn bản
Bag-of-Words (BoW): Đếm tần suất của từng từ
- TF-IDF: Đánh trọng số dựa trên tần suất xuất hiện của từ
- Word Embeddings: Biểu diễn từ dưới dạng vector nhiều chiều
Ví dụ: Trong phân loại tin tức, TF-IDF giúp phát hiện các từ quan trọng đặc trưng cho từng chủ đề
Đặc trưng thời gian
- Trích xuất: ngày trong tuần, tháng, quý, năm, giờ trong ngày, ngày lễ
Ví dụ: Trong dự báo lưu lượng website, việc biết đó là ngày cuối tuần hay ngày trong tuần, mùa cao điểm hay thấp điểm sẽ cải thiện độ chính xác.
Đặc trưng theo lĩnh vực cụ thể
- Dựa trên hiểu biết chuyên sâu về bài toán
Ví dụ: Trong dự đoán giá nhà, tạo đặc trưng “khoảng cách đến trung tâm thành phố chia cho số phòng ngủ” có thể mang lại giá trị dự đoán cao
Áp dụng trong quy trình ML
- Lựa chọn và áp dụng đúng các kỹ thuật chuyển đổi dữ liệu đóng vai trò quyết định đến hiệu suất của mô hình.
- Trong thực tế, các kỹ thuật này thường được kết hợp trong một pipeline xử lý dữ liệu.
- Chuyển đổi dữ liệu không chỉ là một bước kỹ thuật đơn thuần mà còn là một nghệ thuật đòi hỏi hiểu biết sâu sắc về dữ liệu và bài toán cụ thể.
- Kết hợp giữa kỹ thuật và kinh nghiệm miền sẽ giúp tạo ra các đặc trưng chất lượng, từ đó nâng cao hiệu suất của mô hình ML.
Lựa chọn và giảm chiều đặc trưng
Sau khi tạo được tập hợp các đặc trưng, bước tiếp theo thường là giảm số lượng để nâng cao hiệu suất mô hình, rút ngắn thời gian huấn luyện.
Hơn nữa còn ngăn chặn hiện tượng quá khớp, và đôi khi tăng khả năng giải thích mô hình.
Có hai hướng tiếp cận chính:
Lựa chọn đặc trưng
Mục tiêu: Chọn một tập con các đặc trưng quan trọng nhất hoặc liên quan nhiều nhất đến biến mục tiêu, loại bỏ những đặc trưng không cần thiết hoặc thừa thãi.
Các phương pháp
Phương pháp lọc
Đánh giá và xếp hạng từng đặc trưng một cách độc lập dựa trên chỉ số thống kê, sau đó chọn ra những đặc trưng tốt nhất.
Các chỉ số thường dùng
- Hệ số tương quan (Pearson’s r): Đo lường mối quan hệ tuyến tính giữa đặc trưng và biến mục tiêu.
Ví dụ: Khi phân tích ảnh hưởng của nhiều yếu tố đến doanh số bán smartphone, ta có thể tính hệ số tương quan giữa giá bán và số lượng bán ra.
- Nếu hệ số này gần -1 (tương quan âm mạnh), ta biết giá là đặc trưng quan trọng cần giữ lại.
Trong Scikit-learn: Sử dụng r_regression
- Kiểm định Chi-squared (χ²): Đánh giá mối liên hệ giữa các đặc trưng phân loại và biến mục tiêu phân loại.
Ví dụ: Trong mô hình dự đoán khả năng vay được ngân hàng, kiểm định Chi-squared giúp xác định liệu “nghề nghiệp” có thực sự ảnh hưởng đến kết quả vay hay không.
Trong Scikit-learn: Sử dụng chi2
- ANOVA F-value: So sánh trung bình của đặc trưng số giữa các nhóm phân loại.
Ví dụ: Khi phân tích dữ liệu về lỗi mạng viễn thông, ANOVA có thể giúp xác định xem thời gian sử dụng thiết bị có thực sự khác nhau giữa các nhóm thiết bị bị lỗi và không bị lỗi.
Trong Scikit-learn: Sử dụng f_classif (cho phân loại), f_regression (cho hồi quy)
- Thông tin tương hỗ (Mutual Information): Đo lường sự phụ thuộc giữa các biến, bắt được cả mối quan hệ phi tuyến.
Ví dụ: Trong dự đoán mức tiêu thụ điện năng, mutual information có thể phát hiện mối quan hệ phức tạp giữa nhiệt độ ngoài trời và mức tiêu thụ điện (có thể không phải là tuyến tính đơn giản).
Trong Scikit-learn: Sử dụng mutual_info_classif, mutual_info_regression
- Ngưỡng phương sai (Variance Threshold): Loại bỏ các đặc trưng có phương sai thấp (ít biến đổi).
Ví dụ thực tế: Trong dữ liệu về cảm biến IoT, nếu một cảm biến luôn trả về giá trị không đổi hoặc gần như không đổi, nó không mang nhiều thông tin và có thể bị loại bỏ.
Trong Scikit-learn: Sử dụng VarianceThreshold
- Ưu điểm: Nhanh chóng, đơn giản, không phụ thuộc vào mô hình ML.
- Nhược điểm: Không xét đến tương tác giữa các đặc trưng, có thể không chọn được tập con tối ưu cho một mô hình cụ thể.
- Thư viện Scikit-learn cung cấp các lớp như SelectKBest (chọn K đặc trưng tốt nhất), SelectPercentile (chọn % đặc trưng tốt nhất) để áp dụng các phương pháp lọc này.
Phương pháp bao bọc
Sử dụng một thuật toán ML cụ thể để đánh giá hiệu suất của các tập con đặc trưng khác nhau.
Quá trình này “bao quanh” mô hình ML.
Loại bỏ đặc trưng đệ quy (RFE – Recursive Feature Elimination): Bắt đầu với tất cả đặc trưng, huấn luyện mô hình, loại bỏ đặc trưng yếu nhất, lặp lại quá trình đến khi đạt số lượng đặc trưng mong muốn.
Ví dụ: Trong hệ thống phát hiện xâm nhập mạng, RFE có thể giúp xác định những đặc trưng lưu lượng mạng quan trọng nhất đối với việc phân loại lưu lượng độc hại, bắt đầu từ hàng trăm đặc trưng và dần loại bỏ những đặc trưng ít quan trọng.
Trong Scikit-learn: Sử dụng RFE, RFECV
Lựa chọn đặc trưng tuần tự (Sequential Feature Selection):
- Lựa chọn tiến (Forward Selection): Bắt đầu với tập rỗng, lần lượt thêm vào đặc trưng giúp cải thiện hiệu suất mô hình nhiều nhất.
- Loại bỏ lùi (Backward Elimination): Bắt đầu với tất cả đặc trưng, lần lượt loại bỏ đặc trưng ít ảnh hưởng nhất đến hiệu suất.
Ví dụ: Khi xây dựng mô hình dự đoán hiệu suất mạng, ta có thể bắt đầu với một tập đặc trưng trống, sau đó lần lượt thêm vào các đặc trưng như băng thông, độ trễ, tỷ lệ mất gói tin… dựa trên mức độ cải thiện hiệu suất dự đoán.
Trong Scikit-learn: Sử dụng SequentialFeatureSelector
- Ưu điểm: Thường cho kết quả tốt hơn phương pháp lọc vì xét đến hiệu suất mô hình và tương tác đặc trưng.
- Nhược điểm: Tốn kém tài nguyên tính toán hơn đáng kể vì phải huấn luyện mô hình nhiều lần. Có nguy cơ quá khớp với mô hình cụ thể được dùng để đánh giá.
Phương pháp tích hợp
Thực hiện lựa chọn đặc trưng như một phần gắn liền trong quá trình huấn luyện mô hình.
Điều chuẩn L1 (L1 Regularization – Lasso): Các mô hình tuyến tính với L1 penalty có xu hướng đưa hệ số của đặc trưng không quan trọng về 0, từ đó thực hiện lựa chọn đặc trưng.
Ví dụ: Trong dự đoán chi phí vận hành mạng viễn thông, mô hình hồi quy với điều chuẩn L1 sẽ tự động “tắt” ảnh hưởng của những yếu tố ít tác động bằng cách đưa hệ số của chúng về 0.
Độ quan trọng đặc trưng dựa trên cây (Tree-based Feature Importance): Các mô hình dựa trên cây quyết định có thể tính toán độ quan trọng của mỗi đặc trưng dựa trên mức độ giảm tạp chất Gini hoặc entropy.
Ví dụ: Khi xây dựng hệ thống phân loại sự cố mạng, Random Forest có thể xác định rằng “thời gian phản hồi máy chủ” và “tỷ lệ lỗi giao thức” là hai đặc trưng quan trọng nhất, trong khi “số lượng người dùng đăng nhập” ít quan trọng hơn.
Trong Scikit-learn: Sử dụng SelectFromModel kết hợp với các mô hình có thuộc tính coef_ hoặc feature_importances_
- Ưu điểm: Hiệu quả tính toán hơn phương pháp bao bọc, xét tương tác đặc trưng trong ngữ cảnh của mô hình.
- Nhược điểm: Phụ thuộc vào mô hình cụ thể.
Giảm chiều
Mục tiêu: Biến đổi dữ liệu từ không gian nhiều chiều ban đầu sang không gian ít chiều hơn bằng cách tạo ra đặc trưng mới (là tổ hợp của các đặc trưng cũ), đồng thời giữ lại nhiều thông tin quan trọng nhất có thể.
Phương pháp
Phân tích thành phần chính
- Là kỹ thuật giảm chiều tuyến tính phổ biến nhất. PCA tìm ra các “thành phần chính” là tổ hợp tuyến tính của các đặc trưng gốc.
- Thực hiện sao cho các thành phần này trực giao với nhau và lần lượt giải thích được lượng phương sai lớn nhất trong dữ liệu.
Ví dụ: Trong phân tích dữ liệu tín hiệu mạng 5G với hàng trăm thông số kỹ thuật, PCA có thể tạo ra 10-15 thành phần chính mới giữ lại tới 95% thông tin quan trọng.
- Khi trực quan hóa hai thành phần đầu tiên, các kỹ sư có thể thấy rõ mẫu hình phân cụm của các trạm thu phát bị lỗi so với các trạm hoạt động bình thường.
PCA hoạt động tốt nhất khi các đặc trưng có tương quan tuyến tính. - Nó nhạy cảm với thang đo của dữ liệu, nên cần chuẩn hóa (Standardization) trước khi áp dụng.
- Số lượng thành phần chính cần giữ lại có thể được xác định dựa trên tỷ lệ phương sai tích lũy mong muốn.
Ví dụ: giữ đủ thành phần để giải thích 95% phương sai) hoặc chọn một số lượng cố định (ví dụ: 2 hoặc 3 để trực quan hóa).
- Trong Scikit-learn: Thư viện cung cấp PCA và IncrementalPCA (cho dữ liệu lớn không vừa bộ nhớ).
Các kỹ thuật khác
- Linear Discriminant Analysis (LDA): Phương pháp có giám sát, tối đa hóa sự phân tách giữa các lớp.
Ví dụ: Trong phân loại loại thiết bị IoT dựa trên đặc điểm lưu lượng mạng, LDA có thể tạo ra đặc trưng mới giúp phân biệt rõ ràng giữa các loại thiết bị khác nhau.
- t-Distributed Stochastic Neighbor Embedding (t-SNE): Kỹ thuật phi tuyến, chủ yếu dùng để trực quan hóa.
Ví dụ: Khi phân tích dữ liệu từ hàng ngàn thiết bị IoT, t-SNE có thể biến đổi dữ liệu nhiều chiều thành biểu đồ 2D hoặc 3D, giúp kỹ sư dễ dàng nhận ra các nhóm thiết bị có hành vi bất thường.
- Singular Value Decomposition (SVD): Là nền tảng của PCA, thường được sử dụng trong các hệ thống đề xuất và xử lý ngôn ngữ tự nhiên.
Ví dụ: Trong hệ thống đề xuất nội dung cho người dùng mạng, SVD có thể giảm không gian đặc trưng từ hàng nghìn chiều xuống vài chục chiều, giúp tìm kiếm nhanh hơn mà vẫn duy trì độ chính xác cao.
Khi nào chọn phương pháp nào?
- Việc lựa chọn giữa các kỹ thuật trên phụ thuộc vào mục tiêu cụ thể:
- Nếu cần giữ lại ý nghĩa ban đầu của các đặc trưng (tăng khả năng giải thích),
Lựa chọn đặc trưng phù hợp hơn.
Ví dụ: khi xây dựng hệ thống dự đoán sự cố mạng, việc biết chính xác đặc trưng nào (độ trễ, tỷ lệ mất gói…) ảnh hưởng đến dự đoán sẽ giúp kỹ sư hiểu rõ nguyên nhân và có biện pháp khắc phục hiệu quả.
- Nếu mục tiêu chính là giảm số chiều để cải thiện hiệu suất tính toán hoặc tránh quá khớp mà không quá quan tâm đến việc giải thích các đặc trưng mới.
- Do đó Giảm chiều có thể là lựa chọn tốt.
Ví dụ: khi xây dựng hệ thống phát hiện tấn công mạng thời gian thực, việc giảm chiều dữ liệu có thể giúp mô hình chạy nhanh hơn nhiều lần mà vẫn duy trì tỷ lệ phát hiện chính xác cao.
Phân chia tập dữ liệu
Sau khi đã làm sạch và chuyển đổi dữ liệu, việc phân chia dữ liệu thành các tập con riêng biệt là bước cực kỳ quan trọng giúp đánh giá mô hình một cách khách quan.
Nếu chúng ta đánh giá mô hình trên chính dữ liệu đã dùng để huấn luyện, kết quả sẽ quá lạc quan và không phản ánh đúng hiệu suất thực tế của mô hình khi gặp dữ liệu mới (hiện tượng overfitting).
Các tập dữ liệu chính
Tập huấn luyện
- Đây là phần dữ liệu dùng để “huấn luyện” mô hình học máy.
- Giống như một học sinh cần tài liệu học tập, mô hình sẽ tìm hiểu các mẫu và mối quan hệ từ tập dữ liệu này để tối ưu hóa các tham số nội tại.
Ví dụ: Khi xây dựng mô hình dự đoán giá nhà, tập huấn luyện sẽ chứa thông tin về diện tích, vị trí, số phòng ngủ và giá bán của hàng nghìn căn nhà đã biết giá.
Tập xác thực
- Tập này giúp đánh giá mô hình một cách không thiên vị trong quá trình phát triển và không được sử dụng trực tiếp để huấn luyện.
Mục đích chính
Tinh chỉnh siêu tham số
- Giúp tìm ra các giá trị tối ưu cho những tham số không được học trực tiếp từ dữ liệu.
Ví dụ: Khi xây dựng mô hình phân loại email spam, bạn có thể thử nghiệm nhiều cấu hình khác nhau (như tốc độ học 0.01, 0.001, 0.0001) trên tập huấn luyện và kiểm tra hiệu quả trên tập xác thực để quyết định tốc độ học nào hoạt động tốt nhất.
Lựa chọn mô hình
- Giúp so sánh hiệu suất của các loại mô hình khác nhau.
Ví dụ: Trong một dự án nhận diện khuôn mặt, có thể thử nghiệm cả SVM và Random Forest, sau đó chọn mô hình có độ chính xác cao hơn trên tập xác thực.
Tập kiểm tra
- Đây là “bài kiểm tra cuối cùng” để đánh giá hiệu suất của mô hình đã được chọn và tinh chỉnh xong.
- Tập kiểm tra chứa dữ liệu hoàn toàn mới mà mô hình chưa từng thấy.
- Kết quả trên tập này sẽ dự báo khả năng hoạt động của mô hình trong thực tế.
Ví dụ: Khi xây dựng hệ thống chẩn đoán bệnh từ hình ảnh y tế, tập kiểm tra sẽ gồm những hình ảnh từ bệnh nhân mới, không nằm trong quá trình huấn luyện.
Phương pháp thực hiện
Chia Train/Test
- Cách đơn giản nhất là chia dữ liệu thành 2 phần: training và testing, thường theo tỷ lệ 70/30 hoặc 80/20.
- Tham số shuffle=True đảm bảo dữ liệu được xáo trộn trước khi chia, giúp tránh trường hợp dữ liệu có thứ tự theo thời gian hoặc theo nhóm.
- Tham số random_state=42 giúp kết quả có thể tái lập được.
Chia Train/Validation/Test
Để có tập validation riêng biệt, có thể thực hiện 2 bước:
- Bước 1: Chia thành tập training+validation và tập test (80% và 20%)
- Bước 2: Chia tập training+validation thành tập training và validation
Xử lý dữ liệu mất cân bằng
Trong nhiều bài toán thực tế, các lớp dữ liệu thường không phân bố đều.
Ví dụ: trong phát hiện gian lận thẻ tín dụng, số lượng giao dịch gian lận chỉ chiếm tỷ lệ rất nhỏ (khoảng 0.1%).
Khi chia dữ liệu, cần đảm bảo tỷ lệ các lớp được giữ nguyên bằng tham số stratify:
Cross-Validation
- Thay vì dùng một tập validation cố định, cross-validation chia tập huấn luyện thành k phần bằng nhau (thường k=5 hoặc k=10).
Ví dụ: với k=5, mô hình sẽ được huấn luyện 5 lần, mỗi lần dùng 4 phần để huấn luyện và 1 phần còn lại để đánh giá.
- Điểm mạnh của phương pháp này là mỗi điểm dữ liệu đều được sử dụng cả trong huấn luyện và đánh giá.
Scikit-learn cung cấp nhiều chiến lược CV khác nhau:
- KFold: Chia ngẫu nhiên thành k phần
- StratifiedKFold: Đảm bảo tỷ lệ các lớp trong mỗi phần, quan trọng với dữ liệu mất cân bằng
- TimeSeriesSplit: Phù hợp với dữ liệu chuỗi thời gian, chia theo trình tự thời gian
Lưu ý quan trọng
Phân chia dữ liệu cần thực hiện sau khi đã hoàn thành các bước làm sạch và chuyển đổi cơ bản, nhưng trước khi thực hiện các bước có thể gây rò rỉ thông tin từ tập test/validation vào tập train.
Một sai lầm phổ biến là chuẩn hóa dữ liệu trước khi chia tập. Việc này có thể gây rò rỉ thông tin, vì tham số chuẩn hóa (như giá trị trung bình, độ lệch chuẩn) được tính từ toàn bộ dữ liệu, bao gồm cả tập test.
Giải pháp tốt nhất là sử dụng Pipeline của Scikit-learn
Cách này đảm bảo quá trình chuẩn hóa chỉ học từ dữ liệu training trong mỗi fold, tránh rò rỉ thông tin từ tập validation/test.
Ví dụ: khi phát triển hệ thống dự báo doanh số, nếu bạn tính giá trị trung bình và chuẩn hóa dữ liệu trước khi chia tập, có thể vô tình đưa thông tin từ tương lai (tập test) vào quá trình huấn luyện, dẫn đến dự báo quá lạc quan và không đáng tin cậy khi triển khai.
Phân chia dữ liệu đúng cách là nền tảng đảm bảo mô hình không chỉ hoạt động tốt trên dữ liệu quá khứ mà còn có khả năng dự đoán chính xác trên dữ liệu mới trong tương lai.
Xác thực dữ liệu
Sau khi hoàn tất các khâu làm sạch, chuyển đổi và phân chia, cần thực hiện bước xác thực cuối cùng để đảm bảo dữ liệu đã thực sự sẵn sàng cho việc huấn luyện mô hình.
Bước này đóng vai trò như một “cổng kiểm soát chất lượng” trước khi dữ liệu được đưa vào các thuật toán học máy.
Mục tiêu của xác thực
Kiểm tra tính chính xác và đầy đủ
- Đảm bảo các lỗi đã được sửa chữa, các giá trị thiếu đã được xử lý hợp lý và không còn tồn tại những sai sót rõ ràng trong dữ liệu.
Ví dụ: Một bộ dữ liệu về lưu lượng mạng viễn thông có thể chứa các giá trị âm trong cột “Bandwidth Usage”.
Sau quá trình xác thực, những giá trị này sẽ được phát hiện và xử lý vì băng thông không thể là số âm.
Kiểm tra tính nhất quán
- Đảm bảo dữ liệu tuân theo các định dạng chuẩn, quy ước đặt tên, và sử dụng đơn vị đo lường thống nhất.
Ví dụ: Trong dữ liệu IoT thu thập từ các cảm biến nhiệt độ, một số thiết bị ghi nhận giá trị theo độ C, số khác lại theo độ F.
Quá trình xác thực sẽ giúp phát hiện và thống nhất tất cả về một đơn vị duy nhất.
Kiểm tra sự phù hợp với Schema
- Đảm bảo dữ liệu tuân thủ một lược đồ đã định nghĩa trước, bao gồm kiểu dữ liệu của từng cột, phạm vi giá trị hợp lệ, các ràng buộc và tính duy nhất của các khóa định danh.
Ví dụ: Trong hệ thống quản lý mạng, các địa chỉ IP phải tuân theo định dạng IPv4 hoặc IPv6 cụ thể.
- Quá trình xác thực sẽ kiểm tra xem mọi giá trị trong cột “IP Address” có đúng định dạng không.
Phát hiện dữ liệu bất thường còn sót lại
- Kiểm tra lại các giá trị ngoại lai hoặc các mẫu bất thường có thể đã bị bỏ qua hoặc xuất hiện sau các bước biến đổi.
Ví dụ: Trong dữ liệu về hiệu suất máy chủ web, thời gian phản hồi đột ngột tăng vọt lên 1000ms trong khi giá trị trung bình chỉ khoảng 50ms có thể là dấu hiệu của sự cố mạng hoặc lỗi ghi nhận dữ liệu.
Kiểm tra sự phù hợp với logic nghiệp vụ
- Đảm bảo dữ liệu tuân thủ các quy tắc và logic kinh doanh cụ thể của lĩnh vực ứng dụng.
Ví dụ: Trong dữ liệu về mạng 5G, tỷ lệ kết nối thành công phải luôn nằm trong khoảng 0-100%.
- Nếu phát hiện giá trị 120%, quá trình xác thực sẽ đánh dấu đây là lỗi cần điều tra.
Công cụ và kỹ thuật
Kiểm tra thủ công và trực quan hóa
- Xem xét lại các thống kê mô tả và biểu đồ (biểu đồ phân bố, biểu đồ phân tán, biểu đồ hộp) trên dữ liệu đã xử lý để phát hiện các vấn đề rõ ràng.
Ví dụ: Khi phân tích dữ liệu từ các thiết bị di động, biểu đồ phân bố về thời lượng sử dụng pin có thể hiển thị một nhóm thiết bị có thời lượng bất thường thấp, chỉ ra sự cố tiềm ẩn với một lô sản phẩm cụ thể.
Quy tắc và ràng buộc
- Trong dữ liệu mạng: Độ trễ (latency) phải luôn là số dương
- Trong dữ liệu người dùng: Địa chỉ email phải có định dạng hợp lệ
- Trong dữ liệu thiết bị: Trạng thái thiết bị chỉ có thể là ‘Hoạt động’, ‘Ngưng hoạt động’ hoặc ‘Bảo trì
- Checksums: Sử dụng mã kiểm tra để xác nhận tính toàn vẹn của tệp dữ liệu, đảm bảo không bị thay đổi hoặc lỗi trong quá trình truyền tải.
Ví dụ: Khi truyền dữ liệu giữa các trung tâm dữ liệu viễn thông, checksums MD5 hoặc SHA-256 được tính toán trước và sau khi truyền để đảm bảo không có byte nào bị thay đổi.
Công cụ tự động hóa
Các thư viện và nền tảng chuyên dụng giúp tự động hóa quá trình xác thực, đặc biệt hữu ích trong các quy trình dữ liệu liên tục:
TensorFlow Data Validation (TFDV)
Một công cụ mạnh mẽ từ Google, thuộc hệ sinh thái TFX. TFDV có thể:
Tính toán thống kê mô tả chi tiết cho dữ liệu
- Tự động suy luận ra một schema dựa trên thống kê. Schema này định nghĩa kiểu dữ liệu, sự hiện diện, số lượng giá trị, và miền giá trị cho từng đặc trưng
- Phát hiện các bất thường bằng cách so sánh thống kê của dữ liệu mới với schema đã được phê duyệt
- Phát hiện sự thay đổi phân phối dữ liệu theo thời gian và sự lệch giữa dữ liệu huấn luyện và phục vụ
- Cung cấp các công cụ trực quan hóa để khám phá dữ liệu và phát hiện bất thường
Ví dụ: Một công ty viễn thông sử dụng TFDV để tự động phát hiện khi tỷ lệ cuộc gọi thất bại trong dữ liệu mới bắt đầu tăng đột biến so với dữ liệu lịch sử, giúp phát hiện sớm sự cố mạng tiềm ẩn.
- Great Expectations: Công cụ này giúp người dùng định nghĩa các “kỳ vọng” về dữ liệu dưới dạng mã lệnh.
- Pandera: Một thư viện Python tích hợp với Pandas, giúp định nghĩa các schema kiểm tra trực tiếp bằng mã Python để xác thực cấu trúc và nội dung của
DataFrames
Các thư viện khác: Cerberus, Pydantic, Marshmallow cũng cung cấp các chức năng xác thực schema mạnh mẽ.
Xác thực dữ liệu không chỉ là một bước kiểm tra cuối cùng mà nên được tích hợp liên tục vào các quy trình dữ liệu, đặc biệt trong môi trường MLOps.
Điều này giúp đảm bảo chất lượng dữ liệu được duy trì theo thời gian và phát hiện sớm các vấn đề tiềm ẩn trước khi chúng ảnh hưởng đến hiệu suất của mô hình học máy trong các ứng dụng viễn thông và công nghệ thông tin.
Lưu trữ dữ liệu
Sau quá trình làm sạch, biến đổi và xác thực, dữ liệu cần được bố trí lưu trữ hợp lý để sẵn sàng phục vụ việc huấn luyện mô hình hoặc các mục tiêu sử dụng khác.
Chọn giải pháp lưu trữ phù hợp sẽ phụ thuộc vào nhiều yếu tố như khối lượng dữ liệu, tần suất truy xuất, yêu cầu về hiệu năng, và cấu trúc tổng thể của hệ thống.
Các phương thức lưu trữ thông dụng hiện nay gồm:
Tệp tin
- Lưu dữ liệu dưới dạng tệp đơn giản như CSV, Parquet, JSON, TFRecord.
- Định dạng Parquet thường được ưa chuộng khi xử lý dữ liệu lớn nhờ khả năng tối ưu không gian lưu trữ và hỗ trợ truy vấn theo cột hiệu quả.
Ví dụ: Một dự án phân tích lưu lượng mạng viễn thông với hàng triệu bản ghi mỗi ngày có thể tiết kiệm đến 75% không gian lưu trữ và tăng tốc độ truy vấn lên 3-4 lần khi chuyển từ CSV sang Parquet, nhờ khả năng nén và lưu trữ theo cột của Parquet.
Cơ sở dữ liệu
- Tổ chức dữ liệu có cấu trúc trong các hệ quản trị cơ sở dữ liệu quan hệ (SQL) như PostgreSQL, MySQL hoặc NoSQL như MongoDB, Cassandra.
Ví dụ: Một ứng dụng IoT giám sát thiết bị viễn thông có thể sử dụng MongoDB để lưu trữ dữ liệu từ cảm biến với cấu trúc linh hoạt.
- Tuy nhiên thông tin người dùng và cấu hình hệ thống được lưu trong PostgreSQL để đảm bảo tính toàn vẹn dữ liệu.
Kho dữ liệu
- Hệ thống được tối ưu hóa giúp lưu trữ và truy vấn dữ liệu có cấu trúc, đã qua xử lý, nhằm phục vụ mục đích phân tích và tạo báo cáo.
Ví dụ: Một nhà mạng viễn thông có thể sử dụng Amazon Redshift hoặc Snowflake để tập hợp và phân tích dữ liệu từ nhiều nguồn như hệ thống thanh toán, sử dụng dịch vụ, và thông tin khách hàng.
- Do đó giúp tạo ra các báo cáo tổng hợp về hiệu suất kinh doanh và hành vi người dùng.
Hồ dữ liệu
- Kho lưu trữ tập trung hỗ trợ lưu giữ khối lượng dữ liệu khổng lồ ở nhiều định dạng khác nhau (thô, có cấu trúc, phi cấu trúc).
- Dữ liệu từ hồ dữ liệu thường cần được xử lý thêm trước khi đưa vào mô hình học máy.
Ví dụ: Microsoft triển khai Azure Data Lake để lưu trữ hàng petabyte dữ liệu từ các dịch vụ đám mây, bao gồm log hệ thống, thông tin người dùng, và dữ liệu từ các ứng dụng khác nhau.
- Khi cần phát triển mô hình dự đoán lỗi hệ thống, họ có thể trích xuất và xử lý dữ liệu cụ thể từ hồ dữ liệu này.
Kho đặc trưng
- Đây là giải pháp lưu trữ chuyên biệt dành cho các đặc trưng học máy đã được tính toán và chuẩn bị sẵn.
- Kho đặc trưng được tối ưu để phục vụ dữ liệu trong cả môi trường offline (huấn luyện) và online (dự đoán thời gian thực).
Ví dụ: Công ty viễn thông có thể sử dụng Feast (Feature Store) để quản lý hàng nghìn đặc trưng khách hàng như lịch sử sử dụng dịch vụ, mô hình thanh toán, và hành vi cuộc gọi.
Khi triển khai mô hình dự đoán khách hàng rời mạng, họ có thể dễ dàng tái sử dụng các đặc trưng này mà không cần tính toán lại, giúp rút ngắn thời gian phát triển từ vài tháng xuống còn vài tuần.
Bên cạnh lưu trữ dữ liệu chính cần đảm bảo lưu giữ cả siêu dữ liệu (metadata) và tài liệu (documentation) đi kèm.
Siêu dữ liệu mô tả nguồn gốc, ý nghĩa, kiểu dữ liệu, các phép biến đổi đã áp dụng, và chỉ số chất lượng của dữ liệu.
Tài liệu hóa quy trình chuẩn bị dữ liệu giúp đảm bảo tính minh bạch, khả năng tái tạo và thuận tiện khi tái sử dụng dữ liệu cho các mục đích khác hoặc bởi các thành viên khác trong nhóm.
Nhiều công cụ quản trị dữ liệu và danh mục dữ liệu (data catalog) như Collibra, Alation hỗ trợ hiệu quả việc quản lý siêu dữ liệu này.
Tổ chức lưu trữ dữ liệu một cách khoa học không chỉ giúp tiết kiệm thời gian và chi phí mà còn đảm bảo dữ liệu đã chuẩn bị có thể được truy xuất, quản lý và sử dụng hiệu quả trong suốt vòng đời của dự án AI.
Đặc biệt với các dự án công nghệ lớn, xây dựng chiến lược lưu trữ phù hợp ngay từ đầu sẽ tạo nền tảng vững chắc cho các bước phân tích và triển khai tiếp theo.
Công cụ chuẩn bị dữ liệu
Hệ sinh thái Python
Python hiện đứng đầu trong các ngôn ngữ lập trình dành cho khoa học dữ liệu và trí tuệ nhân tạo.
Thành công này chủ yếu nhờ vào kho tàng thư viện mã nguồn mở đa dạng và mạnh mẽ.
Vì thế cung cấp nhiều công cụ linh động đáp ứng gần như mọi nhu cầu xử lý dữ liệu.
Pandas
- Đây là thư viện nền tảng trong việc thao tác và phân tích dữ liệu dạng bảng (DataFrames) trên Python.
- Pandas mang đến các cấu trúc dữ liệu hiệu suất cao cùng bộ công cụ phân tích mạnh mẽ, giúp việc đọc, ghi, làm sạch dữ liệu trở nên đơn giản và hiệu quả.
Ví dụ: khi xử lý dữ liệu khách hàng từ hệ thống CRM, có thể dễ dàng loại bỏ các giá trị thiếu với lệnh df.fillna() hoặc df.dropna(), nhận diện và xử lý các bản ghi trùng lặp thông qua df.duplicated() hoặc df.drop_duplicates().
- Pandas còn hỗ trợ chuyển đổi kiểu dữ liệu với df.astype() và áp dụng các hàm tùy chỉnh qua df.apply().
NumPy
- Cung cấp cấu trúc mảng đa chiều (ndarray) với hiệu suất vượt trội cùng các hàm toán học căn bản.
- NumPy là nền móng cho nhiều thư viện khoa học dữ liệu khác như Pandas và Scikit-learn.
- Thư viện đóng vai trò then chốt trong các phép tính số học và đại số tuyến tính trong quá trình xử lý dữ liệu.
Ví dụ: khi phân tích dữ liệu từ cảm biến IoT, NumPy giúp tính toán nhanh chóng các giá trị thống kê như trung bình, độ lệch chuẩn hay thực hiện các phép biến đổi ma trận trên hàng nghìn điểm dữ liệu.
Scikit-learn
Là thư viện học máy toàn diện và được sử dụng rộng rãi nhất trong Python.
Ngoài các thuật toán học máy, Scikit-learn còn cung cấp module preprocessing và feature_selection vô cùng mạnh mẽ với đầy đủ công cụ phục vụ hầu hết các bước chuẩn bị dữ liệu:
Xử lý giá trị thiếu
- SimpleImputer giúp thay thế giá trị thiếu bằng giá trị trung bình, trung vị hoặc giá trị phổ biến nhất.
- KNNImputer ước tính giá trị thiếu dựa trên k điểm dữ liệu gần nhất.
Ví dụ: trong dữ liệu y tế, KNNImputer có thể ước tính chỉ số huyết áp thiếu dựa trên các bệnh nhân có đặc điểm tương tự.
Phát hiện ngoại lệ
- Các thuật toán như LocalOutlierFactor xác định điểm dữ liệu bất thường bằng cách so sánh mật độ cục bộ của điểm đó với láng giềng.
- IsolationForest tách biệt các ngoại lệ bằng cách phân vùng ngẫu nhiên.
- OneClassSVM sử dụng máy vector hỗ trợ để nhận diện điểm dữ liệu khác biệt.
Ví dụ: phát hiện giao dịch gian lận trong dữ liệu tài chính.
Chuẩn hóa dữ liệu
- StandardScaler chuyển dữ liệu về dạng phân phối chuẩn (trung bình 0, độ lệch 1).
- MinMaxScaler đưa dữ liệu về khoảng [0,1].
- RobustScaler ít bị ảnh hưởng bởi ngoại lệ.
- Normalizer chuẩn hóa mỗi mẫu thành vector đơn vị.
Ví dụ: trước khi áp dụng thuật toán phân cụm K-means cho dữ liệu khách hàng, việc chuẩn hóa các đặc trưng như tuổi và thu nhập sẽ ngăn đặc trưng có giá trị lớn chi phối kết quả.
Mã hóa biến phân loại
- LabelEncoder chuyển nhãn thành giá trị số từ 0 đến n-1.
- OrdinalEncoder tương tự nhưng dành cho nhiều cột.
- OneHotEncoder tạo các cột nhị phân mới cho mỗi giá trị phân loại,
- TargetEncoder mã hóa dựa trên biến mục tiêu.
Ứng dụng: khi xây dựng mô hình dự đoán giá bất động sản, các biến như “quận/huyện” cần được mã hóa phù hợp trước khi đưa vào mô hình.
Kỹ thuật đặc trưng
- PolynomialFeatures tạo ra các đặc trưng mới từ tổ hợp đa thức của đặc trưng gốc.
- KBinsDiscretizer chuyển biến liên tục thành biến phân loại theo khoảng.
Ví dụ: trong mô hình dự báo tiêu thụ điện năng, tạo đặc trưng “giờ_trong_ngày * ngày_trong_tuần” có thể giúp nắm bắt tốt hơn các mẫu tiêu thụ theo thời gian.
Giảm chiều dữ liệu
- PCA (Phân tích thành phần chính) giảm số chiều dữ liệu trong khi giữ lại nhiều thông tin nhất có thể.
- IncrementalPCA thích hợp với dữ liệu lớn không vừa bộ nhớ.
Ứng dụng: giảm hàng trăm đặc trưng từ dữ liệu hình ảnh y tế xuống còn 20-30 thành phần chính trước khi huấn luyện mô hình.
Lựa chọn đặc trưng
- VarianceThreshold loại bỏ đặc trưng có phương sai thấp, SelectKBest chọn k đặc trưng tốt nhất dựa trên các tiêu chí thống kê.
- RFE và RFECV loại bỏ đặc trưng theo cách đệ quy.
- SelectFromModel chọn đặc trưng dựa trên mô hình.
- SequentialFeatureSelector thực hiện lựa chọn đặc trưng tiến/lùi.
Ví dụ: trong dự án phân tích dữ liệu gene, RFECV có thể giúp xác định một tập nhỏ các gene có tương quan cao với sự phát triển của bệnh.
Phân chia dữ liệu & đánh giá
- train_test_split tách dữ liệu thành tập huấn luyện và kiểm tra.
- Các bộ lặp cross-validation giúp đánh giá mô hình một cách toàn diện.
Ứng dụng: khi xây dựng hệ thống dự đoán chất lượng không khí, việc phân chia dữ liệu hợp lý giúp đảm bảo mô hình hoạt động tốt với dữ liệu mới.
Hệ sinh thái Python mang đến khả năng tùy biến tối đa.
Do đó giúp các nhà khoa học dữ liệu và kỹ sư học máy có thể điều chỉnh quy trình chuẩn bị dữ liệu một cách sâu sắc theo từng bài toán cụ thể.
Ví dụ: một dự án thực tế như dự báo nhu cầu điện năng có thể kết hợp nhiều thư viện.
Pandas để nhập và làm sạch dữ liệu lịch sử.
NumPy để tính toán các đặc trưng thời gian.
Scikit-learn để chuẩn hóa dữ liệu và lựa chọn các đặc trưng quan trọng nhất ảnh hưởng đến nhu cầu điện.
PySpark
Khi làm việc với dữ liệu có kích thước khổng lồ vượt quá khả năng xử lý của một máy tính đơn (Big Data), Apache Spark với giao diện lập trình Python, PySpark trở thành giải pháp hàng đầu được các chuyên gia lựa chọn.
PySpark hỗ trợ thực hiện các thao tác xử lý dữ liệu trên nhiều máy tính cùng lúc (phân tán), mang đến khả năng mở rộng vượt trội.
Spark DataFrame
- Cung cấp cấu trúc dữ liệu tương tự như Pandas DataFrame nhưng được tối ưu hóa đặc biệt cho môi trường xử lý phân tán.
Ví dụ: khi phân tích dữ liệu từ hệ thống IoT với hàng tỷ bản ghi cảm biến, Spark DataFrame có thể chia nhỏ dữ liệu thành các phân vùng và xử lý song song trên nhiều máy tính.
- Cú pháp như df.filter(), df.groupBy().agg() hoặc df.join() tương tự với Pandas nhưng hoạt động hiệu quả trên dữ liệu lớn hơn hàng nghìn lần.
MLlib
Đây là thư viện học máy tích hợp của Spark, cung cấp đa dạng công cụ tiền xử lý và kỹ thuật đặc trưng tương thích với Spark DataFrames.
MLlib mang đến các chức năng tương tự như trong Scikit-learn nhưng được thiết kế để vận hành trên môi trường phân tán:
Tokenizer
- Phân tách văn bản thành các từ riêng lẻ.
Ví dụ: khi xử lý hàng triệu bài đánh giá sản phẩm, Tokenizer giúp tách các bình luận thành từng từ để phân tích tần suất và ngữ cảnh.
StandardScaler & MinMaxScaler
- Chuẩn hóa các đặc trưng số.
Ví dụ: khi xây dựng mô hình dự báo giá điện theo thời gian thực trên dữ liệu lớn, chuẩn hóa các đặc trưng như nhiệt độ, mức tiêu thụ lịch sử và giá nhiên liệu trở nên quan trọng.
Bucketizer
- Chuyển đổi giá trị liên tục thành các khoảng rời rạc.
Ví dụ: phân chia khách hàng theo các nhóm tuổi hoặc phân loại giao dịch theo các khoảng giá trị.
PCA
- Giảm chiều dữ liệu trong môi trường phân tán.
Ví dụ: khi phân tích dữ liệu gene quy mô lớn với hàng nghìn đặc trưng, PCA giúp giảm xuống còn vài chục thành phần chính mà vẫn giữ được thông tin quan trọng.
VectorAssembler
- Kết hợp nhiều cột đặc trưng thành một vector đặc trưng duy nhất.
- Đây là bước cần thiết trước khi đưa dữ liệu vào các thuật toán học máy.
Ví dụ: trong hệ thống phát hiện gian lận ngân hàng thời gian thực, VectorAssembler giúp tổng hợp hàng trăm đặc trưng về giao dịch, lịch sử và hành vi người dùng thành một vector đầu vào.
CountVectorizer, HashingTF, IDF
- Bộ công cụ xử lý ngôn ngữ tự nhiên phân tán.
- Trong thực tế, khi xây dựng hệ thống phân loại văn bản tự động cho hàng triệu tài liệu.
- Các công cụ này giúp chuyển đổi văn bản thành biểu diễn số học mà mô hình học máy có thể hiểu được.
PySpark trở thành công cụ không thể thiếu đối với các dự án AI/ML đòi hỏi xử lý dữ liệu quy mô lớn.
Ví dụ: một công ty viễn thông có thể sử dụng PySpark để phân tích hàng petabyte dữ liệu cuộc gọi và tin nhắn, xây dựng các mô hình dự đoán tình trạng rời mạng của khách hàng.
Nhờ khả năng xử lý phân tán, thời gian huấn luyện mô hình có thể giảm từ nhiều ngày xuống còn vài giờ.
Vì thế giúp đội ngũ phát triển triển khai giải pháp nhanh chóng hơn và cập nhật mô hình thường xuyên hơn với dữ liệu mới.
Công cụ xác thực chuyên dụng
Để đảm bảo dữ liệu luôn đạt chất lượng cao và tính nhất quán một cách tự động và liên tục.
Trong các quy trình MLOps, các công cụ xác thực dữ liệu chuyên biệt đóng vai trò vô cùng quan trọng:
TensorFlow Data Validation (TFDV)
- Là thành phần quan trọng trong hệ sinh thái TensorFlow Extended (TFX), TFDV tự động tính toán các chỉ số thống kê mô tả, tạo ra sơ đồ cấu trúc dữ liệu.
- Hơn nữa nhận diện các bất thường so với sơ đồ và đặc biệt là phát hiện hiện tượng trôi dạt (drift) và lệch (skew) giữa các tập dữ liệu khác nhau.
Ví dụ: một công ty viễn thông sử dụng TFDV trong hệ thống dự đoán khả năng hủy dịch vụ của khách hàng.
Khi dữ liệu huấn luyện có đặc điểm tuổi thuê bao phân bố từ 0-60 tháng, nhưng dữ liệu phục vụ thực tế chứa giá trị lên đến 120 tháng.
Khi đó TFDV sẽ nhanh chóng cảnh báo về sự khác biệt này, giúp đội ngũ kỹ thuật điều chỉnh mô hình kịp thời.
Great Expectations
- Công cụ này giúp định nghĩa các “kỳ vọng” về dữ liệu (chẳng hạn như: cột không được phép có giá trị rỗng.
- Giá trị phải nằm trong khoảng xác định) dưới dạng mã lệnh, thực hiện kiểm tra tự động.
- Do đó tạo ra các báo cáo chi tiết về chất lượng dữ liệu.
Ví dụ: trong hệ thống phân tích dữ liệu bán lẻ, Great Expectations có thể kiểm tra tự động hàng ngày xem giá trị doanh thu có nằm trong khoảng hợp lý không, tỷ lệ giao dịch bị hủy có vượt ngưỡng bình thường không.
Vì vậy tạo ra các báo cáo dễ hiểu cho cả đội kỹ thuật lẫn nhóm kinh doanh.
Pandera
- Tích hợp chặt chẽ với Pandas, Pandera hỗ trợ định nghĩa và kiểm tra cấu trúc của DataFrame một cách linh hoạt thông qua mã Python.
Ví dụ: trong dự án phân tích dữ liệu y tế, Pandera có thể xác định rằng cột ‘nhiệt độ cơ thể’ phải nằm trong khoảng 35-42°C, cột ‘nhóm máu’ chỉ được phép chứa các giá trị ‘A’, ‘B’, ‘AB’, ‘O’ và cột ‘mã bệnh nhân’ phải tuân theo một định dạng cụ thể.
- Mọi vi phạm sẽ được phát hiện ngay khi dữ liệu được đưa vào hệ thống.
Các thư viện khác
- Cerberus, Pydantic, Marshmallow, Voluptuous, Validr cung cấp các chức năng xác thực cấu trúc và dữ liệu mạnh mẽ.
Ví dụ: một tổ chức tài chính có thể sử dụng Pydantic để xác thực dữ liệu đầu vào từ nhiều nguồn khác nhau trước khi đưa vào mô hình đánh giá rủi ro tín dụng.
- Khi nhận được dữ liệu từ nguồn thứ ba với định dạng không đúng chuẩn, Pydantic không chỉ báo lỗi mà còn cung cấp thông tin chính xác về vị trí và nguyên nhân của lỗi, giúp rút ngắn thời gian khắc phục.
Những công cụ này góp phần tự động hóa việc giám sát chất lượng dữ liệu.
Đây là một yếu tố then chốt để duy trì hiệu suất và độ tin cậy của các mô hình AI trong môi trường thực tế.
Ví dụ: công ty thương mại điện tử triển khai hệ thống gợi ý sản phẩm phải đối mặt với sự thay đổi hành vi người dùng trong mùa lễ hội.
Bằng cách tích hợp TFDV và Great Expectations vào quy trình MLOps, hệ thống có thể tự động phát hiện sự thay đổi trong mẫu mua sắm, cảnh báo đội kỹ thuật, và kích hoạt quy trình đào tạo lại mô hình với dữ liệu mới.
Vì thế đảm bảo độ chính xác của các đề xuất ngay cả khi hành vi người dùng thay đổi đột ngột.
Nền tảng đám mây
Các nhà cung cấp dịch vụ đám mây hàng đầu như AWS, Google Cloud và Microsoft Azure đều mang đến các nền tảng Học máy toàn diện, với nhiều công cụ và dịch vụ tích hợp sẵn hỗ trợ quá trình chuẩn bị dữ liệu.
AWS SageMaker Data Wrangler
- Cung cấp giao diện trực quan hiệu quả cao giúp người dùng kết nối tới đa dạng nguồn dữ liệu (S3, Athena, Redshift, Snowflake, Databricks…).
- Vì thế hỗ trợ khám phá, làm sạch và biến đổi dữ liệu (dạng bảng, văn bản, hình ảnh) với hơn 300 phép biến đổi có sẵn hoặc tùy chỉnh thông qua PySpark, SQL, Pandas.
Ví dụ: một công ty fintech có thể kết nối Data Wrangler với kho dữ liệu S3 chứa hàng triệu hồ sơ vay tín dụng, phát hiện và xử lý giá trị ngoại lai.
- Ngoài ra còn chuẩn hóa các đặc trưng tài chính và áp dụng mã hóa one-hot cho các biến phân loại.
- Tất cả đều thực hiện qua giao diện kéo, thả mà không cần viết nhiều mã lệnh. Data Wrangler còn tạo báo cáo chất lượng dữ liệu tự động, trực quan hóa các mối tương quan.
- Hơn nữa thậm chí ước tính hiệu suất mô hình thông qua tính năng Quick Model.
- Quy trình làm việc có thể tích hợp vào SageMaker Pipelines hoặc xuất ra dưới dạng notebook/script.
- Ưu điểm nổi bật là giảm đáng kể thời gian chuẩn bị dữ liệu và giao diện thân thiện, ít đòi hỏi về code.
Google Cloud Vertex AI
- Là nền tảng thống nhất cho học máy của Google.
- Nó bao gồm Vertex AI Workbench (môi trường notebook dựa trên Jupyter) tích hợp sâu với các dịch vụ dữ liệu của Google Cloud như BigQuery và Cloud Storage kèm khả năng vận hành Spark không cần quản lý máy chủ (Dataproc Serverless) cho dữ liệu lớn.
Ví dụ: công ty bán lẻ trực tuyến có thể kết nối trực tiếp với dữ liệu giao dịch trong BigQuery, thực hiện phân tích Spark phân tán để tính toán các chỉ số gắn bó của khách hàng, và chuẩn bị đặc trưng cho mô hình dự đoán mua sắm.
- Tất cả trong cùng một môi trường.
- Vertex AI còn cung cấp Managed Datasets để tổ chức dữ liệu cho AutoML, Vertex AI Feature Store để quản lý và phục vụ đặc trưng trực tiếp từ BigQuery.
- Vertex AI Pipelines để điều phối các quy trình ML, bao gồm các bước chuẩn bị dữ liệu.
Azure Machine Learning (Azure ML)
- Mang đến nhiều lựa chọn đa dạng cho công đoạn chuẩn bị dữ liệu.
- Azure ML Designer là giao diện kéo, thả, ít hoặc không cần code.
- Do đógiúp xây dựng các quy trình ML, bao gồm các thành phần tiền xử lý dữ liệu có sẵn.
Ví dụ: một doanh nghiệp sản xuất có thể sử dụng Azure ML Designer để kết nối với dữ liệu IoT từ các cảm biến nhà máy, lọc nhiễu, phát hiện ngoại lai.
Do đó tạo đặc trưng thời gian, tất cả thông qua giao diện trực quan.
- Azure ML cũng tích hợp chặt chẽ với Azure Data Factory (ADF) cho các tác vụ trích xuất, biến đổi, tải (ETL) dữ liệu phức tạp từ nhiều nguồn.
- Nền tảng này cũng cung cấp Azure ML Feature Store để quản lý và tái sử dụng đặc trưng và hỗ trợ cách tiếp cận ưu tiên code thông qua Python SDK.
- Người dùng có thể sử dụng các máy tính ảo hoặc tích hợp với Azure Synapse Analytics Spark pools để xử lý dữ liệu hiệu quả.
Các nền tảng đám mây mang lại lợi thế về tích hợp toàn diện, khả năng mở rộng và tự động quản lý hạ tầng.
Ví dụ: một startup có thể nhanh chóng triển khai cơ sở hạ tầng ML mạnh mẽ mà không cần đầu tư vào phần cứng đắt tiền hay thuê đội ngũ vận hành lớn.
Các công cụ trực quan giúp dân chủ hóa quá trình chuẩn bị dữ liệu.
Như vậy tạo điều kiện cho các chuyên gia không có nền tảng lập trình sâu vẫn có thể tham gia vào quá trình phát triển mô hình.
Tuy nhiên, các công cụ này đôi khi hạn chế về khả năng tùy biến so với việc viết code trực tiếp.
Ví dụ: khi cần áp dụng thuật toán xử lý đặc thù cho ngành y tế, sử dụng code Python thuần túy có thể linh hoạt hơn các thành phần có sẵn trong các nền tảng đám mây.
Công cụ ETL và ELT
Các công cụ Extract, Transform, Load (ETL) và Extract, Load, Transform (ELT) đóng vai trò then chốt trong di chuyển và định hình dữ liệu từ các hệ thống nguồn (OLTP, ứng dụng SaaS, tệp nhật ký) đến các hệ thống đích phục vụ phân tích và AI (Kho dữ liệu, Hồ dữ liệu).
Công cụ ETL
- Trích xuất dữ liệu, thực hiện các phép biến đổi (làm sạch, chuẩn hóa, kết hợp) trên một máy chủ xử lý riêng biệt.
- Sau đó nạp dữ liệu đã biến đổi vào kho dữ liệu đích.
- Phù hợp khi cấu trúc đích đã được xác định rõ ràng và cần đảm bảo chất lượng dữ liệu trước khi nạp.
Ví dụ: một ngân hàng sử dụng ETL để tổng hợp dữ liệu từ nhiều hệ thống giao dịch khác nhau, loại bỏ thông tin nhạy cảm, chuẩn hóa định dạng ngày tháng và tiền tệ, sau đó mới đưa vào kho dữ liệu phân tích khách hàng.
- Quá trình này đảm bảo dữ liệu sạch và nhất quán trước khi bất kỳ phân tích nào được thực hiện.
Công cụ ELT
- Trích xuất dữ liệu và nạp trực tiếp vào hệ thống đích (thường là Hồ dữ liệu hoặc Kho dữ liệu Đám mây có khả năng xử lý mạnh mẽ).
- Sau đó mới thực hiện các phép biến đổi khi cần thiết cho các mục đích sử dụng cụ thể.
- ELT thường linh động hơn cho AI vì nó lưu giữ dữ liệu thô, hỗ trợ nhiều loại biến đổi và phân tích khác nhau sau này.
Ví dụ: một công ty truyền thông xã hội sử dụng ELT để nạp hàng petabyte dữ liệu tương tác người dùng vào hồ dữ liệu.
- Sau đó áp dụng các biến đổi khác nhau tùy theo nhu cầu phân tích.
- Đội phát triển sản phẩm có thể phân tích hành vi điều hướng, trong khi đội quảng cáo quan tâm đến mẫu hình nhấp chuột.
Kết hợp cả ELT và ETL
Airbyte
- Cung cấp hơn 300 kết nối có sẵn đến các nguồn dữ liệu phổ biến.
- Ví dụ: một startup có thể nhanh chóng thiết lập quy trình đồng bộ dữ liệu từ Salesforce, HubSpot và Zendesk vào Snowflake mà không cần viết mã nguồn phức tạp.
Fivetran
- Nổi tiếng với khả năng tự động hóa cao và bảo trì tối thiểu.
Ví dụ thực tế: một công ty thương mại điện tử sử dụng Fivetran để tự động đồng bộ dữ liệu từ nhiều nền tảng bán hàng, thanh toán và vận chuyển vào BigQuery, với các kết nối tự điều chỉnh khi API nguồn thay đổi.
Talend
- Mang đến môi trường phát triển trực quan cho các luồng ETL, ELT phức tạp.
Ví dụ: công ty sản xuất sử dụng Talend để hợp nhất và chuyển đổi dữ liệu từ hệ thống MES (Manufacturing Execution System), ERP và IoT vào nền tảng phân tích, hỗ trợ bảo trì dự đoán.
Informatica
- Giải pháp doanh nghiệp toàn diện với khả năng xử lý dữ liệu phức tạp ở quy mô lớn.
Ví dụ: một tập đoàn y tế đa quốc gia sử dụng Informatica để tích hợp dữ liệu bệnh nhân từ hàng trăm cơ sở y tế với các hệ thống khác nhau.
- Do đó đảm bảo tuân thủ quy định ngành và bảo mật.
Matillion
- Được xây dựng đặc biệt cho kho dữ liệu đám mây.
Ví dụ: một công ty phân tích thể thao sử dụng Matillion để biến đổi dữ liệu thô từ nhiều nguồn thành các tập dữ liệu phân tích sẵn sàng trên Redshift, phục vụ cho ứng dụng thống kê trận đấu thời gian thực.
AWS Glue, Azure Data Factory, Google Cloud Dataflow/Dataprep
- Các giải pháp tích hợp sâu trong hệ sinh thái đám mây tương ứng.
Ví dụ: một công ty tài chính đã chuyển toàn bộ cơ sở hạ tầng lên AWS có thể sử dụng AWS Glue để xây dựng quy trình ETL không máy chủ.
- Tự động kích hoạt khi có dữ liệu mới trong S3 và biến đổi nó thành định dạng phù hợp cho các mô hình dự báo thị trường.
Lựa chọn công cụ ETL/ELT phụ thuộc vào nhiều yếu tố như nguồn và đích dữ liệu, khối lượng và tốc độ dữ liệu (theo lô hay thời gian thực).
Ngoài ra còn phụ thuộc vào độ phức tạp của phép biến đổi, ngân sách, và yêu cầu về giao diện ít, không cần mã nguồn hay cách tiếp cận dựa trên mã nguồn.
Ví dụ: một doanh nghiệp nhỏ với nhu cầu đơn giản có thể chọn Airbyte mã nguồn mở với giao diện thân thiện, trong khi một tập đoàn tài chính với yêu cầu tuân thủ nghiêm ngặt và khối lượng dữ liệu khổng lồ có thể cần đến giải pháp doanh nghiệp như Informatica hoặc nền tảng đám mây chuyên dụng.
Kho đặc trưng
Kho đặc trưng là thành phần kiến trúc ngày càng quan trọng trong hệ sinh thái MLOps hiện đại.
Kho đặc trưng đóng vai trò như một lớp quản lý dữ liệu chuyên biệt cho Học máy.
Nó hoạt động như kho lưu trữ trung tâm để định nghĩa, tính toán, lưu trữ, quản lý phiên bản, chia sẻ.
Do đó cung cấp các đặc trưng đã được chuẩn bị cho cả quá trình huấn luyện (offline) và dự đoán (online).
Các lợi ích chính của Feature Store bao gồm:
Tính nhất quán
- Đảm bảo logic tính toán đặc trưng giống nhau cho cả huấn luyện và triển khai.
- Vì thế giúp giải quyết vấn đề nghiêm trọng là sự lệch huấn luyện-triển khai (training-serving skew).
Ví dụ: một công ty fintech phát triển mô hình chấm điểm tín dụng sẽ gặp vấn đề nếu cách tính “tỷ lệ nợ trên thu nhập” khác nhau giữa quá trình huấn luyện và khi ứng dụng thực tế.
Kho đặc trưng đảm bảo công thức tính toán giống nhau ở cả hai môi trường.
Tái sử dụng
- Hỗ trợ các đặc trưng được định nghĩa và tính toán một lần.
- Sau đó được sử dụng lại bởi nhiều mô hình và nhiều nhóm khác nhau trong tổ chức, tránh lãng phí công sức và tài nguyên tính toán.
Ví dụ: đặc trưng “giá trị khách hàng trọn đời” được tính toán phức tạp từ nhiều nguồn dữ liệu có thể được tái sử dụng cho các mô hình dự đoán rời mạng, đề xuất sản phẩm và phân khúc khách hàng, thay vì mỗi nhóm phải tính toán lại.
Tăng tốc độ phát triển
- Giảm thời gian cần thiết cho kỹ thuật đặc trưng trong các dự án mới bằng cách tận dụng những đặc trưng đã có sẵn.
Ví dụ: một nhóm phát triển mô hình mới có thể tiết kiệm nhiều tuần làm việc bằng cách sử dụng hàng trăm đặc trưng đã được xác thực từ kho thay vì tạo lại từ đầu.
Cải thiện cộng tác
- Tạo ra một nguồn đáng tin cậy duy nhất cho các đặc trưng.
- Do đó giúp các nhóm khoa học dữ liệu và kỹ thuật học máy dễ dàng chia sẻ và hiểu công việc của nhau.
Ví dụ: trong một tổ chức tài chính lớn, nhóm phân tích rủi ro và nhóm tiếp thị đều có thể sử dụng cùng một định nghĩa về “khả năng thanh toán của khách hàng”, đảm bảo tính nhất quán trong toàn doanh nghiệp.
Quản trị và theo dõi
- Cung cấp khả năng quản lý phiên bản đặc trưng, theo dõi nguồn gốc của đặc trưng (từ dữ liệu thô đến đặc trưng cuối cùng) và quản lý metadata, hỗ trợ việc quản trị dữ liệu và tuân thủ quy định.
Ví dụ: trong lĩnh vực y tế, kho đặc trưng có thể ghi lại đầy đủ cách tính toán chỉ số “nguy cơ bệnh tim”, truy xuất nguồn dữ liệu gốc, và người chịu trách nhiệm tạo ra đặc trưng, đáp ứng các yêu cầu kiểm toán.
Phục vụ hiệu quả
- Cung cấp cơ chế phục vụ đặc trưng với độ trễ thấp cho các ứng dụng dự đoán thời gian thực và phục vụ hiệu quả cho các tác vụ huấn luyện hoặc dự đoán hàng loạt.
Ví dụ: một nền tảng thương mại điện tử cần tính toán hàng trăm đặc trưng cho mô hình đề xuất sản phẩm trong vài mili giây khi người dùng duyệt web.
Kho đặc trưng cung cấp bộ nhớ đệm hiệu suất cao giúp đáp ứng yêu cầu này.
Các nền tảng đám mây lớn đều cung cấp Feature Store tích hợp (AWS SageMaker Feature Store, Google Vertex AI Feature Store, Azure ML Feature Store).
Ngoài ra còn có các giải pháp mã nguồn mở (Feast, Hopsworks) và thương mại (Tecton).
Ví dụ: một công ty viễn thông triển khai Feast (mã nguồn mở) để quản lý hàng nghìn đặc trưng khách hàng từ nhiều hệ thống.
Đội ngũ kỹ sư dữ liệu định nghĩa và tính toán các đặc trưng như “tổng phút gọi quốc tế trong 30 ngày qua” và “số lần khiếu nại dịch vụ”, lưu trữ chúng trong kho đặc trưng.
Khi cần huấn luyện mô hình dự đoán khách hàng rời mạng, các nhà khoa học dữ liệu chỉ cần truy vấn kho đặc trưng để lấy dữ liệu lịch sử của các đặc trưng này.
Khi triển khai mô hình vào sản xuất, API phục vụ thời gian thực của kho đặc trưng đảm bảo các đặc trưng được tính toán chính xác như trong quá trình huấn luyện.
Sự xuất hiện và phát triển của kho đặc trưng cùng các công cụ xác thực tự động như TFDV cho thấy sự trưởng thành của MLOps.
Nó chứng tỏ việc quản lý dữ liệu và đặc trưng là một cấu phần cốt lõi, ngang hàng với quản lý mô hình, chứ không chỉ là một bước tiền xử lý đơn lẻ.
Dữ liệu và đặc trưng được xem là “công dân hạng nhất” trong hệ sinh thái MLOps với vòng đời và quy trình quản lý riêng.
Do đó đảm bảo tính nhất quán, tái sử dụng và độ tin cậy cần thiết cho việc triển khai AI ở quy mô lớn.
Hồ dữ liệu và kho dữ liệu
Kho dữ liệu và hồ dữ liệu là hai kiến trúc lưu trữ dữ liệu trung tâm.
Chúng đóng vai trò thiết yếu như nguồn cung cấp dữ liệu thô hoặc đã qua xử lý cho các quy trình chuẩn bị dữ liệu AI.
Kho dữ liệu
- Lưu trữ dữ liệu có cấu trúc, đã được làm sạch, biến đổi và tích hợp từ các hệ thống nghiệp vụ (OLTP, CRM, ERP).
Ví dụ: một công ty bán lẻ sử dụng kho dữ liệu để tổng hợp dữ liệu giao dịch từ hàng trăm cửa hàng, sau khi đã chuẩn hóa mã sản phẩm, làm sạch thông tin khách hàng và tính toán các chỉ số kinh doanh.
- Dữ liệu được tổ chức theo một cấu trúc xác định trước (schema-on-write), tối ưu hóa cho việc truy vấn phân tích và báo cáo (BI).
Ví dụ: dữ liệu bán hàng được tổ chức theo mô hình sao (star schema) với bảng sự kiện trung tâm kết nối với các bảng chiều (khách hàng, sản phẩm, thời gian, địa điểm), giúp tốc độ truy vấn nhanh chóng.
- Cung cấp nguồn dữ liệu chất lượng cao, nhất quán, đáng tin cậy cho các mô hình ML yêu cầu đầu vào là dữ liệu có cấu trúc, đặc biệt là trong các bài toán học có giám sát như phân loại khách hàng, dự báo doanh số.
Ví dụ: một công ty tài chính sử dụng kho lưu trữ làm nguồn dữ liệu cho mô hình chấm điểm tín dụng, nơi chứa thông tin về lịch sử thanh toán, số dư tài khoản, và các giao dịch đã được chuẩn hóa.
Hiệu suất truy vấn nhanh giúp tăng tốc quá trình lấy dữ liệu huấn luyện.
Hồ dữ liệu
- Lưu trữ một khối lượng rất lớn dữ liệu ở định dạng gốc, thô, bao gồm cả dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc (văn bản, hình ảnh, video, âm thanh, logs, dữ liệu cảm biến, mạng xã hội).
Ví dụ: một công ty viễn thông lưu trữ petabyte dữ liệu cuộc gọi, tin nhắn văn bản, nhật ký mạng, và dữ liệu vị trí trong Data Lake mà không cần xử lý trước.
- Không yêu cầu cấu trúc cố định khi ghi dữ liệu (schema-on-read), mang lại sự linh hoạt cao.
Ví dụ: một công ty nghiên cứu y tế có thể lưu trữ dữ liệu genomics, hình ảnh y tế, hồ sơ bệnh nhân dạng văn bản, và dữ liệu thiết bị đeo trong cùng một hồ dữ liệu.
- Đây là mỗi loại với cấu trúc riêng biệt, và chỉ định nghĩa cách đọc khi cần phân tích.
- Cực kỳ quan trọng vì nhiều mô hình AI hiện đại (đặc biệt là Deep Learning) cần tiếp cận với dữ liệu thô, đa dạng và với khối lượng lớn để học các mẫu phức tạp và thực hiện các tác vụ như xử lý ngôn ngữ tự nhiên, thị giác máy tính.
Ví dụ: một công ty thương mại điện tử sử dụng hồ dữ liệu để lưu trữ hàng triệu ảnh sản phẩm, mô tả chi tiết, đánh giá khách hàng, và nhật ký duyệt web.
- Tất cả đều cần thiết để huấn luyện hệ thống đề xuất sản phẩm tiên tiến.
- Hồ dữ liệu cung cấp môi trường lý tưởng cho việc thử nghiệm, khám phá dữ liệu và xây dựng các quy trình xử lý dữ liệu tùy chỉnh cho AI.
- Chi phí lưu trữ thường thấp hơn kho lưu trữ.
- Dữ liệu từ hồ lưu trữ thường là đầu vào cho các quy trình ETL, ELT để chuẩn bị và đưa vào data warehouse hoặc feature store.
Data Lakehouse
- Một kiến trúc mới xuất hiện kết hợp tính linh hoạt của hồ dữ liệu với các tính năng quản lý và cấu trúc của kho dữ liệu, nhằm cung cấp một nền tảng duy nhất cho cả BI và AI/ML.
Ví dụ: Databricks Lakehouse Platform cho phép các nhà khoa học dữ liệu thực hiện phân tích SQL tốc độ cao trên dữ liệu thô trong Delta Lake, đồng thời vẫn duy trì khả năng xử lý dữ liệu phi cấu trúc cho các ứng dụng học máy.
Tóm lại, hồ dữ liệu cung cấp “nguyên liệu thô” đa dạng và phong phú, trong khi kho dữ liệu cung cấp “nguyên liệu tinh chế” có cấu trúc và chất lượng cao.
Cả hai đều đóng vai trò quan trọng trong hệ sinh thái AI.
Ví dụ: một ngân hàng lớn sử dụng hồ dữ liệu để lưu trữ toàn bộ dữ liệu giao dịch thô, hình ảnh của chữ ký và tài liệu, nhật ký cuộc gọi trung tâm dịch vụ khách hàng.
Dữ liệu này sau đó được xử lý và tải vào kho dữ liệu để phân tích kinh doanh truyền thống.
Ngoài ra còn đồng thời được sử dụng trực tiếp từ hồ dữ liệu để huấn luyện các mô hình phát hiện gian lận tiên tiến có thể xử lý cả dữ liệu có cấu trúc lẫn phi cấu trúc.
Có thể bạn quan tâm
Liên hệ
Địa chỉ
Tầng 3 Toà nhà VNCC 243A Đê La Thành Str Q. Đống Đa-TP. Hà Nội

