Rate this post

    Dữ liệu trong thế giới thực có xu hướng không đầy đủ, nhiễu và không nhất quán. Các quy trình làm sạch dữ liệu (hoặc làm sạch dữ liệu) cố gắng điền vào các giá trị còn thiếu, loại bỏ nhiễu trong khi xác định các ngoại lệ và sửa chữa các điểm không nhất quán trong dữ liệu. Trong phần này, bạn sẽ nghiên cứu các phương pháp cơ bản để làm sạch dữ liệu.

    Các bài viết liên quan:

    Giá trị bị thiếu

    Hãy tưởng tượng rằng bạn cần phân tích dữ liệu bán hàng và khách hàng của AllElectronics. Bạn lưu ý rằng nhiều bộ giá trị không có giá trị được ghi lại cho một số thuộc tính như thu nhập của khách hàng. Bạn có thể điền các giá trị còn thiếu cho thuộc tính này như thế nào? Hãy xem xét các phương pháp sau.

    • Bỏ qua tuple: Điều này thường được thực hiện khi nhãn lớp bị thiếu (giả sử nhiệm vụ khai thác liên quan đến phân loại). Phương pháp này không hiệu quả lắm, trừ khi bộ tuple chứa một số thuộc tính bị thiếu giá trị. Nó đặc biệt kém khi tỷ lệ phần trăm giá trị bị thiếu trên mỗi thuộc tính thay đổi đáng kể. Bằng cách bỏ qua tuple, chúng tôi không sử dụng các giá trị của các thuộc tính còn lại trong tuple. Dữ liệu như vậy có thể hữu ích cho nhiệm vụ hiện tại.
    • Điền giá trị còn thiếu theo cách thủ công: Nhìn chung, cách tiếp cận này tốn thời gian và có thể không khả thi với một tập dữ liệu lớn với nhiều giá trị bị thiếu.
    • Sử dụng hằng số toàn cục để điền vào giá trị bị thiếu: Thay thế tất cả các giá trị thuộc tính bị thiếu bằng cùng một hằng số, chẳng hạn như nhãn như “Không xác định” hoặc −∞. Nếu các giá trị bị thiếu được thay thế bằng, chẳng hạn như “Không xác định”, thì chương trình khai thác có thể nhầm tưởng rằng chúng tạo thành một khái niệm thú vị, vì tất cả chúng đều có một giá trị chung – đó là “Không xác định”. Do đó, mặc dù phương pháp này đơn giản, nhưng nó không phải là tuyệt đối.
    • Sử dụng thước đo xu hướng trung tâm cho thuộc tính (ví dụ: giá trị trung bình) để điền vào giá trị còn thiếu: Chương 2 đã thảo luận về các thước đo xu hướng trung tâm, cho biết giá trị “trung bình” của phân phối dữ liệu. Đối với phân phối dữ liệu bình thường (đối xứng), giá trị trung bình có thể được sử dụng, trong khi phân phối dữ liệu lệch nên sử dụng giá trị trung bình (Phần 2.2). Ví dụ: giả sử rằng phân phối dữ liệu liên quan đến thu nhập của khách hàng của AllElectronics là đối xứng và thu nhập trung bình là 56.000 đô la. Sử dụng giá trị này để thay thế giá trị còn thiếu cho thu nhập.
    • Sử dụng giá trị trung bình hoặc giá trị trung bình của thuộc tính cho tất cả các mẫu thuộc cùng một loại với bộ giá trị đã cho: Ví dụ: nếu phân loại khách hàng theo rủi ro tín dụng, chúng tôi có thể thay thế giá trị còn thiếu bằng giá trị thu nhập trung bình cho khách hàng trong cùng loại rủi ro tín dụng như của bộ tuple đã cho. Nếu phân phối dữ liệu cho một lớp nhất định bị lệch, giá trị trung vị là lựa chọn tốt hơn.
    • Sử dụng giá trị có thể xảy ra nhất để điền vào giá trị còn thiếu: Giá trị này có thể được xác định bằng hồi quy, các công cụ dựa trên suy luận bằng cách sử dụng hình thức Bayes hoặc quy nạp cây quyết định. Ví dụ: bằng cách sử dụng các thuộc tính khách hàng khác trong tập dữ liệu của mình, bạn có thể xây dựng cây quyết định để dự đoán các giá trị còn thiếu cho thu nhập. Cây quyết định và suy luận Bayes lần lượt được mô tả chi tiết trong Chương 8 và 9.

    Điều quan trọng cần lưu ý là, trong một số trường hợp, giá trị bị thiếu có thể không ám chỉ lỗi trong dữ liệu! Ví dụ: khi đăng ký thẻ tín dụng, ứng viên có thể được yêu cầu cung cấp số bằng lái xe của họ. Thí sinh không có bằng lái xe đương nhiên có thể để trống trường này. Biểu mẫu phải cho phép người trả lời chỉ định các giá trị như “không áp dụng”. Các quy trình phần mềm cũng có thể được sử dụng để khám phá các giá trị rỗng khác (ví dụ: “không biết”, “?” Hoặc “không có”). Tốt nhất, mỗi thuộc tính nên có một hoặc nhiều quy tắc liên quan đến điều kiện rỗng. Các quy tắc có thể chỉ định liệu có cho phép các giá trị null hay không và / hoặc cách các giá trị đó nên được xử lý hoặc chuyển đổi. Các trường cũng có thể được cố ý để trống nếu chúng được cung cấp trong bước sau của quy trình kinh doanh. Do đó, mặc dù chúng tôi có thể cố gắng hết sức để làm sạch dữ liệu sau khi nó bị thu giữ, nhưng thiết kế cơ sở dữ liệu và thủ tục nhập dữ liệu tốt sẽ giúp giảm thiểu số lượng giá trị bị thiếu hoặc lỗi ngay từ đầu.

    Dữ liệu nhiễu

    “Nhiễu là gì?” Nhiễu là một sai số hoặc phương sai ngẫu nhiên trong một biến đo được. Trong Chương 2, chúng ta đã thấy cách một số kỹ thuật mô tả thống kê cơ bản (ví dụ: đồ thị hình hộp và đồ thị phân tán) và các phương pháp trực quan hóa dữ liệu có thể được sử dụng như thế nào để xác định các ngoại lệ, có thể biểu thị nhiễu. Với một thuộc tính số chẳng hạn như giá, chẳng hạn, làm cách nào chúng ta có thể “xử lý” dữ liệu để loại bỏ nhiễu? Hãy xem các kỹ thuật làm mịn dữ liệu sau đây.

    • Binning: Các phương pháp thùng rác làm trơn một giá trị dữ liệu đã được sắp xếp bằng cách tham khảo “vùng lân cận” của nó, tức là các giá trị xung quanh nó. Các giá trị đã sắp xếp được phân phối vào một số “thùng” hoặc thùng. Bởi vì các phương thức binning tham khảo vùng lân cận của các giá trị, chúng thực hiện làm mịn cục bộ. Hình 19 minh họa một số kỹ thuật binning. Trong ví dụ này, dữ liệu về giá trước tiên được sắp xếp và sau đó được phân chia thành các thùng tần số bằng nhau có kích thước 3 (tức là mỗi thùng chứa ba giá trị). Khi làm mịn bằng phương tiện thùng, mỗi giá trị trong thùng được thay thế bằng giá trị trung bình của thùng. Ví dụ: giá trị trung bình của các giá trị 4, 8 và 15 trong Thùng 1 là 9. Do đó, mỗi giá trị ban đầu trong thùng này được thay thế bằng giá trị 9.

    Tương tự, có thể sử dụng làm mịn bằng các trung vị bin, trong đó mỗi giá trị bin được thay thế bằng trung vị bin. Khi làm mịn các ranh giới của thùng, các giá trị tối thiểu và lớn nhất trong một thùng nhất định được xác định là các ranh giới của thùng. Mỗi giá trị bin sau đó được thay thế bằng giá trị biên gần nhất. Nói chung, chiều rộng càng lớn thì hiệu quả của việc làm mịn càng lớn. Ngoài ra, các thùng có thể có chiều rộng bằng nhau, trong đó phạm vi khoảng giá trị trong mỗi thùng là không đổi. Binning cũng được sử dụng như một kỹ thuật tùy biến và được thảo luận thêm trong Phần 3.5.

    Hình 19: Các phương pháp thùng rác để làm mịn dữ liệu.

    • Hồi quy: Việc làm mịn dữ liệu cũng có thể được thực hiện bằng hồi quy, một kỹ thuật tuân theo các giá trị dữ liệu với một hàm. Hồi quy tuyến tính liên quan đến việc tìm dòng “tốt nhất” để phù hợp với hai thuộc tính (hoặc biến) để một thuộc tính có thể được sử dụng để dự đoán thuộc tính kia. Hồi quy nhiều tuyến tính là một phần mở rộng của hồi quy tuyến tính, trong đó có nhiều hơn hai thuộc tính có liên quan và dữ liệu phù hợp với bề mặt đa chiều. Hồi quy được mô tả kỹ hơn trong Phần 3.4.5.
    • Phân tích ngoại lệ: Ví dụ: các ngoại lệ có thể được phát hiện bằng cách phân cụm, trong đó các giá trị tương tự được tổ chức thành các nhóm hoặc “cụm”. Về mặt trực quan, các giá trị nằm ngoài tập hợp các cụm có thể được coi là các giá trị ngoại lệ. Chương 12 dành riêng cho chủ đề phân tích ngoại lệ.

    Nhiều phương pháp làm mịn dữ liệu cũng được sử dụng để tùy biến dữ liệu (một dạng biến đổi dữ liệu) và giảm dữ liệu. Ví dụ: các kỹ thuật binning được mô tả trước đây làm giảm số lượng các giá trị riêng biệt cho mỗi thuộc tính. Điều này hoạt động như một hình thức giảm dữ liệu cho các phương pháp khai thác dữ liệu dựa trên logic, chẳng hạn như quy nạp cây quyết định, phương pháp này lặp đi lặp lại so sánh giá trị trên dữ liệu được sắp xếp. Cấu trúc phân cấp khái niệm là một dạng dữ liệu riêng biệt cũng có thể được sử dụng để làm mịn dữ liệu. Ví dụ, một hệ thống phân cấp khái niệm về giá có thể ánh xạ các giá trị giá thực thành rẻ, giá vừa phải và đắt, do đó làm giảm số lượng giá trị dữ liệu được xử lý bởi khai thác.

    Hình 20: Biểu đồ dữ liệu khách hàng 2-D liên quan đến vị trí của khách hàng trong một thành phố, hiển thị ba cụm dữ liệu. Các giá trị ngoại lai có thể được phát hiện là các giá trị nằm ngoài nhóm cụm.

    Làm sạch dữ liệu như một quy trình

    Các giá trị bị thiếu, nhiễu và không nhất quán góp phần làm cho dữ liệu không chính xác. Cho đến nay, chúng ta đã xem xét các kỹ thuật để xử lý dữ liệu bị thiếu và làm mịn dữ liệu. “Nhưng làm sạch dữ liệu là một công việc lớn. Còn về việc làm sạch dữ liệu như một quá trình? Chính xác thì người ta tiến hành giải quyết nhiệm vụ này như thế nào? Có bất kỳ công cụ nào ngoài đó để giúp đỡ không? ”.

    Phát hiện sự khác biệt của dữ liệu

    Bước đầu tiên trong quá trình làm sạch dữ liệu là phát hiện sự khác biệt. Sự khác biệt có thể do một số yếu tố gây ra, bao gồm các biểu mẫu nhập dữ liệu được thiết kế kém có nhiều trường tùy chọn, lỗi của con người trong quá trình nhập dữ liệu, lỗi cố ý (ví dụ: người trả lời không muốn tiết lộ thông tin về họ) và phân rã dữ liệu (ví dụ: địa chỉ lỗi thời). Sự khác biệt cũng có thể phát sinh từ việc trình bày dữ liệu không nhất quán và việc sử dụng mã không nhất quán. Các nguồn khác biệt khác bao gồm lỗi trong các thiết bị đo đạc ghi lại dữ liệu và lỗi hệ thống. Lỗi cũng có thể xảy ra khi dữ liệu được sử dụng (không đầy đủ) cho các mục đích khác với mục đích ban đầu. Cũng có thể có sự mâu thuẫn do tích hợp dữ liệu (ví dụ: trong đó một thuộc tính nhất định có thể có các tên khác nhau trong các cơ sở dữ liệu khác nhau).

    “Vì vậy, làm thế nào chúng ta có thể tiến hành phát hiện sự khác biệt?” Như một điểm khởi đầu, hãy sử dụng bất kỳ kiến ​​thức nào bạn có thể đã có về các thuộc tính của dữ liệu. Kiến thức hoặc “dữ liệu về dữ liệu” như vậy được gọi là siêu dữ liệu. Ví dụ, kiểu dữ liệu và miền của mỗi thuộc tính là gì? Các giá trị được chấp nhận cho mỗi thuộc tính là gì? Các mô tả dữ liệu thống kê cơ bản được thảo luận trong Phần 2.2 ở đây rất hữu ích để nắm bắt các xu hướng dữ liệu và xác định các điểm bất thường.

    Ví dụ: tìm giá trị trung bình, giá trị trung bình và chế độ. Dữ liệu đối xứng hay lệch? Phạm vi giá trị là gì? Tất cả các giá trị có nằm trong phạm vi mong đợi không? Độ lệch chuẩn của mỗi thuộc tính là gì? Các giá trị chênh lệch nhiều hơn hai độ lệch chuẩn so với giá trị trung bình của một thuộc tính nhất định có thể được gắn cờ là giá trị ngoại lệ tiềm ẩn. Có bất kỳ sự phụ thuộc nào đã biết giữa các thuộc tính không? Trong bước này, bạn có thể viết các tập lệnh của riêng mình và / hoặc sử dụng một số công cụ mà chúng ta sẽ thảo luận thêm ở phần sau. Từ đó, bạn có thể tìm thấy tiếng ồn, giá trị ngoại lai và giá trị bất thường cần điều tra.

    Là một nhà phân tích dữ liệu, bạn nên đề phòng việc sử dụng mã không nhất quán và mọi biểu diễn dữ liệu không nhất quán (ví dụ: “2010/12/25” và 25/12/2010” cho ngày). Quá tải trường là một nguồn lỗi khác thường xảy ra khi các nhà phát triển ép các định nghĩa thuộc tính mới vào các phần (bit) không sử dụng của các thuộc tính đã được xác định (ví dụ: một bit không sử dụng của một thuộc tính có phạm vi giá trị chỉ sử dụng, chẳng hạn, 31 trong số 32 bit).

    Dữ liệu cũng cần được kiểm tra liên quan đến các quy tắc duy nhất, quy tắc liên tiếp và quy tắc rỗng. Một quy tắc duy nhất nói rằng mỗi giá trị của thuộc tính đã cho phải khác với tất cả các giá trị khác của thuộc tính đó. Quy tắc liên tiếp nói rằng không thể thiếu giá trị giữa giá trị thấp nhất và cao nhất cho thuộc tính và tất cả các giá trị cũng phải là duy nhất (ví dụ: như trong số séc).

    Quy tắc null chỉ định việc sử dụng khoảng trống, dấu chấm hỏi, ký tự đặc biệt hoặc các chuỗi khác có thể chỉ ra điều kiện rỗng (ví dụ: trong đó giá trị cho một thuộc tính nhất định không có sẵn) và cách xử lý các giá trị đó. Như đã đề cập trong Phần trước, lý do thiếu giá trị có thể bao gồm (1) người ban đầu được yêu cầu cung cấp giá trị cho thuộc tính từ chối và / hoặc nhận thấy rằng thông tin được yêu cầu không áp dụng được (ví dụ: thuộc tính số giấy phép được để trống bởi người đi ngược chiều (nondrivers); (2) người nhập dữ liệu không biết giá trị chính xác; hoặc (3) giá trị sẽ được cung cấp bởi bước sau của quy trình. Quy tắc null phải chỉ định cách ghi lại điều kiện rỗng, chẳng hạn như để lưu trữ số 0 cho thuộc tính số, khoảng trống cho thuộc tính ký tự hoặc bất kỳ quy ước nào khác có thể được sử dụng (ví dụ: các mục nhập như “không biết” hoặc “?” nên được chuyển thành trống).

    Có một số công cụ thương mại khác nhau có thể hỗ trợ trong bước phát hiện sự khác biệt. Các công cụ lọc dữ liệu sử dụng kiến thức miền đơn giản (ví dụ: kiến thức về địa chỉ bưu điện và kiểm tra chính tả) để phát hiện lỗi và sửa chữa dữ liệu. Các công cụ này dựa vào kỹ thuật phân tích cú pháp và đối sánh mờ khi làm sạch dữ liệu từ nhiều nguồn. Các công cụ kiểm tra dữ liệu tìm ra sự khác biệt bằng cách phân tích dữ liệu để khám phá các quy tắc và mối quan hệ, đồng thời phát hiện dữ liệu vi phạm các điều kiện đó. Chúng là các biến thể của các công cụ khai thác dữ liệu. Ví dụ, họ có thể sử dụng phân tích thống kê để tìm các mối tương quan hoặc phân cụm để xác định các ngoại lệ. Họ cũng có thể sử dụng các mô tả dữ liệu thống kê cơ bản được trình bày trong Phần trước.

    Một số mâu thuẫn dữ liệu có thể được sửa theo cách thủ công bằng cách sử dụng các tham chiếu bên ngoài. Ví dụ, các lỗi được thực hiện khi nhập dữ liệu có thể được sửa chữa bằng cách thực hiện theo dõi trên giấy. Tuy nhiên, hầu hết các lỗi sẽ yêu cầu biến đổi dữ liệu. Có nghĩa là, một khi chúng tôi tìm thấy sự khác biệt, chúng tôi thường cần xác định và áp dụng (một loạt) phép biến đổi để sửa chúng.

    Các công cụ thương mại có thể hỗ trợ trong bước chuyển đổi dữ liệu. Các công cụ di chuyển dữ liệu cho phép chỉ định các phép biến đổi đơn giản, chẳng hạn như thay thế chuỗi . Các công cụ ETL (trích xuất / chuyển đổi / tải) cho phép người dùng chỉ định các chuyển đổi thông qua giao diện người dùng đồ họa (GUI). Các công cụ này thường chỉ hỗ trợ một tập hợp các biến đổi bị hạn chế, do đó, thông thường, chúng tôi cũng có thể chọn viết các tập lệnh tùy chỉnh cho bước này của quy trình làm sạch dữ liệu.

    Phát hiện sai lệch và chuyển đổi dữ liệu

    Quá trình hai bước phát hiện sai lệch và chuyển đổi dữ liệu (để sửa sai lệch) lặp đi lặp lại. Tuy nhiên, quá trình này dễ xảy ra lỗi và tốn thời gian. Một số phép biến đổi có thể tạo ra nhiều khác biệt hơn. Một số chênh lệch lồng ghép chỉ có thể được phát hiện sau khi những sai lệch khác đã được khắc phục. Ví dụ: lỗi đánh máy, chẳng hạn như “20010” trong trường năm chỉ có thể hiển thị sau khi tất cả các giá trị ngày đã được chuyển đổi sang định dạng thống nhất.

    Việc chuyển đổi thường được thực hiện như một quá trình hàng loạt trong khi người dùng chờ đợi mà không có phản hồi. Chỉ sau khi quá trình chuyển đổi hoàn tất, người dùng mới có thể quay lại và kiểm tra để đảm bảo không có bất thường mới nào được tạo nhầm. Thông thường, cần phải lặp lại nhiều lần trước khi người dùng hài lòng. Bất kỳ bộ giá trị nào không thể được xử lý tự động bởi một phép chuyển đổi nhất định thường được ghi vào một tệp mà không có bất kỳ lời giải thích nào về lý do đằng sau sự thất bại của chúng. Do đó, toàn bộ quá trình làm sạch dữ liệu cũng bị thiếu tính tương tác.

    Các cách tiếp cận mới để làm sạch dữ liệu nhấn mạnh vào việc tăng tính tương tác. Ví dụ, Potter’s Wheel là một công cụ dọn dẹp dữ liệu có sẵn công khai, tích hợp tính năng phát hiện và chuyển đổi sự khác biệt. Người dùng dần dần xây dựng một loạt các chuyển đổi bằng cách soạn và gỡ lỗi các chuyển đổi riêng lẻ, từng bước một, trên giao diện giống như bảng tính.

    Các phép biến đổi có thể được xác định bằng đồ thị hoặc bằng cách cung cấp các ví dụ. Kết quả được hiển thị ngay lập tức trên các bản ghi hiển thị trên màn hình. Người dùng có thể chọn hoàn tác các phép biến đổi để các phép biến đổi gây ra các lỗi bổ sung có thể được “xóa”. Công cụ tự động thực hiện kiểm tra sự khác biệt trong nền trên chế độ xem dữ liệu được chuyển đổi mới nhất. Người dùng có thể dần dần phát triển và tinh chỉnh các chuyển đổi khi phát hiện thấy sự khác biệt, dẫn đến việc dọn dẹp dữ liệu hiệu quả và hiệu quả hơn.

    Một cách tiếp cận khác để tăng tính tương tác trong việc dọn dẹp dữ liệu là phát triển các ngôn ngữ khai báo cho đặc điểm kỹ thuật của các toán tử chuyển đổi dữ liệu. Công việc như vậy tập trung vào việc xác định các phần mở rộng mạnh mẽ cho SQL và các thuật toán cho phép người dùng thể hiện các thông số kỹ thuật làm sạch dữ liệu một cách hiệu quả.

    Khi chúng tôi khám phá thêm về dữ liệu, điều quan trọng là phải liên tục cập nhật siêu dữ liệu để phản ánh kiến thức này. Điều này sẽ giúp tăng tốc độ dọn dẹp dữ liệu trên các phiên bản sau của cùng một kho dữ liệu.

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    Contact Me on Zalo
    Call now