การสร้างชุดข้อมูลสังเคราะห์ด้วย scikit-learn

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

Rebeca Gonzalez

Data engineer

การสร้างชุดข้อมูลด้วย Scikit-learn

  • สร้างชุดข้อมูลโดยสุ่มตัวอย่างจากการแจกแจงความน่าจะเป็นได้

  • เช่น การแจกแจงแบบปกติ

ตัวอย่างฮิสโตแกรมของการแจกแจงแบบปกติ

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

การแจกแจงแบบปกติ

พบได้บ่อยในธรรมชาติ

  • ส่วนสูง
  • ความดันโลหิต
  • คะแนน IQ

ฮิสโตแกรมของค่าส่วนสูงในชุดข้อมูลขนาดใหญ่ที่มีการแจกแจงแบบปกติ

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

การสุ่มตัวอย่างจากการแจกแจงแบบปกติ

import numpy as np


# Create new pandas DataFrame new_measures = pd.DataFrame()
# Selecting the mean/center values and the standard deviation of the sample mean = 65 standard_deviation = 2
# Generating the sample new_measures['Height'] = np.random.normal(mean, standard_deviation, 10000)
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

การสุ่มตัวอย่างจากการแจกแจงแบบปกติ

# Draw histogram to see the resulting heights distribution
new_measures['Height'].hist(bins=50)

ฮิสโตแกรมของข้อมูลที่ได้

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

การสร้างชุดข้อมูลด้วย scikit-learn

Scikit-learn มีฟังก์ชันที่ใช้งานง่ายสำหรับสร้างชุดข้อมูลเพื่อทำ:

  • การจำแนกประเภท
  • การจัดกลุ่ม
  • การถดถอย
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจำแนกและการจัดกลุ่ม

make_classification()

  • จัดสรรกลุ่มจุดข้อมูลตามการแจกแจงแบบปกติ
  • สร้างฟีเจอร์ที่มีความสัมพันธ์กันหรือฟีเจอร์ที่ไม่มีข้อมูลได้

make_blobs()

  • ควบคุมจุดศูนย์กลางและส่วนเบี่ยงเบนมาตรฐานของกลุ่มได้ละเอียดยิ่งขึ้น
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจำแนกประเภท

# Import make_classification from sklearn datasets module
from sklearn.datasets import make_classification


# Generate the samples and their labels x, y = make_classification(n_samples=1000,
n_classes=2,
n_informative=2,
n_features=4,
n_clusters_per_class=2,
class_sep=1)
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจำแนกประเภท

# See the generated data and labels
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]]
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจำแนกประเภท

กราฟแสดงจุดข้อมูลในชุดข้อมูล 2 คลาสที่สร้างขึ้น

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจำแนกประเภท

กราฟสามแบบแสดงชุดข้อมูลที่สร้างขึ้นพร้อมจุดข้อมูลที่มีค่า class_sep ต่างกัน กราฟซ้ายมีจุดข้อมูลอยู่ใกล้กันมาก ส่วนกราฟขวาจุดข้อมูลแยกกันชัดเจน

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจัดกลุ่ม

# Import the datasets module for generating clustering datasets
from sklearn.datasets import make_blobs


# Specify a value for standard deviation standard_deviation = 1.5
# Generate the data and labels of the dataset x, labels = make_blobs(n_features=3, centers=4, cluster_std=standard_deviation)
# See the shape of the generated data print(x.shape)
(100, 3)
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจัดกลุ่ม

กราฟแสดงจุดข้อมูลของการจัดกลุ่ม แต่ละกลุ่มมีสีต่างกัน มีจุดศูนย์กลาง 4 จุดสำหรับ 4 กลุ่ม

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ข้อมูลสังเคราะห์สำหรับการจัดกลุ่ม

กราฟสามแบบแสดงผลกระทบของส่วนเบี่ยงเบนมาตรฐานต่อจุดข้อมูล กราฟซ้ายจุดข้อมูลอยู่ใกล้จุดศูนย์กลาง ส่วนกราฟขวาจุดข้อมูลกระจายตัวมาก

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

มาฝึกกันเถอะ!

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

Preparing Video For Download...