Lợi nhuận:
- Khả năng phân biệt nguyên nhân của các giá trị bị thiếu (ngẫu nhiên, hệ thống, có ý nghĩa) và chọn chiến lược phù hợp cũng như tính toán giá trị điền chỉ từ quá trình đào tạo
- Khả năng kiểm tra các ngoại lệ trước khi xóa chúng và phân biệt giữa lỗi dữ liệu và sự kiện hiếm thực sự
- Khả năng ngăn ngừa mất âm thanh bằng cách theo dõi tác động của từng bước đối với số dòng/khoảng trống trong khi đưa sự không nhất quán về loại và định dạng vào tiêu chuẩn
Khoảng 60-80 phần trăm thời gian của một nhà khoa học dữ liệu là dành cho việc dọn dẹp; Trong ngành, điều này nửa đùa nửa thật được gọi là "sắp xếp dữ liệu" (sắp xếp dữ liệu hoặc làm sạch dữ liệu). Bởi vì dữ liệu trong thế giới thực hầu như không bao giờ sẵn sàng để phân tích: ngày tháng ở định dạng hỗn hợp, số được lưu dưới dạng văn bản, một số ô trống, một khách hàng xuất hiện ba lần trong cùng một bảng với hai cách viết khác nhau. Trong phần này, chúng ta sẽ đề cập đến ba khía cạnh cơ bản của việc dọn dẹp: các giá trị bị thiếu, các giá trị ngoại lệ và chuyển đổi loại/định dạng. Trí tuệ nhân tạo là một trợ thủ cực kỳ nhanh nhạy trong công việc này; Nhưng chính bạn là người quyết định làm sạch cái gì và như thế nào, bởi vì mỗi lựa chọn làm sạch sẽ thay đổi kết quả phân tích.
Nguyên tắc vàng của việc dọn dẹp: mọi thay đổi đều là một quyết định
Xóa một ô, điền giá trị trung bình còn thiếu, cắt bớt một giá trị ngoại lệ—không có thao tác nào trong số này là các thao tác “trung tính”. Mỗi thay đổi dữ liệu và ảnh hưởng đến kết quả. Vì vậy, nguyên tắc vàng của việc dọn dẹp: ghi mọi thay đổi vào mã, lưu ý lý do căn bản, không bao giờ ghi đè lên dữ liệu gốc. AI cung cấp cho bạn mã dọn dẹp nhanh chóng, nhưng bạn có trách nhiệm phải hiểu mã đó làm gì; Đừng chạy nó mà không thấy có bao nhiêu dòng đã biến mất khi bạn nói "xóa các dòng trống".
Thận trọng: Không bao giờ sửa đổi dữ liệu thô ban đầu. Viết phiên bản đã được làm sạch vào một tệp/bảng riêng biệt. Bằng cách này, nếu phát hiện ra lỗi, bạn có thể quay lại lỗi ban đầu và duy trì khả năng lặp lại.
Thiếu giá trị: tại sao nó trống, phải làm gì
Giá trị bị thiếu (thường xuất hiện dưới dạng NaN - "Không phải số" trong gấu trúc) là khi ô trống. Nhưng nguyên nhân của khoảng cách quyết định giải pháp. Có ba tình huống điển hình. Thiếu ngẫu nhiên: cảm biến không hoạt động trong giây lát; Nó có thể hợp lý để điền vào nó. Thiếu hệ thống: trường biểu mẫu chỉ được yêu cầu cho một số khách hàng nhất định; Khoảng cách ở đây thực chất là thông tin. Thiếu đáng kể: nếu để trống "ngày trả hàng" thì khách hàng đã không quay lại; Khoảng trống này có nghĩa là 0 hoặc "không", nó không được lấp đầy.
Các chiến lược chính:
Chiến lược
Khi nào thì thích hợp?
rủi ro
Xóa hàng
Tỷ lệ thiếu rất thấp (<5%) và ngẫu nhiên
Mất dữ liệu và đại diện
Xóa một cột
Hầu hết cột trống (>60%)
mất thông tin
Mức lấp đầy trung bình/trung bình
Số, thiếu ngẫu nhiên
Nó làm giảm phương sai và bóp méo sự phân phối
Thể loại "không rõ"
Thiếu phân loại, có hệ thống
Tạo các danh mục bổ sung
Dự đoán bằng mô hình
Cột phức tạp, quý giá
Rủi ro rò rỉ, phức tạp
Điểm tới hạn: giá trị quy định chỉ được tính từ dữ liệu huấn luyện và giá trị tương tự phải được áp dụng cho dữ liệu thử nghiệm. Nếu bạn bao gồm giá trị trung bình của dữ liệu thử nghiệm, bạn sẽ tạo ra rò rỉ (Đơn vị 10). Trung vị (giá trị ở giữa của dữ liệu thứ tự) thường được ưu tiên hơn giá trị trung bình vì nó mạnh hơn đối với các giá trị ngoại lệ so với giá trị trung bình.
Ngoại lệ: lỗi hay thực?
Một ngoại lệ có thể là một trong hai trường hợp: lỗi dữ liệu (999 trong cột tuổi) hoặc một sự kiện có thật nhưng hiếm gặp (đơn hàng trị giá 2 triệu USD của khách hàng). Nhầm lẫn cả hai là một tai họa: xóa một ngoại lệ thực sự và bạn sẽ vứt bỏ thông tin quan trọng; Nếu bạn bỏ qua một sai lầm, điểm trung bình của bạn sẽ bị ảnh hưởng. Vì vậy, cần phải kiểm tra ngoại lệ trước, không được tự động xóa nó.
Các phương pháp phát hiện phổ biến: Phương pháp IQR (phạm vi liên vùng; các giá trị lớn hơn 1,5 lần chênh lệch giữa nhóm 25% và 75% của dữ liệu được coi là ngoại lệ) và điểm z (số độ lệch chuẩn so với giá trị trung bình; thường là ngoại lệ nếu nó lớn hơn 3). AI viết mã cho những phép tính này trong vài giây; Nhưng trước khi bạn nói "xóa", hãy kiểm tra xem những giá trị đó là gì.
Chuyển đổi loại và định dạng: nguồn lỗi im lặng
Một trong những vấn đề đau đầu nhất là nhầm lẫn kiểu dữ liệu. Nếu cột "số tiền" được lưu dưới dạng văn bản thì bạn không thể thêm; Chương trình đọc không chính xác một số được định dạng bằng tiếng Thổ Nhĩ Kỳ, chẳng hạn như "1.250,50" thay vì "một nghìn hai trăm năm mươi". Ngày ("01/03/2024" ngày-tháng hay tháng-ngày?), danh mục ("Nam"/"nam"/"M" giống nhau?) và đơn vị (TL hay kuruş?) âm thầm tạo ra kết quả không chính xác. Một phần quan trọng của việc dọn dẹp là đưa những mâu thuẫn này vào tiêu chuẩn: ngày tháng thành một định dạng, phân loại thành một cách viết, số thành một đơn vị.
ba trường hợp nhỏ
Trường hợp 1 - Bẫy trung bình. Một nhóm điền 320 giá trị còn thiếu vào cột thu nhập với mức trung bình ($48,500). Nhưng những thiếu sót mang tính hệ thống: đây là phân khúc thu nhập thấp chưa bao giờ kê khai thu nhập. Mức lấp đầy trung bình khiến nhóm này trở nên giàu có một cách giả tạo và mô hình tín dụng đã sai. Bài học: hãy hỏi “tại sao lại để trống” trước khi điền vào.
Trường hợp 2 - Ngoại lệ không nên xóa. Một nhà phân tích bán lẻ đã xóa 4 đơn đặt hàng lớn (1,8 triệu TL mỗi đơn hàng) trong dữ liệu bán hàng vì cho rằng đó là "lỗi". Tuy nhiên, đây là những đơn đặt hàng thực sự của công ty và chiếm 22% tổng doanh thu. Mô hình dự báo sau xóa bỏ hoàn toàn bỏ sót nhu cầu của tổ chức. Bài học: kiểm tra ngoại lệ trước khi xóa nó.
Trường hợp 3 - Thảm họa định dạng ngày. Trong CSV, ngày được trộn thành cả "2024-03-01" và "01.03.2024". Khi mã do YZ viết được phân tích cú pháp theo định dạng đầu tiên, 6.400 dòng trở thành NaT là "ngày không hợp lệ" và bị âm thầm loại trừ khỏi quá trình phân tích. Nhà phân tích chỉ nhận thấy điều này khi số lượng dòng giảm xuống. Bài học: luôn kiểm tra số dòng và số khoảng trống sau khi chuyển đổi.
Bốn mẫu có thể sao chép
1) Bản đồ giá trị bị thiếu:
Tôi có gấu trúc df. Viết mã tạo bảng hiển thị số lượng và tỷ lệ phần trăm còn thiếu (NaN) cho mỗi cột. Sau đó, liệt kê riêng các cột có tỷ lệ thiếu trên 40% và các cột có tỷ lệ thiếu dưới 5%. Chỉ cần tạo mã chẩn đoán này chứ không phải chiến lược bạn đề xuất; Tôi sẽ đưa ra quyết định.
2) Kiểm tra ngoại lệ (không xóa):
Viết mã PHÁT HIỆN (không xóa!) các ngoại lệ cho cột "số tiền" của tôi bằng phương pháp IQR. Đặt các hàng bên ngoài vào một df riêng biệt để tôi có thể kiểm tra chúng theo cách thủ công. Đồng thời in số lượng ngoại lệ và phần của chúng trong tổng số.
3) Tiêu chuẩn hóa loại/định dạng:
Viết mã chuẩn hóa các cột sau:- "ngày": có thể có định dạng hỗn hợp ("2024-03-01" và "01.03.2024"); chuyển đổi tất cả chúng thành datetime, đếm những cái không thể dịch được và báo cáo (vứt bỏ trong im lặng). - “giới tính”: “Nam”/”nam”/”M” -> “M”, “Nữ”/”nữ”/”F” -> “K”. - "số tiền": Văn bản có định dạng tiếng Thổ Nhĩ Kỳ ("1.250,50") -> số thập phân. In số lượng hàng bị ảnh hưởng sau mỗi lần chuyển đổi.
4) Kiểm tra trước/sau khi vệ sinh:
Viết mã so sánh df.shape, số lượng bị thiếu và thống kê tóm tắt (trung bình, trung bình, tối thiểu, tối đa) của các cột đã chọn trước và sau bước dọn dẹp. Mục đích: để xem những gì thay đổi khi làm sạch.
Dấu nhắc yếu / Dấu nhắc mạnh
Dấu nhắc yếu:
Xóa dữ liệu này.
“Rõ ràng” là mơ hồ; AI không biết nên xóa phần nào, điền gì, xử lý cột nào và xử lý như thế nào. Kết quả: những thay đổi mù quáng, không thể đảo ngược.
Lời nhắc mạnh mẽ:
Vai trò của bạn: trợ lý làm sạch dữ liệu. cột df: customer_id (int), ngày đăng ký (văn bản có định dạng hỗn hợp), doanh thu_tl (văn bản, "1.200,00"), thành phố (văn bản, chính tả không nhất quán). Quy định:- Thay đổi df gốc; Làm việc trên bản sao có tên df_clean.- Chuyển thu nhập_tl thành số, đếm những gì không thể dịch được.- Thay đổi ngày ghi thành ngày giờ, báo lỗi.- Không xóa bất kỳ hàng nào mà không có sự chấp thuận của tôi; Hiển thị các ứng cử viên một cách riêng biệt. Sau mỗi bước, in df_temiz.shape và số còn thiếu.
Ở đây nguồn được bảo vệ, mọi chuyển đổi đều được tính, việc xóa được giao cho con người.
Những lỗi thường gặp
- Điền vào chỗ trống mà không hỏi "tại sao nó trống?" Việc điền vào chỗ thiếu hệ thống/đáng kể bằng giá trị trung bình sẽ làm sai lệch dữ liệu.
- Xóa ngoại lệ mà không kiểm tra nó. Việc loại bỏ các sự kiện có thật nhưng hiếm sẽ làm mất đi những thông tin quan trọng.
- Tính giá trị đệm từ tất cả dữ liệu. Bao gồm dữ liệu thử nghiệm tạo ra rò rỉ; chỉ cần tính toán từ đào tạo.
- Không kiểm tra số hàng/khoảng trống sau khi chuyển đổi. Các hàng có NaT/NaN âm thầm sẽ bị loại khỏi phân tích.
- Ghi đè dữ liệu gốc. Trở lại và khả năng tái sản xuất bị mất.
Mẹo: Chạy quá trình làm sạch bằng so sánh "trước-sau". In df.shape, số lượng bị thiếu và thống kê tóm tắt của các cột quan trọng sau mỗi bước. Vì vậy, bạn thấy ngay rằng một bước bất ngờ phá hủy 6.000 hàng.
Tóm lại
Làm sạch là giai đoạn tốn nhiều thời gian và đòi hỏi nhiều quyết định nhất của khoa học dữ liệu. Mọi thay đổi đều làm thay đổi dữ liệu, vì vậy mỗi thay đổi đều là một quyết định có ý thức. Đối với các giá trị bị thiếu, hãy hỏi "tại sao nó trống?" Xem lại mọi giá trị ngoại lệ trước khi xóa chúng; Đưa loại và định dạng về tiêu chuẩn. Chỉ tính giá trị điền từ dữ liệu huấn luyện, giữ lại giá trị gốc và theo dõi tác động của từng bước bằng cách đếm nó. AI là một công cụ tăng tốc cực lớn trong lĩnh vực kinh doanh này, nhưng con người mới là người quyết định bạn làm sạch những gì và tại sao.
Nhiệm vụ ứng dụng
Lấy (hoặc tạo) một bảng nhỏ và cố tình chèn ba vấn đề vào đó: một bộ giá trị bị thiếu, một ngoại lệ, một định dạng ngày hỗn hợp. Yêu cầu mã chẩn đoán và chuẩn hóa từ AI với các mẫu trên; so sánh số hàng và số khoảng trống trước/sau mỗi bước. Cố gắng nắm bắt ít nhất một "sự mất mát thầm lặng" và ghi lại cách bạn nhận thấy nó.
danh sách kiểm tra
- [ ] Tôi có giữ lại dữ liệu gốc và làm việc trên bản sao không?
- [ ] Tôi đã đặt câu hỏi "tại sao nó trống" cho mỗi cột bị thiếu chưa?
- [ ] Tôi đã xem xét các giá trị ngoại lệ trước khi xóa chúng chưa?
- [ ] Có phải tôi chỉ tính giá trị đệm từ dữ liệu huấn luyện không?
- [ ] Tôi có đang kiểm tra số dòng/khoảng trống sau mỗi bước và loại bỏ hiện tượng mất âm thanh không?