Hướng dẫn quy trình này giải thích những thách thức về dữ liệu mà các nhà khoa học phải đối mặt và cách khắc phục chúng bằng cách sử dụng các kỹ thuật làm sạch dữ liệu với Pandas và NumPy trong Python
Bắt đầu miễn phí
Mục lục
Dữ liệu chính xác và có ý nghĩa rất quan trọng đối với bất kỳ dự án khoa học dữ liệu nào. Việc lập kế hoạch và chuẩn bị, phác thảo dữ liệu và các hoạt động phân tích tiếp theo sẽ trở nên vô nghĩa trừ khi tập dữ liệu ban đầu không có lỗi và không rõ ràng
Chuẩn bị dữ liệu chiếm phần lớn thời gian mà các nhà khoa học dữ liệu dành cho nhiệm vụ của họ. Trong một số trường hợp, nó có thể lên tới bảy mươi đến tám mươi phần trăm tổng thời gian dự án
Mặc dù đây là sự cố đã biết trong số các nỗ lực của khoa học dữ liệu, nhưng có các giải pháp để làm sạch bộ dữ liệu bằng cách sử dụng thư viện Pandas và NumPy trong Python
Hướng dẫn quy trình này sẽ xem xét lý do tại sao bắt buộc phải tạo cơ sở dữ liệu sạch trước khi xảy ra bất kỳ thao tác dữ liệu nào, các vấn đề về tập dữ liệu phổ biến mà các nhà khoa học dữ liệu phải đối mặt và cách các chức năng cụ thể trong Pandas và NumPy có thể đạt được kết quả tập dữ liệu tích cực
Các vấn đề thường gặp với dữ liệu và bộ dữ liệu
Bên cạnh khả năng truy cập dữ liệu và phạm vi tiếp cận rộng rãi mà Internet cung cấp, cùng với các công cụ thu thập và thu thập dữ liệu tự động, còn có các luồng thông tin liên tục để xem xét và phân tích.
Bạn có thể thêm vào các kho lưu trữ này một lượng lớn dữ liệu được phân phối tự do mà hầu hết các cơ quan chính phủ lưu trữ trực tuyến và dữ liệu dựa trên đám mây đắt tiền mà hầu hết các tổ chức vừa và lớn tài trợ để lưu trữ dữ liệu
Do đó, việc tiếp cận với nhiều loại thông tin không phải là thách thức mà các nhà khoa học dữ liệu phải đối mặt. Vì vậy, nếu có sẵn nhiều thông tin, tại sao các nhà khoa học dữ liệu lại dành nhiều thời gian như vậy để chuẩn bị dữ liệu?
Chất lượng dữ liệu đầu vào kém là kẻ thù chung số một đối với bất kỳ dự án trí tuệ nhân tạo hoặc máy học nào. Các hệ thống thông tin nhạy cảm với dữ liệu này chỉ có thể tạo ra các kết quả có uy tín dựa trên những gì chúng được cung cấp để xử lý
Sau đây là những thách thức chính mà các nhà khoa học dữ liệu phải đối mặt với dữ liệu đầu vào
Sao chép và Sao chép
Không chỉ các nhà khoa học dữ liệu mới có thể bị choáng ngợp với lượng dữ liệu dồi dào; . Kho dữ liệu đám mây, kho lưu trữ dữ liệu trực tuyến và cơ sở dữ liệu kinh doanh nội bộ đều sẽ có thông tin chồng chéo và với các quy trình sao lưu nội bộ, nhiều phiên bản cũng vậy.
Ngoài ra, họ có thể sẽ có các silo hệ thống và ứng dụng kinh doanh. Một lần nữa, chắc chắn có sự trùng lặp và chồng chéo đáng kể giữa các nguồn này.
Dữ liệu trùng lặp thường xảy ra với chi tiết liên hệ, ảnh hưởng đáng kể đến trải nghiệm của khách hàng. Các chiến dịch tiếp thị từ các dự án phân tích dữ liệu sẽ bị ảnh hưởng nếu một số khách hàng tiềm năng bị bỏ lỡ hoàn toàn hoặc nếu những khách hàng tiềm năng khác được liên hệ nhiều lần. Các bản sao làm tăng xác suất xảy ra kết quả phân tích sai lệch
Dữ liệu không chính xác
Độ chính xác của dữ liệu là một thành phần quan trọng đối với các ngành được quản lý chặt chẽ như chăm sóc sức khỏe. Dữ liệu không chính xác hoặc sai sẽ không cung cấp cái nhìn chính xác về thế giới thực về bất kỳ chủ đề nào được phân tích và các quyết định sai sẽ chỉ xảy ra khi phân tích dữ liệu đó.
Bất kể trải nghiệm khách hàng được cá nhân hóa được nghĩ ra và triển khai như thế nào, chúng sẽ chỉ dẫn đến sự thất vọng lan rộng. Các chiến dịch tiếp thị sẽ hoạt động kém hiệu quả và các quỹ tổ chức có giá trị sẽ bị lãng phí nếu dữ liệu khách hàng bị sai.
Dữ liệu không chính xác có thể bắt nguồn từ nhiều yếu tố, bao gồm lỗi đầu vào của con người và dữ liệu trôi dạt. Ngoài ra, chất lượng dữ liệu sẽ xuống cấp theo thời gian và có thể mất tính toàn vẹn khi dữ liệu được sao chép qua nhiều hệ thống con khác nhau. Tự động hóa quản lý dữ liệu có thể hữu ích, nhưng các công cụ chất lượng dữ liệu chuyên dụng sẽ mang lại kết quả dễ chấp nhận hơn
Ngoại lệ dữ liệu
Điểm khác biệt là một đối tượng dữ liệu khác biệt đáng kể so với các đối tượng dữ liệu còn lại trong tập dữ liệu. Chúng thường được gây ra bởi lỗi thực thi, đo lường hoặc nhập thủ công. Quá trình phát hiện ngoại lệ thường được gọi là khai thác ngoại lệ
Có rất nhiều phương pháp để phát hiện dữ liệu ngoại lệ và quá trình loại bỏ trong khung dữ liệu tương đối đơn giản
Các ngoại lệ được phát hiện bằng cách sử dụng kỹ thuật trực quan hóa hoặc đồ họa, thực hiện các công thức toán học trực tiếp trên tập dữ liệu hoặc bằng cách sử dụng phương pháp thống kê cụ thể.
Mỗi phương pháp này sẽ được thảo luận như sau
Một boxplot ghi lại tổng quan trực quan của dữ liệu chỉ bằng một hộp đơn giản và biểu đồ râu ria. Một boxplot tóm tắt dữ liệu mẫu của tập dữ liệu bằng cách sử dụng phân vị thứ 25, 50 và 75.
Chỉ bằng cách kiểm tra boxplot, người ta có thể thu thập thông tin chuyên sâu [chẳng hạn như phần tư, trung bình và giá trị ngoại lệ] trong tập dữ liệu. Ngoài ra, các đối tượng dữ liệu ngoại lệ có thể dễ dàng được phát hiện vì chúng sẽ rõ ràng liên quan đến phần lớn các đối tượng tập dữ liệu
Âm mưu phân tánBiểu đồ phân tán thường được sử dụng khi tập dữ liệu chứa dữ liệu số được ghép nối, khi biến phụ thuộc có nhiều giá trị cho từng biến độc lập hoặc khi xác định mối quan hệ giữa hai biến.
Theo một boxplot, một biểu đồ phân tán có thể được sử dụng để phát hiện đối tượng dữ liệu ngoại lệ
điểm ZĐiểm Z còn được gọi là điểm tiêu chuẩn. Giá trị hoặc điểm số giúp hiểu chính xác điểm dữ liệu cách giá trị trung bình bao xa. Và sau khi thiết lập một giá trị ngưỡng, người ta có thể sử dụng điểm số z của các giá trị điểm dữ liệu để khám phá bất kỳ giá trị ngoại lệ nào
IQR [hoặc Khoảng tứ phân vị]IQR là một cách tiếp cận để định vị các đối tượng dữ liệu ngoại lai và đây là cách tiếp cận làm sạch dữ liệu được sử dụng phổ biến và đáng tin cậy nhất trong lĩnh vực nghiên cứu
IQR là điểm chuẩn để xác định vị trí của “năm mươi người ở giữa” trong một tập dữ liệu. Trong trường hợp phạm vi là phép đo vị trí bắt đầu và kết thúc trong tập dữ liệu, IQR sẽ đo vị trí của phần lớn các giá trị.
Vì lý do này, nó được ưu tiên hơn so với các biện pháp lây lan khác khi báo cáo các mục như điểm hiệu suất giáo dục. Và nó có hiệu quả cao trong việc phát hiện các giá trị ngoại lệ
Dữ liệu mơ hồ và không chính xác
Trong phạm vi lớn và phức tạp, lỗi dữ liệu có thể xâm nhập bất chấp sự giám sát nghiêm ngặt của DBA. Ví dụ: tiêu đề cột có thể gây hiểu lầm, sự cố định dạng dữ liệu tự động xảy ra nếu quy tắc cơ sở dữ liệu phía sau, trình kích hoạt và chế độ xem kích hoạt.
Lỗi chính tả sẽ xảy ra mà không bị phát hiện, đặc biệt nếu dữ liệu tổng hợp trải rộng ra các biên giới quốc tế [chẳng hạn như sự khác biệt về chính tả phát sinh giữa tiếng Anh Anh và tiếng Anh Mỹ]. Dữ liệu mơ hồ như những ví dụ này sẽ gây ra lỗi với cả báo cáo và phân tích.
Dữ liệu bị ẩn hoặc bị thiếu
Các tổ chức thường chỉ sử dụng một phần dữ liệu của họ, trong khi phần còn lại sẽ được sao chép - và bị lãng quên - trong các silo dữ liệu sao lưu trên đám mây hoặc đổ vào kho lưu trữ dữ liệu tốc độ thấp, truy cập thấp.
Ví dụ: dữ liệu khách hàng quan trọng và có giá trị chỉ dành cho nhóm bán hàng có thể không được chia sẻ với nhóm dịch vụ khách hàng
Mặc dù hoạt động bán hàng đang bảo vệ dữ liệu có giá trị và do đó bao vây các khách hàng có giá trị, nhưng họ đang thúc đẩy một môi trường nơi tổ chức đánh mất cơ hội duy trì hồ sơ khách hàng hoàn chỉnh.
Dữ liệu ẩn bỏ qua các cơ hội khám phá có giá trị để cải thiện dịch vụ khách hàng, thiết kế sản phẩm khéo léo và tối ưu hóa quy trình kinh doanh.
Dữ liệu không nhất quán
Khi làm việc trên nhiều nguồn dữ liệu, rất có thể gặp phải sự không khớp với cùng một thông tin trên các nguồn đó.
Sự khác biệt sẽ xảy ra giữa sự khác biệt về định dạng, đơn vị đo lường và lỗi chính tả. Ngoài ra, dữ liệu không nhất quán thường xảy ra trong các dự án di chuyển dữ liệu do hợp nhất máy chủ hoặc các dự án nâng cấp máy chủ.
Dữ liệu không nhất quán sẽ tích tụ theo thời gian và giảm thiểu giá trị của chúng. Tuy nhiên, các tổ chức dựa trên dữ liệu theo dõi chặt chẽ tính nhất quán của dữ liệu vì họ hiểu nhu cầu về dữ liệu chính xác và đáng tin cậy để hỗ trợ nỗ lực phân tích của họ
Khám phá cách dữ liệu đào tạo có thể tạo ra hoặc phá vỡ các dự án AI của bạn và cách triển khai triết lý AI lấy dữ liệu làm trung tâm trong các dự án ML của bạn Tải xuống Sách trắngTìm hiểu thêm
Cách thực hiện kiểm tra tập dữ liệu định kỳ
Vì vậy, làm cách nào để chống lại những thách thức khác nhau mà các nhà khoa học dữ liệu phải đối mặt với dữ liệu sai lệch của họ? . Họ là Pandas và NumPy
Các công cụ Python chính để làm sạch bộ dữ liệu
gấu trúcPandas là gói thư viện mã nguồn mở Python được các nhà khoa học dữ liệu sử dụng rộng rãi để phân tích dữ liệu phức tạp và các dự án máy học/AI.
Pandas đã được xây dựng trên một gói thư viện khác có tên NumPy. Do đó, pandas dễ dàng hỗ trợ các mảng đa chiều và được coi là một trong những gói quản lý dữ liệu phổ biến nhất hiện có
Pandas hoạt động tốt cùng với các mô-đun khoa học dữ liệu khác trong hệ sinh thái Python và thường tương thích với mọi bản nâng cấp Python và phiên bản mới
NumPy
Thuật ngữ NumPy là một dạng ký hiệu ngắn cho Numerical Python. Nó là một gói thư viện chức năng bao gồm các đối tượng mảng và tập hợp các thủ tục con để xử lý các mảng đa chiều đó. Khi sử dụng NumPy, có thể thực hiện các phép toán logic và toán học khác nhau
Nhập Pandas và NumPy bằng Python
Hướng dẫn quy trình này giả định rằng người đọc đã có hiểu biết cơ bản về các thư viện Pandas và NumPy, bao gồm những điều sau đây
Các đối tượng sê-ri và DataFrame,
Các phương thức phổ biến được áp dụng cho các đối tượng này và
Hiểu biết về NaN của NumPy
Để nhập cả thư viện Pandas và NumPy vào Python, các lệnh sau được sử dụng
import pandas as pd
import numpy as np
Bước tiếp theo là đọc và cung cấp quyền truy cập vào dữ liệu thô yêu cầu thao tác và làm sạch dữ liệu. Ví dụ: tạo DataFrame từ tệp CSV có tên. 'DF-Rugby-Nhân sự-Hồ sơ-Lịch sử. csv'.
Trong ví dụ làm sạch dữ liệu bên dưới, chúng tôi chuyển một đường dẫn đến pd. read_csv. Điều này có nghĩa là tất cả các bộ dữ liệu nằm trong một thư mục có tên DatasetLibrary, nằm trong thư mục làm việc hiện tại của chúng tôi.
df = pd.read_csv['DatasetLibrary/DF-Rugby-Personnel-File-Historic']
df.head[]
Khi các thư viện có thể truy cập được và dữ liệu thô được tải vào thư mục làm việc của chúng tôi, chúng tôi có thể bắt đầu quá trình làm sạch dữ liệu
Xóa khoảng trắng
Khoảng trắng không cần thiết sẽ làm tăng kích thước tập dữ liệu trong cơ sở dữ liệu của bạn. Nó cũng cản trở việc tìm kiếm các bản sao là một thách thức, vì hầu hết các thuật toán tìm kiếm sẽ tính đến khoảng trắng khi thực hiện các thuật toán khớp của chúng
Hoạt động này sẽ kiểm tra tập dữ liệu được tải sẵn để tìm khoảng trắng, như chúng ta thấy trong các cột Tên, Nhóm và Vị trí bên dưới. Sau đó, chúng tôi sẽ loại bỏ các phần tử khoảng trắng của dữ liệu một cách có hệ thống
Mã python sau đây, sau khi được thực thi, sẽ tìm kiếm và xóa khoảng trắng trong các cột đã đề cập trước đó. Đoạn mã dưới đây chuyển tên cột cho hàm thay thế [] để xóa các khoảng trắng ở đầu và cuối trong tập dữ liệu
# remove whitespaces from Name column
data["Name"].str.replace[' ', '']
# remove whitespaces from Team column
data["Team"].str.replace[' ', '']
# remove whitespaces from Position column
data["Position"].str.replace[' ', '']
Để hoàn tất hoạt động làm sạch dữ liệu, hãy kiểm tra lại tập dữ liệu để xác nhận rằng tất cả khoảng trắng đã được xóa
Thả các cột trong một khung dữ liệu
Đôi khi, không phải tất cả các danh mục dữ liệu trong tập dữ liệu đều hữu ích cho nhiệm vụ hiện tại. Do đó, chúng sẽ cần được xóa khỏi tập dữ liệu của bạn trước khi quá trình phân tích diễn ra
Đối với ví dụ tập dữ liệu của chúng tôi, cột - 'Dấu sao' không hữu ích và do đó việc giữ lại danh mục dữ liệu này sẽ tiêu tốn dung lượng và có khả năng .
Pandas cung cấp một phương pháp hữu ích để xóa các hàng hoặc cột không mong muốn khỏi DataFrame bằng cách sử dụng hàm drop[].
Chúng ta có thể thả cột này như sau
to_drop = ['Star Sign']
df.drop[to_drop, inplace=True, axis=1]
Trong đoạn mã trên, một danh sách đã được xác định chứa các tên cột cần loại bỏ [chỉ một trong trường hợp của chúng tôi]. Hàm drop[] được thực thi, sử dụng tham số True tại chỗ và tham số trục được đặt thành 1.
Lệnh python này cho Pandas biết rằng các thay đổi sẽ được thực hiện trực tiếp trong đối tượng của chúng ta và tìm kiếm các giá trị cột đó sẽ bị loại bỏ
Kiểm tra DataFrame sau hoạt động này sẽ cho thấy cột không mong muốn đã bị xóa
Sửa từ sai chính tả
Bên cạnh các lỗi định dạng, sẽ thường có các từ sai chính tả trong tập dữ liệu. Tình trạng này làm cho việc phân tích dữ liệu trở nên khó khăn. Để giải quyết tình huống này, có các thư viện trình kiểm tra chính tả dựng sẵn trong Python có thể dễ dàng sử dụng - như sau.
Chạy lệnh sau để liệt kê tất cả các từ duy nhất bằng cách sử dụng từ khóa unique[] trong cột Vị trí.
# Turn output into a list of unique words from the Position column
unique_type = list[data["Position"].str.split[", ", expand=True].stack[].unique[]]
# Print out the list
unique_type
Như chúng ta có thể thấy, có hai từ sai chính tả [Proppe và Flankker] that should be “Prop” and “Flanker.” So now one can proceed through the entire dataset, find which rows have these misspelled words, and remediate them.
# Print out the list
unique_type
['Prop',
'Hooker',
'No. 8',
'Proppe',
'Lock',
'Scrum-half',
'Fly-half',
'Flanker',
'Flankker',
'Centre',
'Winger',
'Fullback']
Loại bỏ các giá trị trùng lặp
Các bộ dữ liệu lớn thường có các mục trùng lặp, sẽ cần xác định và loại bỏ. Quá trình phát hiện và xóa dữ liệu sai đó trước tiên là tìm kiếm các bản sao theo tên cột trong tập dữ liệu
Mỗi mục trong tập dữ liệu mẫu của chúng tôi phải có một mục duy nhất trong cột Tên. Tuy nhiên, như chúng ta có thể thấy bên dưới, Callum có hai mục, một ở hàng 5 và một ở hàng 7. Ngoài ra, vì cột Cân nặng chỉ nên chứa số nên hàng 7 chứa văn bản số cân thừa trong cột Cân nặng. Hàng này sẽ cần phải được gỡ bỏ
Chạy lệnh python sau để xóa bản sao đầu tiên bằng dữ liệu. drop_duplicates và giữ lần xuất hiện hàng cuối cùng [keep="last"]
data.drop_duplicates[subset=["Name"], keep="last", inplace=True]
data.head[6]
Phát hiện và sửa lỗi ngoại lệ
Để xóa một ngoại lệ, người ta phải tuân theo quy trình tương tự xóa mục nhập dữ liệu sai khỏi tập dữ liệu. Và điều này liên quan đến việc tìm vị trí chính xác của nó trong tập dữ liệu. Phần lớn thời gian đối phó với các ngoại lệ là phát hiện sự tồn tại của chúng. Theo phương pháp phát hiện được sử dụng, danh sách kết quả của tất cả các mục dữ liệu thỏa mãn định nghĩa ngoại lệ sẽ cần phải bị xóa
dataframe.drop[row_index, inplace = True]
Sửa lỗi định dạng
Thay vì xử lý dữ liệu trùng lặp, một tình huống tiêu chuẩn khác đang khắc phục các lỗi định dạng trong tập dữ liệu. Bản ghi dữ liệu không chính xác chứa các vấn đề về định dạng có thể được khắc phục dễ dàng bằng Python
Có lẽ có một mục nhập trong tập dữ liệu của bạn với các từ được phân tách bằng dấu gạch ngang - theo ví dụ bên dưới. Nó phải là dấu phẩy và dấu cách. Nếu vậy, việc thực thi các lệnh apply[] và replace[] là bắt buộc
Chạy lệnh bên dưới để xem dữ liệu trông như thế nào trong DataFrame của bạn.
________số 8_______Chạy lệnh sau bên dưới để thay thế dấu gạch ngang bằng dấu phẩy
data["Injuries"] = data["Injuries"].apply[lambda x: x.replace[" -", ","]]
Chạy lại dữ liệu. lệnh loc như trong bước một trước đó để xác nhận hiện tại không có dấu gạch ngang nào trong dữ liệu
________số 8_______Như có thể thấy bên dưới, đầu ra hiện hiển thị dấu phẩy ngăn cách các từ
Phần kết luận
Các vấn đề về chất lượng dữ liệu có thể là cơ hội được ngụy trang để giải quyết nhằm ngăn ngừa mất dữ liệu trong tương lai và dự đoán không chính xác. Với sự hiểu biết chung về các kỹ thuật chất lượng dữ liệu, hãy tận dụng dữ liệu của bạn để cải thiện trải nghiệm của khách hàng, khám phá các cơ hội tiếp thị mới và thúc đẩy tăng trưởng kinh doanh.
Hướng dẫn quy trình này đã mô tả những thách thức chính về dữ liệu mà các nhà khoa học dữ liệu phải đối mặt hàng ngày và chúng tôi đã học cách thực hiện các hoạt động làm sạch dữ liệu đơn giản nhưng mạnh mẽ bằng Python.
Chúng tôi cũng đã biết rằng Pandas và NumPy là các gói thư viện Python phổ biến và có giá trị giúp tiết kiệm thời gian quý báu cho việc dọn dẹp bộ dữ liệu
Tìm hiểu thêm về ghi nhãn dữ liệu
chú thích dữ liệu
Học chủ động để phát hiện đối tượngLàm cách nào để chú thích không gây khó khăn?Làm cách nào để chú thích đúng dữ liệu? . tận dụng tính năng phân đoạn tương tác để đạt được tốc độ và chất lượng hiện đạiData annotation: leveraging interactive segmentation to achieve state of the art quality and speedCải thiện chú thích dữ liệu bằng Siêu pixelNhững điều có thể xảy ra sai trong quá trình chú thích và cách tránh chúngData annotation: leveraging interactive segmentation to achieve state of the art quality and speed
ghi nhãn dữ liệu
Làm cách nào để xây dựng một kế hoạch gắn nhãn dữ liệu hiệu quả?Cách triển khai thành công việc giám sát liên tục và gắn nhãn dữ liệu cho một chatbot với Công nghệ Kili