用法:
cuml.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, order='F', dtype='float32', _centroids=None, _informative_covariance=None, _redundant_covariance=None, _repeated_indices=None)
生成一個隨機的n-class 分類問題。這最初會創建正態分布 (std=1) 的點簇,該點簇圍繞邊長為
2*class_sep
的n_informative
維超立方體的頂點,並為每個類分配相等數量的簇。它引入了這些特征之間的相互依賴關係,並為數據添加了各種類型的進一步噪聲。不打亂,X
按以下順序水平堆疊特征:主要的n_informative
特征,然後是信息特征的n_redundant
線性組合,然後是n_repeated
重複,隨機抽取信息和冗餘特征的替換.其餘特征充滿隨機噪聲。因此,無需改組,所有有用的函數都包含在X[:, :n_informative + n_redundant + n_repeated]
列中。- n_samples:int 可選(默認=100)
樣本數。
- n_features:int 可選(默認=20)
特征總數。這些包括
n_informative
信息特征、n_redundant
冗餘特征、n_repeated
重複特征和隨機抽取的n_features-n_informative-n_redundant-n_repeated
無用特征。- n_informative:int 可選(默認=2)
信息特征的數量。每個類由多個高斯簇組成,每個高斯簇位於維度為
n_informative
的子空間中超立方體的頂點周圍。對於每個集群,信息特征是獨立於 N(0, 1) 繪製的,然後在每個集群內隨機線性組合以增加協方差。然後將簇放置在超立方體的頂點上。- n_redundant:int 可選(默認=2)
冗餘特征的數量。這些特征是作為信息特征的隨機線性組合生成的。
- n_repeated:int 可選(默認=0)
從信息和冗餘特征中隨機抽取的重複特征的數量。
- n_classes:int 可選(默認=2)
分類問題的類(或標簽)數。
- n_clusters_per_class:int 可選(默認=2)
每個類的簇數。
- weights:array-like of shape (n_classes,) or (n_classes - 1,), (default=None)
分配給每個類別的樣本比例。如果沒有,那麽類是平衡的。請注意,如果
len(weights) == n_classes - 1
,則會自動推斷最後一個類的權重。如果weights
的總和超過 1,則可能返回超過n_samples
的樣本。- flip_y:浮點數,可選(默認=0.01)
隨機分配類別的樣本的比例。較大的值會在標簽中引入噪聲並使分類任務更加困難。
- class_sep:浮點數,可選(默認=1.0)
乘以超立方體大小的因子。較大的值會分散集群/類並使分類任務更容易。
- hypercube:布爾值,可選(默認 = True)
如果為 True,則將簇放在超立方體的頂點上。如果為 False,則將簇放在隨機多麵體的頂點上。
- shift:浮點數,形狀數組 [n_features] 或無,可選(默認 = 0.0)
按指定值移動特征。如果沒有,則特征將移動 [-class_sep, class_sep] 中繪製的隨機值。
- scale:浮點數,形狀數組 [n_features] 或無,可選(默認 = 1.0)
將特征乘以指定的值。如果為 None,則按 [1, 100] 中繪製的隨機值對特征進行縮放。請注意,縮放發生在移位之後。
- shuffle:布爾值,可選(默認 = True)
Shuffle[洗牌]樣本和特征。
- random_state:int RandomState 實例或無(默認)
確定數據集創建的隨機數生成。傳遞 int 以獲得跨多個函數調用的可重現輸出。請參閱詞匯表。
- order: str, optional (default=’F’):
生成樣本的順序
- dtype:str,可選(默認='float32')
生成樣本的 Dtype
- _centroids: array of centroids of shape (n_clusters, n_informative):
- _informative_covariance: array for covariance between informative features:
形狀(n_clusters,n_informative,n_informative)
- _redundant_covariance: array for covariance between redundant features:
形狀(n_informative,n_redundant)
- _repeated_indices: array of indices for the repeated features:
形狀 (n_repeated, )
- X:形狀為 [n_samples, n_features] 的設備數組
生成的樣本。
- y:形狀為 [n_samples] 的設備數組
每個樣本的類別成員的整數標簽。
參數:
返回:
注意:
該算法改編自 Guyon [1],旨在生成 “Madelon” 數據集。我們如何針對 GPU 進行優化:
首先,我們從標準單變量而不是零生成 X。這節省了內存,因為我們不需要每次為每個要素類(信息性、重複性等)生成單變量,同時還提供了在 GPU 上生成大矩陣的額外加速
我們生成
order=F
構造。我們利用 X 是從單變量法線生成的事實,並且通過矩陣乘法引入協方差。這意味著,我們可以將 X 生成為一維數組,然後將其重塑為所需的順序,這隻會更新元數據並消除副本最後,我們還按構造進行洗牌。對每個樣本的質心 index 進行置換,然後我們為每個質心構建數據。此 shuffle 適用於
order=C
和order=F
並且無需輔助副本
參考:
- 1
I. Guyon, “Design of experiments for the NIPS 2003 variable selection benchmark”, 2003.
例子:
from cuml.datasets.classification import make_classification X, y = make_classification(n_samples=10, n_features=4, n_informative=2, n_classes=2) print("X:") print(X) print("y:") print(y)
輸出:
X: [[-2.3249989 -0.8679415 -1.1511791 1.3525577 ] [ 2.2933831 1.3743551 0.63128835 -0.84648645] [ 1.6361488 -1.3233329 0.807027 -0.894092 ] [-1.0093077 -0.9990691 -0.00808992 0.00950443] [ 0.99803793 2.068382 0.49570698 -0.8462848 ] [-1.2750955 -0.9725835 -0.2390058 0.28081596] [-1.3635055 -0.9637669 -0.31582272 0.37106958] [ 1.1893625 2.227583 0.48750278 -0.8737561 ] [-0.05753583 -1.0939395 0.8188342 -0.9620734 ] [ 0.47910076 0.7648213 -0.17165393 0.26144698]] y: [0 1 0 0 1 0 0 1 0 1]
相關用法
- Python cuml.datasets.make_blobs用法及代碼示例
- Python cuml.datasets.make_arima用法及代碼示例
- Python cuml.datasets.make_regression用法及代碼示例
- Python cuml.dask.feature_extraction.text.TfidfTransformer用法及代碼示例
- Python cuml.dask.manifold.UMAP用法及代碼示例
- Python cuml.dask.datasets.classification.make_classification用法及代碼示例
- Python cuml.dask.decomposition.PCA用法及代碼示例
- Python cuml.dask.naive_bayes.MultinomialNB用法及代碼示例
- Python cuml.dask.decomposition.TruncatedSVD用法及代碼示例
- Python cuml.dask.preprocessing.LabelBinarizer用法及代碼示例
- Python cuml.metrics.pairwise_distances.pairwise_distances用法及代碼示例
- Python cuml.neighbors.KNeighborsClassifier用法及代碼示例
- Python cuml.ensemble.RandomForestRegressor用法及代碼示例
- Python cuml.svm.SVC用法及代碼示例
- Python cuml.svm.SVR用法及代碼示例
- Python cuml.Lasso用法及代碼示例
- Python cuml.tsa.ARIMA.predict用法及代碼示例
- Python cuml.multiclass.OneVsRestClassifier用法及代碼示例
- Python cuml.preprocessing.LabelBinarizer用法及代碼示例
- Python cuml.random_projection.GaussianRandomProjection用法及代碼示例
注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cuml.datasets.make_classification。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。