Làm cách nào để sử dụng Python để làm sạch dữ liệu?

Nếu chưa, thì hãy nhớ rằng làm sạch dữ liệu là bánh mì và bơ của quy trình khoa học dữ liệu. Vì con người là những gì họ ăn [một câu nói nổi tiếng khác], các mô hình học máy hoạt động theo dữ liệu bạn cung cấp cho nó. Tóm lại, dữ liệu lộn xộn gây ra hiệu suất kém, trong khi dữ liệu sạch là điều kiện tiên quyết để có hiệu suất mô hình tốt. Tất nhiên, dữ liệu sạch không có nghĩa là lúc nào cũng hoạt động tốt, việc lựa chọn đúng mô hình [10% còn lại] cũng rất quan trọng, nhưng không có dữ liệu sạch thì mô hình lý tưởng cũng không thể hoạt động ở mức mong muốn

Trong blog này, tôi sẽ liệt kê các vấn đề được giải quyết trong quá trình làm sạch dữ liệu và đưa ra các giải pháp khả thi.

Hy vọng bạn sẽ thích nó

Dữ liệu bị mất

Khi thiếu dữ liệu trong tập dữ liệu, tốt hơn hết bạn đừng vội điền vào. Bởi vì vị trí của các ô trống có thể cho bạn biết điều gì đó hữu ích. Ví dụ

  • Các giá trị NA chỉ quay lại với nhau ở phần đuôi hoặc ở giữa tập dữ liệu. Điều này có nghĩa là, có thể có sự cố kỹ thuật trong quá trình thu thập dữ liệu. Sau đó, bạn phân tích quy trình thu thập dữ liệu cho chuỗi mẫu cụ thể đó và cố gắng tìm ra nguồn gốc của vấn đề
  • Nếu hơn 70–80% cột là NA, bạn có thể bỏ cột
  • Nếu các giá trị NA nằm trong cột là câu hỏi tùy chọn trong biểu mẫu, cột đó có thể được giải mã như người dùng đã trả lời [1] hoặc không trả lời [0]

Thư viện python chúng ta sẽ sử dụng để kiểm tra các trường hợp trên là missingno. matrixchức năng của thư viện này rất tiện dụng cho cách này. Các đường màu trắng trong biểu đồ là các NA

import missingno as msno
msno.matrix[df]

Đến với quy nạp, có rất nhiều cách như

  • trung bình, trung bình, chế độ;
  • kNN;
  • không hoặc hằng số và vv

Các phương pháp khác nhau có những ưu điểm và nhược điểm của nhau và không có kỹ thuật “tốt nhất” cho tất cả các trường hợp. Bài viết dưới đây là một trong những tài nguyên tốt nhất cho cả lý thuyết và triển khai mã của các kỹ thuật quy nạp

6 cách khác nhau để bù dữ liệu bị thiếu [ví dụ về nhập dữ liệu]

hướng tới khoa học dữ liệu. com

ngoại lệ

Ngoại lệ là các giá trị cực lớn hoặc nhỏ so với các điểm khác của tập dữ liệu. Sự tồn tại của chúng ảnh hưởng đáng kể đến hiệu suất của các mô hình toán học. Hãy xem ví dụ đơn giản này để hiểu lý do đằng sau việc hạ cấp hiệu suất

Trong biểu đồ bên trái, không có ngoại lệ và đường khá khớp với các điểm dữ liệu. Tuy nhiên, trong biểu đồ bên phải, có một ngoại lệ và khi đường cố gắng bao phủ tất cả các điểm của tập dữ liệu, sự hiện diện của một ngoại lệ sẽ thay đổi vị trí của đường và nó không khớp với ít nhất một nửa số điểm

Như chúng ta đã biết tại sao các ngoại lệ không tốt cho tập dữ liệu, hãy chuyển sang một số khái niệm toán học. Thứ nhất, cần xác định thế nào là “cực kỳ” lớn hay nhỏ

Các giá trị 1. 5 x IQR [interquartile range] cao hơn/nhỏ hơn Q3/Q1 được gọi là ngoại lệ. IQR là sự khác biệt giữa Q3 và Q1 [IQR = Q3-Q1]

