Đơn vị 2 / 11

Làm sạch và chuẩn bị dữ liệu: Thiếu dữ liệu, ngoại lệ và mã hóa

Lợi nhuận:

  • Khả năng nhận biết các loại dữ liệu bị thiếu (MCAR/MAR/MNAR), các ngoại lệ và lỗi mã hóa, đồng thời sử dụng AI với dữ liệu chính xác để tạo mã dọn dẹp và chẩn đoán
  • Khả năng xem từng bước làm sạch (xóa, gán, chuyển đổi) do trí tuệ nhân tạo đề xuất sẽ ảnh hưởng như thế nào đến kết quả phân tích và thiết lập quy trình làm việc có thể đảo ngược và ghi lại
  • Duy trì các quyết định dọn dẹp dựa trên kiến thức về quy trình tạo ra dữ liệu và trí tuệ nhân tạo là một trợ lý được giám sát chứ không phải một máy tự động mù

Mọi nhà phân tích có kinh nghiệm đều biết một sự thật: phần lớn thời gian của một dự án thực nghiệm không phải là lập mô hình mà là làm sạch dữ liệu (công việc sửa lỗi, thiếu sót và mâu thuẫn trong dữ liệu và chuẩn bị sẵn sàng để phân tích). Theo nguyên tắc chung, khoảng 70-80% thời gian dành cho việc hiểu, làm sạch và chuyển đổi dữ liệu; chỉ còn lại 20-30% cho phân tích thực tế. Trong phần này, chúng ta sẽ xem từng bước trí tuệ nhân tạo (AI) giảm bớt gánh nặng nặng nề này như thế nào, nhưng bạn vẫn nên đưa ra những quyết định nào và tại sao.

Trước tiên hãy đặt hai sự thật cơ bản. Đầu tiên, các quyết định dọn dẹp dựa trên kiến ​​thức của bạn về quy trình tạo ra dữ liệu: chỉ bạn mới biết tại sao thiếu một giá trị, tại sao một số lại quá lớn. AI không nhìn thấy dữ liệu, không biết bối cảnh; Viết mã, không đưa ra quyết định. Thứ hai, mỗi bước làm sạch có thể thay đổi kết quả phân tích. Việc xóa một ngoại lệ có thể đảo ngược hệ số; Việc điền vào phần còn thiếu bằng giá trị trung bình có thể làm giảm phương sai một cách giả tạo. Vì vậy, việc dọn dẹp phải có thể đảo ngược và ghi lại: không bao giờ chạm vào dữ liệu thô, thực hiện từng bước trong mã, ghi lại tác động của từng bước.

Quy trình làm sạch từng bước

1. Biết dữ liệu. Đầu tiên hãy xem cấu trúc: số hàng (quan sát) và cột (biến), loại của từng biến (số, phân loại, ngày tháng), thống kê tóm tắt, số lượng còn thiếu. Bạn có thể yêu cầu AI cung cấp mã "hồ sơ dữ liệu" này; Nhưng bạn đọc kết quả đầu ra và đặt những câu hỏi như "tại sao biến này lại xuất hiện dưới dạng văn bản?"

2. Hiểu và phân loại dữ liệu còn thiếu. Dữ liệu bị thiếu được chia thành ba loại. MCAR (Thiếu hoàn toàn ngẫu nhiên): việc thiếu không phải do bất cứ lý do gì, ví dụ như cảm biến bị lỗi ngẫu nhiên. MAR (Thiếu ngẫu nhiên): sự thiếu sót phụ thuộc vào các biến quan sát khác, ví dụ như người lớn tuổi để trống câu hỏi thường xuyên hơn, nhưng bạn biết tuổi. MNAR (Thiếu không ngẫu nhiên): việc thiếu phụ thuộc vào giá trị không được quan sát, ví dụ như những người có thu nhập cao không báo cáo thu nhập của họ. Sự khác biệt này rất quan trọng vì nó quyết định phương pháp giải và AI không thể quyết định điều này cho bạn.

