Hướng dẫn python data anonymization - ẩn danh dữ liệu python

Mở dữ liệu riêng tư của bạn cho thế giới

Hướng dẫn python data anonymization - ẩn danh dữ liệu python

https://c1.wallpaperflare.com/preview/176/830/383/classified-background-blog-business.jpg

Chúng ta sống trong một thế giới đầy dữ liệu. Và hầu hết các dữ liệu thời gian là cá nhân và nhạy cảm. Chúng tôi phải đối mặt với các loại dữ liệu khác nhau hàng ngày và thông thường khách hàng của chúng tôi không muốn chia sẻ dữ liệu riêng tư của họ với thứ ba. Nhưng điều gì sẽ xảy ra nếu họ muốn thuê một freelancer hoặc một công ty gia công? Làm thế nào họ có thể truyền dữ liệu một cách tự do, nhưng cũng không lo lắng về rò rỉ dữ liệu tiềm năng? Đó là nơi mà ẩn danh dữ liệu/mặt nạ dữ liệu xuất hiện.

Nói một cách đơn giản, ẩn danh dữ liệu là một quá trình thấm dữ liệu theo cách mà chúng ta có thể nói nữa, người mà dữ liệu đề cập đến. Tùy thuộc vào mục tiêu cuối cùng, chúng tôi cũng có thể muốn ẩn danh không ảnh hưởng đến những hiểu biết có thể có trong dữ liệu và các thuộc tính thống kê của nó. Để đạt được rằng chúng ta phải hiểu kỹ dữ liệu của mình, các kỹ thuật chúng ta đang áp dụng và những thuộc tính nào chúng ta muốn lưu giữ.

https://www.wallpaperflare.com/ classified-background-blog-business-cadition-data-wallpaper-ulbvz

Chúng tôi đã phát triển một thư viện Python đơn giản, nhưng phong phú với chức năng để ẩn danh dữ liệu. Anonymypy là một bộ công cụ chung cho ẩn danh dữ liệu và mặt nạ, như hiện tại, nó cung cấp nhiều chức năng cho ẩn danh bảng và hình ảnh. Nó sử dụng hiệu quả của gấu trúc và gói gọn các thư viện hiện có như Faker. Mục tiêu của chúng tôi là làm cho ẩn danh dữ liệu & mặt nạ càng trực quan càng tốt. Hãy để xem cách nó hoạt động.

Ẩn danh một bộ dữ liệu

Ví dụ, chúng ta hãy ẩn danh một bộ dữ liệu-UK-500.CSV.

Hãy để tải dữ liệu và xem chúng tôi có loại dữ liệu nào.

import pandas as pdurl = r'https://raw.githubusercontent.com/ArtLabss/open-data-anonimizer/0287f675a535101f145cb975baf361a96ff71ed3/examples/files/new.csv'
df = pd.read_csv(url, parse_dates=['birthdate'])
df.head()

Bằng cách nhìn vào các cột, chúng tôi thấy rằng tất cả các cột chứa một số thông tin nhạy cảm. Tốt, điều đó có nghĩa là chúng ta sẽ phải ẩn danh tất cả các cột và sẽ có thể hiển thị tất cả sức mạnh của gói ẩn danh.

Trước tiên, hãy bắt đầu bằng cách cài đặt thư viện Anonympy. Điều này có thể được thực hiện trong 2 bước:

PIP Cài đặt ANONonyPY PIP Cài đặt Cape-Privacy-Không gian hàng
pip install cape-privacy — no-deps

Nó rất quan trọng để biết loại cột trước khi áp dụng bất kỳ phép biến đổi nào. Hãy để kiểm tra các loại dữ liệu và xem những phương pháp nào có sẵn cho chúng tôi.

from anonympy.pandas import dfAnonymizer
from anonympy.pandas.utils import available_methods
anonym = dfAnonymizer(df)print('Numeric columns', anonym.numeric_columns)
print('Categorical columns', anonym.categorical_columns)
print('Date columns', anonym.datetime_columns)

Bây giờ, hãy kiểm tra những phương pháp nào có sẵn để ẩn danh bảng.

available_methods()

Sử dụng danh sách các phương thức có sẵn, bây giờ chúng ta có thể bắt đầu áp dụng các phép biến đổi. Hãy để thêm một số nhiễu ngẫu nhiên vào cột tuổi, làm tròn các giá trị trong tiền lương và cột mặt nạ một phần.age column, round the values in salary and partially mask email column.

anonym.numeric_noise('age')  
anonym.numeric_rounding('salary')
anonym.categorical_email_masking('email')

Để xem các thay đổi chúng ta có thể gọi đến_df () hoặc để tóm tắt ngắn gọn, chúng ta có thể gọi thông tin ().

anonym.info()

Một lựa chọn tốt sẽ là thay thế tên trong cột First_name bằng tên giả. Đối với điều đó, chúng ta phải kiểm tra xem Faker có phương pháp tương ứng cho điều đó không.first_name column with fake ones. For that, we must check if Faker has a corresponding method for that.

from anonympy.pandas.utils import fake_methods
fake_methods('f') # args: None / 'all' / any letter

Faker có một phương thức gọi là First_name, hãy để phép hoán vị cột.

# if we wanted a different method use a dictionary {column_name:method_name}
# anonym.categorical_fake({'first_name': 'first_name_female'}
anonym.categorical_fake('first_name')

Kiểm tra Fake_methods cho các tên cột khác hóa ra, Faker cũng có các phương thức cho địa chỉ và thành phố. Cột web có thể được thay thế bằng phương thức URL và điện thoại bằng Phone_Number.address and city. The web column can be substituted with url method and phone with phone_number.

# this will change `address` and `city` because column names correspond to the method names
anonym.categorical_fake_auto()
anonym.categorical_fake({'web': 'url', 'phone': 'phone_number'})

Cột cuối cùng còn lại để ẩn danh là ngày sinh. Vì chúng tôi có cột tuổi chứa cùng một thông tin, chúng tôi có thể bỏ cột này bằng phương pháp cột_supression. Tuy nhiên, vì lợi ích của sự rõ ràng, hãy để thêm một số tiếng ồn cho nó.birthdate. Since we have age column which contains the same information, we could drop this column using column_supression method. However, for the sake of clarity let’s add some noise to it.

anonym.datetime_noise('birthdate')

Đó là nó. Hãy để một cái nhìn về bộ dữ liệu mới, ẩn danh của chúng tôi!

Bản tóm tắt

Quyền riêng tư và bảo vệ dữ liệu là một phần quan trọng của việc xử lý dữ liệu và cần được chú ý thích hợp. Do đó, tại ArtLabs, chúng tôi đã quyết định tạo một công cụ thuận tiện cho trường hợp sử dụng này. Bạn cũng có thể muốn kiểm tra các hướng dẫn ẩn danh hình ảnh của chúng tôi tại đây và Google Colab của chúng tôi để ẩn danh dữ liệu dạng bảng tại đây. Chúng tôi cũng hoan nghênh mọi đóng góp cho kho lưu trữ nguồn mở ẩn danh của chúng tôi!

Đặc biệt cảm ơn Shakhansho Sabzaliev, sinh viên tại Đại học Trung Á chuyên ngành Khoa học Máy tính và Học tập máy học Artlabs, vì sự đóng góp của ông cho bài đăng này và kho lưu trữ nguồn mở Anonymouspy!