Scikit-learn ile sentetik veri kümeleri oluşturma

Python ile Veri Gizliliği ve Anonimleştirme

Rebeca Gonzalez

Data engineer

Scikit-learn ile veri kümeleri üretme

  • Olasılık dağılımlarından örnekleyen veri kümeleri oluşturabiliriz

  • Örneğin normal dağılım

Normal dağılımlı bir histogramın görselleştirilmesi

Python ile Veri Gizliliği ve Anonimleştirme

Normal dağılım

Doğada sık görülür

  • Boylar
  • Kan basıncı
  • IQ puanları

Normal dağılım izleyen geniş bir veri kümesinin boy histogramı

Python ile Veri Gizliliği ve Anonimleştirme

Normal dağılımdan örnekleme

import numpy as np


# Yeni bir pandas DataFrame oluşturun new_measures = pd.DataFrame()
# Örnek için ortalama/merkez ve standart sapma seçimi mean = 65 standard_deviation = 2
# Örnek üretimi new_measures['Height'] = np.random.normal(mean, standard_deviation, 10000)
Python ile Veri Gizliliği ve Anonimleştirme

Normal dağılımdan örnekleme

# Oluşan boy dağılımını görmek için histogram çizin
new_measures['Height'].hist(bins=50)

Ortaya çıkan verinin histogramı

Python ile Veri Gizliliği ve Anonimleştirme

Scikit-learn ile veri kümesi oluşturma

Scikit-learn, aşağıdakiler için veri kümesi üretmeyi kolaylaştıran işlevler sunar:

  • Sınıflandırma
  • Kümeleme
  • Regresyon
Python ile Veri Gizliliği ve Anonimleştirme

Sınıflandırma ve kümeleme için sentetik veri

make_classification()

  • Normal dağılımlı nokta kümeleri üretir
  • İlişkili ve bilgi içermeyen özellikler oluşturabilir

make_blobs()

  • Küme merkezleri ve standart sapmalar üzerinde daha fazla kontrol sağlar
Python ile Veri Gizliliği ve Anonimleştirme

Sınıflandırma için sentetik veri

# sklearn datasets modülünden make_classification'ı içe aktarın
from sklearn.datasets import make_classification


# Örnekleri ve etiketlerini üretin 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 ile Veri Gizliliği ve Anonimleştirme

Sınıflandırma için sentetik veri

# Üretilen verileri ve etiketleri görüntüleyin
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 ile Veri Gizliliği ve Anonimleştirme

Sınıflandırma için sentetik veri

Oluşturulan 2 sınıflı veri kümesindeki veri noktalarının grafiği

Python ile Veri Gizliliği ve Anonimleştirme

Sınıflandırma için sentetik veri

Farklı class_sep değerleriyle oluşturulan veri kümesi ve noktalarını gösteren üç grafik. Solda noktalar çok yakın, sağda ise çok ayrık.

Python ile Veri Gizliliği ve Anonimleştirme

Kümeleme için sentetik veri

# Kümeleme veri kümeleri üretimi için datasets modülünü içe aktarın
from sklearn.datasets import make_blobs


# Standart sapma değeri belirtin standard_deviation = 1.5
# Veri ve etiketleri üretin x, labels = make_blobs(n_features=3, centers=4, cluster_std=standard_deviation)
# Üretilen verinin şeklini görüntüleyin print(x.shape)
(100, 3)
Python ile Veri Gizliliği ve Anonimleştirme

Kümeleme için sentetik veri

Sonuç kümeleme noktaları: her küme farklı renkte. 4 küme için 4 merkez.

Python ile Veri Gizliliği ve Anonimleştirme

Kümeleme için sentetik veri

Standart sapmanın veri noktalarını nasıl etkilediğini gösteren üç grafik. Solda merkezlerine yakın, sağda çok dağınık.

Python ile Veri Gizliliği ve Anonimleştirme

Hadi pratik yapalım!

Python ile Veri Gizliliği ve Anonimleştirme

Preparing Video For Download...