3. Giải quyết sự thiếu hụt. Các tùy chọn: xóa theo danh sách, cắt bỏ trung bình/trung bình, ghép nhiều lần dựa trên mô hình. Việc xóa trong MCAR tương đối an toàn nhưng làm giảm kích thước mẫu. Nhiều bài tập phù hợp hơn trong MAR. Không có phương pháp đơn giản nào đảm bảo tính khách quan trong MNAR; Cơ chế thiếu hụt phải được mô hình hóa hoặc ít nhất phải thực hiện phân tích độ nhạy. Việc lấp đầy ý nghĩa thì dễ dàng nhưng nguy hiểm: nó làm giảm sự khác biệt, làm suy yếu các mối quan hệ và che giấu sự không chắc chắn.

4. Kiểm tra các ngoại lệ. Một ngoại lệ là một quan sát nằm rất xa so với những quan sát khác. Hãy tách riêng hai câu hỏi: Đây có phải là lỗi (năm 999 được ghi trong mục nhập dữ liệu) hay là giá trị thực nhưng lại nằm ngoài giá trị (thu nhập của một tỷ phú)? Sửa lỗi; Không xóa các ngoại lệ thực sự vì chúng đại diện cho dữ liệu. Việc xóa ngoại lệ "vì nó làm phiền" bạn đang làm sai lệch dữ liệu về kết quả.

5. Mã hóa và tính nhất quán. Chuẩn hóa các danh mục ("Nam", "nam", "E" thành một mã), đưa ngày tháng về một định dạng, đơn vị thành một thang đo, phát hiện các hàng trùng lặp. Đây là giai đoạn ít rủi ro nhất mà AI sẽ hỗ trợ tốt nhất.

6. Tài liệu và đóng băng. Ghi lại từng bước bằng mã và dòng nhận xét, tách biệt dữ liệu thô và dữ liệu đã làm sạch. Vì vậy, khi trọng tài hỏi "tại sao những quan sát này lại bị loại bỏ?" bạn đã có sẵn câu trả lời của mình.

Thận trọng: Không đưa ra quyết định làm sạch dựa trên kết quả. Xóa một dòng có nội dung "Khi bạn xóa dòng này, hệ số sẽ trở nên đáng kể" là hình thức hack p xảo quyệt nhất mà chúng ta sẽ thấy trong phần tiếp theo.

Bảng so sánh: thiếu phương pháp dữ liệu

phương pháp

Khi nào thì thích hợp?

rủi ro

Vai trò của AI

Xóa một hàng

MCAR, tỷ lệ thiếu thấp

Mẫu trở nên nhỏ hơn, sai lệch trong MAR/MNAR

Viết mã; bạn quyết định

Phép gán trung bình/trung bình

Phân tích sơ bộ nhanh

Giảm sự khác biệt, che giấu mối quan hệ

Thật dễ dàng nhưng không khuyến khích điều đó; nên cảnh báo

Nhiều bài tập (MI)

MAR, các biến quan trọng

Nếu không cài đặt đúng sẽ gây hiểu nhầm

Đề xuất mã và gói (chuột)

Mô hình hóa cơ chế

MNAR

Phức tạp, đòi hỏi nhiều giả định

Chỉ dự thảo; cần có chuyên gia

Bốn lời nhắc có thể sao chép

1. Lập hồ sơ dữ liệu:

Vai trò của bạn: trợ lý làm sạch dữ liệu. Tôi không chia sẻ dữ liệu, tôi muốn mã R. Tôi có một data.frame được gọi là 'chữ số'; các biến: id, tuổi (số), thu nhập (số), giáo dục (phân loại), khu vực (phân loại), ngày (ngày). Nhiệm vụ: viết mã tạo ra loại, số và tỷ lệ còn thiếu cho từng biến, thống kê tóm tắt cho biến số và bảng tần số cho biến phân loại. Thêm dòng bình luận.

2. Chẩn đoán dữ liệu bị thiếu:

Viết mã kiểm tra mẫu bị thiếu cho dữ liệu 'chữ số' ở trên: - tỷ lệ thiếu của từng biến, - một bảng/biểu đồ đơn giản hiển thị mối quan hệ thiếu sót với các biến khác. Tôi sẽ xem xét đầu ra của mã và phân biệt MCAR/MAR/MNAR; Bạn chỉ cần tạo công cụ chẩn đoán, KHÔNG quyết định phương pháp phân công.

