機器學習演算法中隨機數的生成

2022-07-12 14:54:35 字數 2648 閱讀 7237

numpy,sklearn提供隨機資料生成功能,我們可以自己生成適合某一種模型的資料,用隨機資料來清洗,歸一化,轉換,然後選擇模型與演算法做擬合和**。

1.numpy隨機資料生成api

numpy比較適合用來生產一些簡單的抽樣資料。api都在random類中,常見的api有:

(1).rand(d0, d1, ...,dn)用來生成d0xd1x...dn維的陣列。陣列的值在[0, 1]之間。

(2).randn(d0, d1, ...,dn),也是用來生成d0xd1x...dn維的陣列。不過陣列的值服從n(0, 1)的標準正態分佈。

如果需要服從ν(µ, δ2)的正態分佈,只需要在randn上每個生成的值x上做變換δx+µ即可。

(3).randint(low, high, size),生成隨機的大小為size的資料,size可以為整數,為矩陣維數,或者張量的維數。值位於半開區間[low, high)。

例如:np.random.randint(3, size=[2,3,4])返回維數維2x3x4的資料。取值範圍為最大值為3的整數。

例如: np.random.randint(3, 6, size=[2,3]) 返回維數為2x3的資料。取值範圍為[3,6)。

(4).random_integers(low, high, size),和上面的randint類似,區別在與取值範圍是閉區間[low, high]。

(5).random_sample([size]), 返回隨機的浮點數,在半開區間 [0.0, 1.0)。如果是其他區間[a,b),可以加以轉換(b - a) * random_sample([size]) + a

例如:(5-2)*np.random.random_sample(3)+2 返回[2,5)之間的3個隨機數。

2.sklearn隨機資料生成api介紹

sklearn生成隨機資料的api都在datasets類之中,和numpy比起來,可以生成適合特定機器學習模型的資料。常用的api有:

(1). 用make_regression生成回歸模型的資料

(2). 用make_hastie_10_2,make_classification或者make_multilabel_classification生成分類模型資料

(3). 用make_blobs生成聚類模型資料

(4). 用make_gaussian_quantiles生成分組多為正態分佈的資料

3.sklearn隨機資料生成例項

3.1回歸模型隨機資料

make_regression生成回歸模型資料。關鍵引數:n_samples(生成樣本數),n_features(樣本特徵數),noise(樣本隨機數)和coef(是否返回回歸係數)。

3.2分類模型隨機資料

make_classification生成三元分類模型資料。關鍵字引數:n_samples(生成樣本數),n_features(樣本特徵數),n_redundant(冗餘特徵數)和n_classes(輸出的類別數)。

3.3聚類模型隨機資料

make_blobs生成聚類模型資料。關鍵字引數:n_samples(生成樣本數),n_features(樣本特徵數),centers(簇中心的個數或自定義的簇中心)和cluster_std(簇資料方差,代表簇的聚合程度)。

# blob 大物件

3.4分組正態分佈混合資料

make_gaussian_quantiles生成分組正態分佈的資料。關鍵字引數:n_samples(生成樣本數),n_features(正態分佈的維數),mean(特徵均值),cov(樣本協方差的係數),n_classes(資料在正態分佈中按分位數分配的組數)。

# gaussian 高斯  quantile 分位點,分位數

機器學習演算法的隨機資料生成

文章引用自 在學習機器學習演算法的過程中,我們經常需要資料來驗證演算法,除錯引數。但是找到一組十分合適某種特定演算法型別的資料樣本卻不那麼容易。還好numpy,scikit learn都提供了隨機資料生成的功能,我們可以自己生成適合某一種模型的資料,用隨機資料來做清洗,歸一化,轉換,然後選擇模型與演...

隨機數生成演算法

看到一些介紹隨機數生成演算法的文章,收集下來,有空深入了解下。c語言中偽隨機數生成演算法實際上是採用了 線性同餘法 具體的計算如下 xi xi 1 a c mod m 其中a,c,m都是常數 一般會取質數 當c 0時,叫做乘同餘法。srand 函式置的seed實際上會作為x0被代入上式中,然後每次呼...

隨機數生成演算法

這兩天沒事,就寫了寫數學課上老師說的那個 蒲豐投針實驗 的程式。接觸到了一些隨機數生成方面的東西,寫出來跟大家分享一下。對於計算機生成隨機數這個東西,以前有過一些淺顯的認識。只知道計算機不能生成真正的隨機數,只能用一定的方法來模擬隨機數,叫做偽隨機數。比如c語言裡面的rand 函式,就是乙個偽隨機數...