検索
ホームページバックエンド開発Python チュートリアル機械学習アルゴリズムのランダム データ生成方法の概要

機械学習アルゴリズムを学習する過程では、アルゴリズムとデバッグパラメータを検証するためのデータが必要になることがよくあります。しかし、特定のアルゴリズム タイプに適したデータ サンプルのセットを見つけるのは、それほど簡単ではありません。幸いなことに、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) のサンプリング データです。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]])
別の例: 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]) で、値の範囲が閉じた区間 [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 の紹介

scikit-learn のランダムデータを生成する 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. scikit-learn のランダムデータ生成例

3.1 回帰モデルのランダムデータ

ここでは回帰モデルデータを生成するために make_regression を使用します。いくつかの重要なパラメーターは、n_samples (生成されたサンプルの数)、n_features (サンプルの特徴の数)、noise (サンプルのランダム ノイズ)、および coef (回帰係数を返すかどうか) です。コード例は次のとおりです:

array([ 2.87037573,  4.33790491,  2.1662832 ])

出力画像は次のとおりです:

3.2 分類モデルのランダム データ

ここでは、make_classification を使用して 3 値分類モデル データを生成します。いくつかの主要なパラメーターは、n_samples (生成されたサンプルの数)、n_features (サンプル特徴の数)、n_redundant (冗長特徴の数)、および n_classes (出力カテゴリーの数) です。コード例は次のとおりです。出力画像は次のとおりです:

機械学習アルゴリズムのランダム データ生成方法の概要

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_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.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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonリストをどのようにスライスしますか?Pythonリストをどのようにスライスしますか?May 02, 2025 am 12:14 AM

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

Numpyアレイで実行できる一般的な操作は何ですか?Numpyアレイで実行できる一般的な操作は何ですか?May 02, 2025 am 12:09 AM

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Pythonを使用したデータ分析では、配列はどのように使用されていますか?Pythonを使用したデータ分析では、配列はどのように使用されていますか?May 02, 2025 am 12:09 AM

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc

リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?May 02, 2025 am 12:08 AM

listsandnumpyarraysinpythonhavedifferentmemoryfootprints:listsaremoreflexiblellessmemory-efficient、whileenumpyarraysaraysareoptimizedfornumericaldata.1)listsstorereferencesto objects、with whowedaround64byteson64-bitedatigu

実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?May 02, 2025 am 12:07 AM

toensurepythonscriptsbehaveCorrectlyAcrossDevelosment、staging、and Production、usetheseStrategies:1)環境variablesforsimplestetings、2)configurationfilesforcomplexsetups、and3)dynamicloadingforadaptability.eachtododododododofersuniquebentandrequiresca

Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター