Làm sạch dữ liệu là một trong những phần quan trọng của ML. Nó đóng một vai trò quan trọng trong việc xây dựng một mô hình. Làm sạch dữ liệu là một trong những điều mà mọi người đều làm nhưng không ai thực sự nói về nó. Nó chắc chắn không phải là phần hấp dẫn nhất của ML và đồng thời, không có bất kỳ thủ thuật hoặc bí mật ẩn nào cần khám phá. Tuy nhiên, việc dọn dẹp dữ liệu đúng cách có thể làm hỏng hoặc phá vỡ dự án của bạn. Các nhà khoa học dữ liệu chuyên nghiệp thường dành một phần rất lớn thời gian cho bước này.
Bởi vì niềm tin rằng, “Dữ liệu tốt hơn đánh bại các thuật toán phức tạp hơn”.
Nếu chúng ta có một tập dữ liệu được làm sạch tốt, chúng ta có thể nhận được kết quả mong muốn ngay cả với một thuật toán rất đơn giản, đôi khi có thể tỏ ra rất có lợi.
Rõ ràng, các loại dữ liệu khác nhau sẽ yêu cầu các kiểu làm sạch khác nhau. Tuy nhiên, cách tiếp cận có hệ thống này luôn có thể là một điểm khởi đầu tốt.
Các bước liên quan đến làm sạch dữ liệu:
Nội dung chính
1. Loại bỏ các dữ liệu dùng để quan sát không mong muốn
Điều này bao gồm việc xóa các giá trị trùng lặp / dư thừa hoặc không liên quan khỏi tập dữ liệu của bạn. Các dữ liệu dùng để quan sát trùng lặp thường phát sinh nhất trong quá trình thu thập dữ liệu và Các dữ liệu dùng để quan sát không liên quan là những quan sát không thực sự phù hợp với vấn đề cụ thể mà bạn đang cố gắng giải quyết.
- Các dữ liệu dùng để quan sát dư thừa làm thay đổi hiệu quả ở mức độ lớn khi dữ liệu lặp lại và có thể thêm độ đúng hoặc theo hướng không chính xác, do đó tạo ra kết quả không trung thực.
- Các dữ liệu dùng để quan sát không liên quan là bất kỳ loại dữ liệu nào không có ích cho chúng ta và có thể được xóa trực tiếp.
2. Sửa lỗi cấu trúc
Các lỗi phát sinh trong quá trình đo, chuyển dữ liệu hoặc các tình huống tương tự khác được gọi là sửa lỗi cấu trúc. Lỗi cấu trúc bao gồm lỗi chính tả trong tên của các đối tượng địa lý, cùng một thuộc tính với tên khác, các lớp được gắn nhãn sai, tức là các lớp riêng biệt thực sự phải giống nhau hoặc viết hoa không nhất quán.
Ví dụ: mô hình sẽ coi Châu Mỹ và Châu Mỹ là các lớp hoặc giá trị khác nhau, mặc dù chúng đại diện cho cùng một giá trị hoặc màu đỏ, vàng và đỏ-vàng như các lớp hoặc thuộc tính khác nhau, mặc dù một lớp có thể được bao gồm trong hai lớp khác. Vì vậy, đây là một số lỗi cấu trúc làm cho mô hình của chúng tôi không hiệu quả và cho kết quả chất lượng kém.
3. Quản lý các ngoại lệ không mong muốn
Các ngoại lệ có thể gây ra vấn đề với một số loại mô hình nhất định. Ví dụ, các mô hình hồi quy tuyến tính ít mạnh mẽ hơn đối với các giá trị ngoại lai so với mô hình cây quyết định. Nói chung, chúng ta không nên loại bỏ các ngoại lệ cho đến khi chúng ta có lý do chính đáng để loại bỏ chúng. Đôi khi, loại bỏ chúng giúp cải thiện hiệu suất, đôi khi không. Vì vậy, người ta phải có lý do chính đáng để loại bỏ phần ngoại lai, chẳng hạn như các phép đo đáng ngờ không chắc là một phần của dữ liệu thực.
4. Xử lý dữ liệu bị thiếu
Thiếu dữ liệu là một vấn đề khó lường trong ML. Chúng ta không thể bỏ qua hoặc loại bỏ quan sát bị thiếu. Chúng phải được xử lý cẩn thận vì chúng có thể là dấu hiệu của điều gì đó quan trọng. Hai cách phổ biến nhất để xử lý dữ liệu bị thiếu là:
4.1 Bỏ qua các dữ liệu để quan sát với các giá trị bị thiếu.
Bỏ qua các giá trị bị thiếu là không tối ưu vì khi bạn bỏ qua các dữ liệu để quan sát, bạn sẽ làm rơi thông tin.
- Thực tế là giá trị bị thiếu có thể mang tính thông tin.
- Ngoài ra, trong thế giới thực, bạn thường cần đưa ra dự đoán về dữ liệu mới ngay cả khi một số tính năng bị thiếu!
4.2 Bổ sung các giá trị còn thiếu từ các quan sát trước đây.
Việc nhập giá trị bị thiếu là không tối ưu vì giá trị ban đầu bị thiếu nhưng bạn đã điền vào, điều này luôn dẫn đến mất thông tin, cho dù phương pháp nhập của bạn có phức tạp đến đâu.
- Một lần nữa, bản thân “thiếu sót” hầu như luôn mang tính thông tin và bạn nên cho thuật toán của mình biết nếu thiếu giá trị.
- Ngay cả khi bạn xây dựng một mô hình để áp đặt các giá trị của mình, bạn sẽ không thêm bất kỳ thông tin thực nào. Bạn chỉ đang củng cố các mẫu đã được cung cấp bởi các tính năng khác.
Cả hai cách tiếp cận này đều là dưới mức tối ưu vì bỏ quan sát có nghĩa là giảm thông tin, do đó làm giảm dữ liệu và việc áp đặt giá trị cũng là dưới tối ưu khi chúng tôi lọc các giá trị không có trong tập dữ liệu thực tế, dẫn đến mất thông tin.
Thiếu dữ liệu giống như thiếu một mảnh ghép. Nếu bạn đánh rơi nó, điều đó giống như giả vờ không có miếng xếp hình đó. Nếu bạn ám chỉ nó là cái gì đó, điều đó giống như cố gắng chen vào một mảnh ghép từ một nơi khác trong câu đố.
Vì vậy, dữ liệu bị thiếu luôn mang tính thông tin và chỉ ra điều gì đó quan trọng. Và chúng ta phải biết thuật toán của mình về việc thiếu dữ liệu bằng cách gắn cờ nó. Bằng cách sử dụng kỹ thuật gắn cờ , về cơ bản bạn đang cho phép thuật toán ước tính hằng số tối ưu cho độ thiếu, thay vì chỉ điền vào giá trị trung bình.
5. Một số công cụ làm sạch dữ liệu
- Openrefine
- Trifacta Wrangler
- TIBCO Clarity
- Cloudingo
- IBM Infosphere Quality Stage
6. Phần kết luận
Vì vậy, Cafedev đã thảo luận về bốn bước khác nhau trong quá trình làm sạch dữ liệu để làm cho dữ liệu trở nên đáng tin cậy hơn và tạo ra kết quả tốt. Sau khi hoàn thành đúng các bước Làm sạch dữ liệu, chúng ta sẽ có một tập dữ liệu mạnh mẽ, tránh được nhiều lỗi phổ biến nhất. Bước này không nên vội vàng vì nó rất có lợi trong quá trình sau này.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Tự học ML bằng Python từ cơ bản tới nâng cao.
- Ebook về python tại đây.
- Các series tự học lập trình MIỄN PHÍ khác
- Nơi liên hệ hợp tác hoặc quảng cáo cùng Cafedevn tại đây.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!