Tôi đã viết hàm bên dưới để kiểm tra số lượng ngoại lệ trong tập dữ liệu

Một cách để xử lý các ngoại lệ là làm cho chúng bằng Q3 hoặc Q1. Bằng cách sử dụng pandas và thư viện numpy, chức năng dưới đây thực hiện nhiệm vụ này. Đây. Hàm lower_upper_range tìm phạm vi có bên ngoài là ngoại lệ. Sau đó, với chức năng clip numpy, các giá trị được cắt thành các phạm vi

Dữ liệu không nhất quán

Vấn đề ngoại lệ là về các tính năng số, bây giờ hãy nói về các cột chuỗi. Dữ liệu không nhất quán có nghĩa là các lớp duy nhất của một cột có các biểu diễn khác nhau. Ví dụ ở cột giới tính có cả nam/nữ và M/F. Trong trường hợp này, sẽ có 4 lớp, nhưng thực tế có hai lớp

Như bạn đã dự đoán, không có tự động hóa cho nhiệm vụ này, do đó chúng tôi cần phân tích các lớp theo cách thủ công. Chức năng unique của gấu trúc là dành cho mục đích này. Hãy xem ví dụ về cột tên của dữ liệu dự đoán giá xe hơi

Đây, mazda-mazda, Nissan-nissan, porsche-porsche, toyota-toyota, v.v. là minh họa cho vấn đề dữ liệu không nhất quán. Tôi thích sử dụng chức năng pandas loc để giải quyết nó

Dữ liệu không hợp lệ

Danh mục này chứa các giá trị đơn giản là không đúng về mặt logic. Ví dụ,

  • tuổi của ai đó là 560;
  • thời gian sử dụng là -8 giờ;
  • chiều cao của một người là 1200 cm-s và v.v.

Đối với các cột số, chức năng mô tả gấu trúc có thể được sử dụng để xác định các lỗi đó

df.describe[]

Có thể có hai loại lý do dẫn đến dữ liệu không hợp lệ

  1. Lỗi thu thập dữ liệu

Kỹ sư dữ liệu có thể gõ 1799 thay vì 179 cho cột chiều cao. Loại lỗi ngẫu nhiên này có thể được coi là giá trị null và được quy cho cùng với các NA khác

2. Lỗi thao tác dữ liệu

Một số cột của tập dữ liệu có thể là đầu ra của các hàm do nhà phát triển mã hóa. Ví dụ: một hàm tính tuổi từ ngày sinh và kết quả là âm. Nó có nghĩa là phương trình không chính xác

Sao chép dữ liệu

Khi có các hàng giống hệt nhau trong tập dữ liệu, đó là sự cố dữ liệu trùng lặp. Điều này có thể xảy ra do lỗi kết hợp dữ liệu [cùng một hàng đến từ nhiều nguồn], người dùng có thể gửi câu trả lời của mình hai lần, v.v. Cách lý tưởng để xử lý sự cố chỉ là xóa các hàng sao chép

Để kiểm tra thời tiết có hàng trùng lặp hay không, có thể sử dụng chức năng sao chép gấu trúc

df.loc[df.duplicated[]]

Sau khi xác định sự tồn tại của các bản sao, chức năng pandas drop_duplicates sẽ loại bỏ các hàng trùng lặp

df.drop_duplicates[]
Kiểu dữ liệu

Bạn đã bao giờ gặp lỗi chuỗi kỳ lạ khi làm việc với cột tuổi chưa? . Do đó, nên kiểm tra kiểu dữ liệu của tất cả các cột bằng hàm pandas dtype

Ngoài ra, tôi thực sự khuyên bạn nên xem bài viết này về việc sử dụng bộ nhớ của các loại dữ liệu khác nhau và tăng tốc các quy trình bằng cách chọn đúng loại

Giảm sử dụng bộ nhớ. Làm điều này trước khi bạn bắt đầu bất kỳ Dự án khoa học dữ liệu nào

