Tạo dữ liệu tổng hợp bằng scikit-learn

Bảo mật dữ liệu và Ẩn danh trong Python

Rebeca Gonzalez

Data engineer

Tạo dữ liệu với Scikit-learn

  • Ta có thể tạo dữ liệu lấy mẫu từ các phân phối xác suất

  • Như phân phối chuẩn

Minh họa biểu đồ tần suất phân phối chuẩn

Bảo mật dữ liệu và Ẩn danh trong Python

Phân phối chuẩn

Thường xuất hiện trong tự nhiên

  • Chiều cao
  • Huyết áp
  • Điểm IQ

Biểu đồ tần suất chiều cao của một tập lớn theo phân phối chuẩn

Bảo mật dữ liệu và Ẩn danh trong Python

Lấy mẫu từ phân phối chuẩn

import numpy as np


# Tạo pandas DataFrame mới new_measures = pd.DataFrame()
# Chọn giá trị trung bình/tâm và độ lệch chuẩn của mẫu mean = 65 standard_deviation = 2
# Tạo mẫu new_measures['Height'] = np.random.normal(mean, standard_deviation, 10000)
Bảo mật dữ liệu và Ẩn danh trong Python

Lấy mẫu từ phân phối chuẩn

# Vẽ histogram để xem phân phối chiều cao thu được
new_measures['Height'].hist(bins=50)

Biểu đồ tần suất của dữ liệu thu được

Bảo mật dữ liệu và Ẩn danh trong Python

Tạo dữ liệu bằng scikit-learn

Scikit-learn có các hàm đơn giản để tạo dữ liệu cho:

  • Phân loại
  • Phân cụm
  • Hồi quy
Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân loại và phân cụm

make_classification()

  • Tạo các cụm điểm phân phối chuẩn
  • Có thể tạo đặc trưng tương quan và không thông tin

make_blobs()

  • Kiểm soát tốt hơn tâm và độ lệch chuẩn của các cụm
Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân loại

# Import make_classification từ mô-đun datasets của sklearn
from sklearn.datasets import make_classification


# Tạo mẫu và nhãn của chúng x, y = make_classification(n_samples=1000,
n_classes=2,
n_informative=2,
n_features=4,
n_clusters_per_class=2,
class_sep=1)
Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân loại

# Xem dữ liệu và nhãn đã tạo
print(x.shape)
print(y.shape)
print(x)
(1000, 4)
(1000,)
[[ 1.22914870e+00 -2.62386795e+00  2.25878743e+00  2.55377055e+00]
 [-1.10279812e+00 -1.15816087e+00  1.55571279e+00  7.80565898e-02]
 [ 2.65581977e-03 -2.33278818e+00  2.37837858e+00  1.57533194e+00]
 ...
 [ 4.51006972e-01  7.53435745e-01 -9.21597108e-01 -2.20659747e-01]
 [ 5.31925876e-01  7.42210504e-01 -9.37625248e-01 -1.61488855e-01]
 [ 1.62862108e+00 -2.72435345e+00  2.22562940e+00  2.87628246e+00]]
Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân loại

Biểu đồ các điểm dữ liệu trong tập 2 lớp đã tạo

Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân loại

Ba biểu đồ cho thấy tập dữ liệu tạo ra và các điểm dữ liệu với các giá trị class_sep khác nhau. Bên trái các điểm rất sát nhau, bên phải tách biệt rõ

Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân cụm

# Import mô-đun datasets để tạo dữ liệu phân cụm
from sklearn.datasets import make_blobs


# Chỉ định giá trị độ lệch chuẩn standard_deviation = 1.5
# Tạo dữ liệu và nhãn x, labels = make_blobs(n_features=3, centers=4, cluster_std=standard_deviation)
# Xem kích thước dữ liệu đã tạo print(x.shape)
(100, 3)
Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân cụm

Biểu đồ các điểm dữ liệu phân cụm, mỗi cụm một màu. 4 tâm cho 4 cụm.

Bảo mật dữ liệu và Ẩn danh trong Python

Dữ liệu tổng hợp cho phân cụm

Ba biểu đồ cho thấy độ lệch chuẩn ảnh hưởng đến các điểm dữ liệu tạo ra: bên trái cụm chặt quanh tâm, bên phải phân tán mạnh.

Bảo mật dữ liệu và Ẩn danh trong Python

Hãy thực hành!

Bảo mật dữ liệu và Ẩn danh trong Python

Preparing Video For Download...