찾다
백엔드 개발파이썬 튜토리얼기계 학습 알고리즘을 위한 무작위 데이터 생성 방법 소개

머신러닝 알고리즘을 학습하는 과정에서 알고리즘을 검증하고 매개변수를 디버깅하기 위한 데이터가 필요한 경우가 많습니다. 그러나 특정 알고리즘 유형에 적합한 데이터 샘플 세트를 찾는 것은 그리 쉽지 않습니다. 다행스럽게도 numpy와 scikit-learn은 모두 임의의 데이터 생성 기능을 제공합니다. 우리는 특정 모델 에 적합한 데이터를 직접 생성하고, 임의의 데이터를 사용하여 정리, 정규화, 변환 후 모델을 선택할 수 있습니다. 알고리즘을 이용한 예측. 다음은 scikit-learn과 numpy가 데이터 샘플을 생성하는 방법을 요약한 것입니다.

1. Numpy 무작위 데이터 생성API

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)의 샘플링 데이터입니다. ,σ2)N(μ,σ2) 정규 분포의 경우 randn에서 생성된 각 값 x에 대해 σx+μσx+μ만 변환하면 됩니다. 예:

예: 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

로 변환할 수 있습니다. 예: (5-2)*np.random.random_sample( 3)+ 2 [2,5) 사이의 난수 3개를 반환합니다.

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 회귀 모델 무작위 데이터

여기에서는 make_regression을 사용하여 회귀 모델 데이터를 생성합니다. 몇 가지 주요 매개변수는 n_samples(생성된 샘플 수), n_features(샘플 특징 수), Noise(샘플 무작위 노이즈) 및 coef(회귀 계수 반환 여부)입니다. 예제 코드는 다음과 같습니다.

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()

출력 이미지는 다음과 같습니다.

3.4 分组正态分布混合数据

我们用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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
파이썬에서 튜플 이해력이 가능합니까? 그렇다면, 어떻게 그리고 그렇지 않다면?파이썬에서 튜플 이해력이 가능합니까? 그렇다면, 어떻게 그리고 그렇지 않다면?Apr 28, 2025 pm 04:34 PM

기사는 구문 모호성으로 인해 파이썬에서 튜플 이해의 불가능성에 대해 논의합니다. 튜플을 효율적으로 생성하기 위해 튜플 ()을 사용하는 것과 같은 대안이 제안됩니다. (159 자)

파이썬의 모듈과 패키지는 무엇입니까?파이썬의 모듈과 패키지는 무엇입니까?Apr 28, 2025 pm 04:33 PM

이 기사는 파이썬의 모듈과 패키지, 차이점 및 사용법을 설명합니다. 모듈은 단일 파일이고 패키지는 __init__.py 파일이있는 디렉토리이며 관련 모듈을 계층 적으로 구성합니다.

파이썬에서 Docstring이란 무엇입니까?파이썬에서 Docstring이란 무엇입니까?Apr 28, 2025 pm 04:30 PM

기사는 Python의 Docstrings, 사용법 및 혜택에 대해 설명합니다. 주요 이슈 : 코드 문서 및 접근성에 대한 문서의 중요성.

람다 기능이란 무엇입니까?람다 기능이란 무엇입니까?Apr 28, 2025 pm 04:28 PM

기사는 Lambda 기능, 일반 기능과의 차이 및 프로그래밍 시나리오에서의 유틸리티에 대해 설명합니다. 모든 언어가 그들을 지원하는 것은 아닙니다.

휴식은 무엇입니까, 계속해서 파이썬을 통과합니까?휴식은 무엇입니까, 계속해서 파이썬을 통과합니까?Apr 28, 2025 pm 04:26 PM

기사는 파괴, 계속 및 Python을 통과시켜 루프 실행 및 프로그램 흐름을 제어하는 ​​역할을 설명합니다.

파이썬의 패스는 무엇입니까?파이썬의 패스는 무엇입니까?Apr 28, 2025 pm 04:25 PM

이 기사는 기능 및 클래스와 같은 코드 구조에서 자리 표시 자로 사용되는 NULL 작업 인 Python의 'Pass'명령문에 대해 설명하여 구문 오류없이 향후 구현을 허용합니다.

파이썬에서 인수로 기능을 전달할 수 있습니까?파이썬에서 인수로 기능을 전달할 수 있습니까?Apr 28, 2025 pm 04:23 PM

기사는 파이썬의 인수와 같은 기능을 전달하는 것에 대해 논의하며, 모듈성과 같은 이점 및 분류 및 장식기와 같은 사용 사례를 강조합니다.

파이썬에서 //의 차이점은 무엇입니까?파이썬에서 //의 차이점은 무엇입니까?Apr 28, 2025 pm 04:21 PM

기사는 Python의 / 및 // 연산자에 대해 논의합니다 : / True Division, // for floor division. 주요 이슈는 차이점과 사용 사례를 이해하는 것입니다. 문자 수 : 158

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.