3. Kiểm tra ngoại lệ (không xóa):

Viết mã cho biến 'thu nhập' để kiểm tra các giá trị ngoại lệ KHÔNG XÓA: sơ đồ hộp, giới hạn dựa trên IQR và bảng liệt kê các quan sát + giá trị ngoại lệ. Tôi sẽ xem liệu đây là sai lầm hay thực tế. Thêm tính năng xóa tự động.

4. Tiêu chuẩn hóa mã hóa:

Trong biến 'education', ​​các giá trị được viết hỗn hợp: "Primary school","primary school","PRIMARY","Highschool","highschool","University","univ". Viết mã R mã hóa chúng thành các danh mục nhất quán; Hiển thị bảng ánh xạ rõ ràng để tôi có thể xác nhận từng chuyển đổi. Đặt giá trị bạn không nhận ra thành "UNKNOWN".

Dấu nhắc yếu / Dấu nhắc mạnh

Dấu nhắc yếu:

Làm sạch dữ liệu, điền vào các khoảng trống, loại bỏ các ngoại lệ.

Nhu cầu này rất nguy hiểm: Nó trao quyền mù quáng cho AI. Thiếu sót kiểu gì, điền kiểu gì, sự thật mâu thuẫn thế nào - không điều nào rõ ràng cả. Kết quả có thể là một tập dữ liệu sai lệch bí mật.

Lời nhắc mạnh mẽ:

Vai trò của bạn: trợ lý dọn dẹp, bạn không phải là người đưa ra quyết định. Đi từng bước và viết mã báo cáo tác động của MỖI bước: 1) hiển thị mẫu bị thiếu (KHÔNG xóa/điền), 2) liệt kê các ứng cử viên ngoại lệ (KHÔNG xóa), 3) khắc phục sự không thống nhất về danh mục với bảng ánh xạ. In số hàng và thống kê tóm tắt sau mỗi bước để tôi có thể xem và xác nhận thay đổi. Tự động chèn/xóa.

Sự khác biệt rất rõ ràng: ý chí mạnh mẽ định vị AI như một trợ lý được giám sát, tạo ra các bước có thể đảo ngược và được ghi lại.

ba trường hợp nhỏ

Trường hợp 1 - Bẫy bài tập trung bình. Dữ liệu thu nhập của một nhà phân tích cho 5.000 người bị thiếu 18%. Ông bảo AI hãy “lấp đầy những khoảng trống”; AI đã tính trung bình tất cả. Kết quả: sự chênh lệch về thu nhập giảm 22% và hệ số của mối quan hệ giáo dục-thu nhập hóa ra yếu hơn trước. Cách đúng: thiếu là MAR (do học hành), phải bù bằng nhiều bài tập (chuột). Bài học: phương pháp làm đầy phụ thuộc vào cơ chế.

Trường hợp 2 - Việc làm sạch ngoại lệ sẽ đảo ngược kết quả. Có 3 công ty rất lớn (0,6% tổng số quan sát) trong một dữ liệu công ty. Những thứ này đã bị xóa theo gợi ý "dọn dẹp" của AI; Hiệu quả kinh tế nhờ hệ số quy mô chuyển từ dương sang âm. Tuy nhiên, 3 công ty đó là có thật và là một phần quan trọng của ngành. Cách chính xác là báo cáo với cả ước tính đầy đủ và chính xác thay vì xóa. Bài học: các ngoại lệ thực sự là dữ liệu, không phải tiếng ồn.

Trường hợp 3 - Lỗi mã hóa im lặng. Trong một bảng, biến ngày có hai định dạng khác nhau ("2020-03-01" và "01/03/2020"). Khi mã kết hợp do AI tạo ra nhầm chúng với các giá trị khác nhau, 1.400 quan sát không khớp và tốc độ tăng trưởng trở nên lố bịch. Sẽ không có vấn đề gì nếu nhà phân tích không kiểm tra số lượng hàng. Bài học: việc quan sát và kiểm tra độ tỉnh táo sau mỗi bước là điều bắt buộc.