www. linkin. com

Thưởng. Vấn đề rò rỉ dữ liệu

Trước khi xây dựng mô hình, tập dữ liệu được chia thành tập huấn luyện và tập kiểm tra. Bộ kiểm tra là dữ liệu chưa nhìn thấy và được sử dụng để đánh giá hiệu suất của mô hình. Nếu bộ kiểm tra bằng cách nào đó được mô hình “nhìn thấy” trong các bước làm sạch dữ liệu hoặc tiền xử lý dữ liệu, thì đó được gọi là rò rỉ dữ liệu. Đó là lý do tại sao, dữ liệu nên được phân tách trước các bước làm sạch và tiền xử lý

Hãy chọn cách quy nạp giá trị còn thiếu làm ví dụ. Có NA trong cột số và nó được gán bằng phương pháp trung bình. Khi nó được thực hiện trước khi chia, giá trị trung bình của toàn bộ tập dữ liệu được sử dụng, nhưng nếu nó được thực hiện sau khi chia, giá trị trung bình của huấn luyện và kiểm tra riêng sẽ được sử dụng

Vấn đề với kịch bản đầu tiên là, các giá trị được gán trong tập kiểm tra sẽ liên quan đến tập huấn luyện, bởi vì giá trị trung bình là của toàn bộ tập dữ liệu. Vì vậy, khi mô hình được xây dựng với tập tàu, nó cũng sẽ “thấy” tập kiểm tra. Nhưng mục tiêu của chúng tôi trong việc phân tách là giữ cho bộ thử nghiệm hoàn toàn mới và sử dụng nó như dữ liệu mới để đánh giá hiệu suất. Đó là lý do tại sao, tập dữ liệu phải được phân tách trước khi hoạt động

Như chúng ta đã thảo luận tại sao kịch bản thứ hai là đúng, bây giờ hãy chuyển sang cách nó sẽ được triển khai trong mã. Từ những ấn tượng đầu tiên, bạn có thể nói rằng, nó không hiệu quả và nó có thể đúng. Nhưng vì vấn đề rò rỉ dữ liệu rất quan trọng và được ưu tiên, đó là cách bạn nên làm. Để làm cho nó hiệu quả, thư viện sklearn cung cấp các đường ống dẫn. Đơn giản, đường ống là sự kết hợp của tất cả các bước thao tác mà bạn gửi dữ liệu dưới dạng đầu vào và đầu ra là dữ liệu sạch. Để biết chi tiết về việc xây dựng đường ống, bạn có thể tham khảo blog này

Chúng tôi có thể sử dụng Python để làm sạch dữ liệu không?

Kết hợp tầm quan trọng của Python, Numpy và Pandas, cả hai thư viện Python [có nghĩa là các bộ công cụ được lập trình sẵn] đều là những công cụ được các nhà khoa học dữ liệu lựa chọn khi làm sạch, chuẩn bị và xử lý dữ liệu . .

Làm sạch dữ liệu trong Python có nghĩa là gì?

Làm sạch dữ liệu có nghĩa là sửa dữ liệu xấu trong tập dữ liệu của bạn . Dữ liệu xấu có thể là. ô trống. Dữ liệu sai định dạng. Dữ liệu sai.

Tại sao Python tốt cho việc dọn dẹp dữ liệu?

Sử dụng R và Python để làm sạch dữ liệu tốt hơn . Các ô đó có thể được lấp đầy bằng giá trị trung bình, trung vị hoặc giá trị cụ thể [fillna] hoặc loại bỏ hoàn toàn [dropna]. Built-in Pandas functions such as fillna and dropna allow data scientists to treat all empty cells in a range the same way. Those cells can be filled with the mean, median or specific values [fillna] or removed entirely [dropna].

Thư viện Python nào được sử dụng để làm sạch dữ liệu?

Klib . Klib là gói Python mã nguồn mở để nhập, dọn dẹp và phân tích. Đây là gói một cửa được sử dụng để dễ dàng hiểu dữ liệu và tiền xử lý của bạn.

Chủ Đề