建立分類#
- sklearn.datasets.make_classification(n_samples=100, n_features=20, *, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, scale=1.0, shuffle=True, random_state=None)[原始碼]#
產生一個隨機的 n 類分類問題。
此函式首先創建點的群集,這些點以常態分佈(標準差 = 1)分佈在邊長為
2*class_sep
的n_informative
維超立方體的頂點周圍,並為每個類別分配相同數量的群集。它引入這些特徵之間的相互依賴性,並為資料添加各種其他類型的雜訊。在不打亂順序的情況下,
X
水平堆疊以下順序的特徵:主要的n_informative
個特徵,接著是n_redundant
個資訊性特徵的線性組合,然後是從資訊性和冗餘特徵中隨機抽取的n_repeated
個重複項。其餘特徵則填充隨機雜訊。因此,在不打亂順序的情況下,所有有用的特徵都包含在X[:, :n_informative + n_redundant + n_repeated]
這些列中。請參閱使用者指南以瞭解更多資訊。
- 參數:
- n_samplesint,預設值為 100
樣本數。
- n_featuresint,預設值為 20
特徵總數。這些包括
n_informative
個資訊性特徵、n_redundant
個冗餘特徵、n_repeated
個重複特徵,以及n_features-n_informative-n_redundant-n_repeated
個隨機抽取的無用特徵。- n_informativeint,預設值為 2
資訊性特徵的數量。每個類別都由若干個高斯群集組成,每個群集都位於
n_informative
維子空間中超立方體的頂點周圍。對於每個群集,資訊性特徵獨立地從 N(0, 1) 中抽取,然後在每個群集中隨機線性組合,以增加共變異數。然後將群集放置在超立方體的頂點上。- n_redundantint,預設值為 2
冗餘特徵的數量。這些特徵是作為資訊性特徵的隨機線性組合生成的。
- n_repeatedint,預設值為 0
重複特徵的數量,從資訊性和冗餘特徵中隨機抽取。
- n_classesint,預設值為 2
分類問題的類別(或標籤)數量。
- n_clusters_per_classint,預設值為 2
每個類別的群集數量。
- weights形狀為 (n_classes,) 或 (n_classes - 1,) 的類陣列,預設值為 None
分配給每個類別的樣本比例。如果為 None,則類別是平衡的。請注意,如果
len(weights) == n_classes - 1
,則會自動推斷最後一個類別的權重。如果weights
的總和超過 1,則可能會返回超過n_samples
個樣本。請注意,當flip_y
不為 0 時,實際的類別比例將不會完全符合weights
。- flip_yfloat,預設值為 0.01
類別隨機分配的樣本比例。較大的值會在標籤中引入雜訊,並使分類任務更加困難。請注意,在某些情況下,預設設定 flip_y > 0 可能會導致 y 中的類別少於
n_classes
。- class_sepfloat,預設值為 1.0
乘以超立方體大小的因子。較大的值會擴散群集/類別,並使分類任務更加容易。
- hypercubebool,預設值為 True
如果為 True,則群集會放置在超立方體的頂點上。如果為 False,則群集會放置在隨機多面體的頂點上。
- shiftfloat,形狀為 (n_features,) 或 None 的 ndarray,預設值為 0.0
將特徵平移指定的值。如果為 None,則特徵會平移 [-class_sep, class_sep] 中隨機抽取的值。
- scalefloat,形狀為 (n_features,) 或 None 的 ndarray,預設值為 1.0
將特徵乘以指定的值。如果為 None,則特徵會乘以 [1, 100] 中隨機抽取的值。請注意,縮放是在平移之後進行。
- shufflebool,預設值為 True
打亂樣本和特徵的順序。
- random_stateint、RandomState 實例或 None,預設值為 None
決定資料集建立的隨機數生成。傳遞一個 int 以便在多次函式呼叫中產生可重複的輸出。請參閱詞彙表。
- 返回:
- X形狀為 (n_samples, n_features) 的 ndarray
產生的樣本。
- y形狀為 (n_samples,) 的 ndarray
每個樣本的類別成員資格的整數標籤。
另請參閱
make_blobs
sklearn.datasets.make_blobs
簡化變體。make_multilabel_classification
sklearn.datasets.make_multilabel_classification
多標籤任務的不相關產生器。
註解
此演算法改編自 Guyon [1],旨在產生「Madelon」資料集。
參考文獻
[1]I. Guyon,“Design of experiments for the NIPS 2003 variable selection benchmark”,2003。
範例
>>> from sklearn.datasets import make_classification >>> X, y = make_classification(random_state=42) >>> X.shape (100, 20) >>> y.shape (100,) >>> list(y[:5]) [np.int64(0), np.int64(0), np.int64(1), np.int64(1), np.int64(0)]