머신러닝 알고리즘을 학습하는 과정에서 알고리즘을 검증하고 매개변수를 디버깅하기 위한 데이터가 필요한 경우가 많습니다. 그러나 특정 알고리즘 유형에 적합한 데이터 샘플 세트를 찾는 것은 그리 쉽지 않습니다. 다행스럽게도 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*np.random.randn(3,2) + 1, 다음 3x2 배열을 출력합니다. 이 값은 N(1,4)
array([[-0.5889483 , -0.34054626], [-2.03094528, -0.21205145], [-0.20804811, -0.97289898]])3)randint( . low[, high, size]) 크기의 무작위 데이터를 생성합니다. 크기는
정수
일 수 있으며 이는 행렬 차원 또는 텐서 차원입니다. 값은 반개방 구간(낮음, 높음)에 있습니다.예: np.random.randint(3, size=[2,3,4])는 2x3x4 차원의 데이터를 반환합니다. 값 범위는 최대값이 3인 정수입니다.
array([[ 2.32910328, -0.677016 ], [-0.09049511, 1.04687598], [ 2.13493001, 3.30025852]])또 다른 예: np.random.randint(3, 6, size=[2,3])는 2x3 크기의 데이터를 반환합니다. 값 범위는 [3,6)입니다.
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]), 위의 randint와 유사하지만 차이점은 값 범위가 닫힌 구간[low, high]이라는 점입니다. ] .
5) random_sample([size]), 반 개방 간격 [0.0, 1.0)에서 임의의 부동 소수점 숫자를 반환합니다. 다른 간격 [a,b)인 경우 (b - a) * random_sample([size]) + a
array([[4, 5, 3], [3, 4, 5]])2. scikit-learn 무작위 데이터 생성 API 소개scikit-learn의 무작위 데이터 생성 API는 numpy와 비교하여 적합한 데이터를 생성하는 데 사용할 수 있습니다. 특정 기계에 대한 학습 모델용 데이터입니다. 일반적으로 사용되는 API는 다음과 같습니다. 1) make_regression을 사용하여 회귀 모델 데이터 생성2) make_hastie_10_2, make_classification 또는 make_multilabel_classification을 사용하여 분류 모델 데이터 생성3) make_blobs를 사용하여 클러스터 클래스 모델 데이터 생성4) make_gaussian_Quantiles를 사용하여 그룹화된 다차원 정규 분포 데이터 생성3. scikit-learn 무작위 데이터 생성 예시3.1 회귀 모델 무작위 데이터
array([ 2.87037573, 4.33790491, 2.1662832 ])
3.2 분류 모델 랜덤 데이터
여기에서는 사용합니다. make_classification은 삼항 분류 모델 데이터를 생성합니다. 몇 가지 주요 매개변수로는 n_samples(생성된 샘플 수), n_features(샘플 기능 수), n_redundant(중복 기능 수) 및 n_classes(출력 범주 수)가 있습니다. 예시 코드는 다음과 같습니다.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()
출력 그래프는 다음과 같습니다.
3.3 클러스터링 모델 랜덤 데이터
여기에서는 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_classification # X1为样本特征,Y1为样本类别输出, 共400个样本,每个样本2个特征,输出有3个类别,没有冗余特征,每个类别一个簇 X1, Y1 = make_classification(n_samples=400, n_features=2, n_redundant=0, n_clusters_per_class=1, n_classes=3) plt.scatter(X1[:, 0], X1[:, 1], marker='o', c=Y1) 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!