Những lỗi thường gặp

  • Lấp đầy khoảng cách một cách mù quáng với mức trung bình. Nó làm giảm phương sai, che giấu sự không chắc chắn và tạo ra sai lệch trong MAR/MNAR. Đầu tiên phân loại cơ chế.
  • Xóa ngoại lệ "vì nó làm phiền". Các ngoại lệ thực sự đại diện cho dữ liệu; xóa là bẻ cong kết quả. Sửa cái sai, giữ cái thật.
  • Khai thác dữ liệu thô. Không bao giờ sửa đổi dữ liệu thô; Thực hiện tất cả việc dọn dẹp mã trong một bản sao riêng biệt để có thể hoàn nguyên về mã đó.
  • Không đo lường tác động của các bước. Nếu số lượng hàng và số liệu thống kê tóm tắt không được kiểm tra sau mỗi bước, các lỗi im lặng sẽ tích lũy.
  • Kết quả là làm sạch. Logic của "Khi bạn thêm dòng này, kết quả sẽ tốt hơn" là p-hack; Việc làm sạch phải được lập kế hoạch trước và độc lập với kết quả phân tích.
Mẹo: Giữ một bảng “trước/sau” đặt các số liệu thống kê cơ bản giống nhau (giá trị trung bình, trung vị, số lượng quan sát, một vài mối tương quan) cạnh nhau trước và sau khi dọn dẹp. Một cú nhảy bất ngờ là dấu hiệu tốt nhất của một lỗi ẩn.

Tóm lại

Làm sạch dữ liệu là giai đoạn tốn nhiều thời gian và đòi hỏi phải đưa ra quyết định nhất trong công việc thực nghiệm. AI là một công cụ tạo mã mạnh mẽ trong lĩnh vực này, nhưng nó không thể quyết định: bạn phân loại loại dữ liệu bị thiếu (MCAR/MAR/MNAR), xác định xem ngoại lệ là lỗi hay thực, giữ cho từng bước có thể đảo ngược và ghi lại. Thay vì trao quyền “rõ ràng” cho người mù AI, hãy thiết lập quy trình làm việc từng bước có tác động được đo lường và xác thực. Kiểm tra số lượng quan sát và số liệu thống kê tóm tắt sau mỗi bước là liều thuốc giải độc tốt nhất cho các lỗi thầm lặng.

Nhiệm vụ ứng dụng

Chọn ít nhất hai biến chứa các biến bị thiếu và ngoại lệ trong tập dữ liệu (dữ liệu của riêng bạn hoặc tập hợp mẫu). Yêu cầu mã chẩn đoán từ AI thông qua lời nhắc "từng bước, không xóa/điền" ở trên và chạy mã đó. Phân loại sự thiếu sót thành MCAR/MAR/MNAR và viết lời giải thích của bạn trong một câu. Kiểm tra từng ứng cử viên mâu thuẫn và quyết định xem cái nào là sai và cái nào là thật. Cuối cùng, tạo bảng "trước-sau" trước/sau khi vệ sinh và báo cáo nếu có bất kỳ thay đổi ngoài dự kiến ​​nào.

danh sách kiểm tra

  • [ ] Tôi đã xóa dữ liệu thô thành một bản sao riêng mà không thay đổi nó.
  • [ ] Tôi đã phân loại sự thiếu hụt thành MCAR/MAR/MNAR và chọn phương pháp phù hợp.
  • [ ] Tôi đã kiểm tra từng trường hợp ngoại lệ xem chúng là sai sót hay thực tế; Tôi không mù quáng xóa nó.
  • [ ] Tôi đã kiểm tra số lượng quan sát và số liệu thống kê tóm tắt sau mỗi bước làm sạch.
  • [ ] Tôi đã ghi lại tất cả các bước bằng mã và một dòng nhận xét; có thể đảo ngược.
  • [ ] Việc làm sạch của tôi dựa trên kiến ​​thức về quy trình tạo ra dữ liệu chứ không phải dựa trên kết quả phân tích.