機械学習アルゴリズムを学習する過程では、アルゴリズムとデバッグパラメータを検証するためのデータが必要になることがよくあります。しかし、特定のアルゴリズム タイプに適したデータ サンプルのセットを見つけるのは、それほど簡単ではありません。幸いなことに、numpy と scikit-learn は両方とも、特定の モデル に適したデータを独自に生成し、ランダム データを使用してクリーンアップ、正規化、変換し、シミュレーション用のモデルとアルゴリズムを選択できます。 。以下は、scikit-learn と numpy がデータ サンプルを生成する方法の概要です。
numpy は、単純なサンプリング データを生成するのに適しています。 API はすべてランダム クラスにあります。共通 API は次のとおりです:
1) rand(d0, d1, ..., dn) は、d0xd1x...dn 次元の 配列 を生成するために使用されます。配列の値は [0,1] の間です
例: np.random.rand(3,2,2)、次の 3x2x2 配列を出力します
array([[[ 0.49042678, 0.60643763], [ 0.18370487, 0.10836908]], [[ 0.38269728, 0.66130293], [ 0.5775944 , 0.52354981]], [[ 0.71705929, 0.89453574], [ 0.36245334, 0.37545211]]])
2) randn((d0, d1, .. ., dn) は、d0xd1x...dn 次元配列の生成にも使用されますが、配列の値は N(0,1) の標準正規分布に従います
例: np.random。 randn(3,2), 以下の 3x2 配列を出力します。これらの値は N(0,1) のサンプリング データです。N(μ,σ2)N(μ, σ2)、randn でそれぞれを生成する必要があります。値に対して σx+μσx+μ を変換するだけです。4) サンプリング データ
array([[-0.5889483 , -0.34054626], [-2.03094528, -0.21205145], [-0.20804811, -0.97289898]])
3) randint(low[, high, size])、サイズのランダム データを生成します。 、size は、行列の次元またはテンソルの次元である
integer にすることができます。値は半開区間[低、高)にあります。
例: np.random.randint(3, size=[2,3,4]) は、次元 2x3x4 のデータを返します。値の範囲は整数で、最大値は 3 です。 array([[ 2.32910328, -0.677016 ],
[-0.09049511, 1.04687598],
[ 2.13493001, 3.30025852]])
array([[[2, 1, 2, 1], [0, 1, 2, 1], [2, 1, 0, 2]], [[0, 1, 0, 0], [1, 1, 2, 1], [1, 0, 1, 2]]])
4)random_integers(low[, high, size]) で、値の範囲が閉じた区間 [low, high] である点を除いて、上記の randint と似ています。
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 つの乱数を返します)。
array([[4, 5, 3], [3, 4, 5]])
2. scikit-learn のランダムデータ生成 API の紹介
array([ 2.87037573, 4.33790491, 2.1662832 ])
3.2 分類モデルのランダム データ
ここでは、make_classification を使用して 3 値分類モデル データを生成します。いくつかの主要なパラメーターは、n_samples (生成されたサンプルの数)、n_features (サンプル特徴の数)、n_redundant (冗長特徴の数)、および n_classes (出力カテゴリーの数) です。コード例は次のとおりです。出力画像は次のとおりです:
ここでは、make_blobs を使用してクラスタリングモデルデータを生成します。いくつかの主要なパラメーターには、n_samples (生成されたサンプルの数)、n_features (サンプル フィーチャの数)、center (クラスター センターまたはカスタマイズされたクラスター センターの数)、cluster_std (クラスター集約の程度を表すクラスター データ分散) が含まれます。例は次のとおりです:
import numpy as np import matplotlib.pyplot as plt %matplotlib inline from sklearn.datasets.samples_generator import make_regression # X为样本特征,y为样本输出, coef为回归系数,共1000个样本,每个样本1个特征 X, y, coef =make_regression(n_samples=1000, n_features=1,noise=10, coef=True) # 画图 plt.scatter(X, y, color='black') plt.plot(X, X*coef, color='blue', linewidth=3) plt.xticks(()) plt.yticks(()) plt.show()
出力画像は次のとおりです:
我们用make_gaussian_quantiles生成分组多维正态分布的数据。几个关键参数有n_samples(生成样本数), n_features(正态分布的维数),mean(特征均值), cov(样本协方差的系数), n_classes(数据在正态分布中按分位数分配的组数)。 例子如下:
import numpy as np import matplotlib.pyplot as plt %matplotlib inline from sklearn.datasets import make_gaussian_quantiles #生成2维正态分布,生成的数据按分位数分成3组,1000个样本,2个样本特征均值为1和2,协方差系数为2 X1, Y1 = make_gaussian_quantiles(n_samples=1000, n_features=2, n_classes=3, mean=[1,2],cov=2) plt.scatter(X1[:, 0], X1[:, 1], marker='o', c=Y1)
输出图如下
以上就是生产随机数据的一个总结,希望可以帮到学习机器学习算法的朋友们。
以上が機械学習アルゴリズムのランダム データ生成方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。