ちょっと、次の問題があります。私は大きなパラメータ空間を持っています。私の場合、私は10次元のようです。しかし、単純化するために、私は3つの変数x1、x2、x3を仮定します。それらは1から10までの離散的な数です。今度はすべての可能なパラメータの組み合わせを作成し、後処理に使用したいと思います。私の実際のケースでは、それはあまりにも多くの組み合わせです。だから、私は探索空間を減らすために疑似ランダムシーケンス検索をしたいと思う。しかし、検索スペースの組み合わせは可能な限りそれをカバーする必要があります。 (一様分布)。私は、検索スペースでクラスタへのパラメータの組み合わせを防止したい、それは可能な限り良い全体の検索スペースをカバーする必要があります。私は、パラメータの処理におけるパラメータの組み合わせの好みを見つけるためにそれが必要です。それには、ハトン(Haton)、ハンマーズリー(Hammersley)、ソボール(Sobol)のようなアプローチがあります。しかし、彼らは離散数のために働いていません。疑似ランダムシーケンスを行う1つのパッケージは、カオスフィーです。私がシーケンスの数を丸めると、各変数の変数番号は、さまざまな変数の組み合わせで複数回現れます。それは私が望むものではありません。私は、すべての可変数が1回だけ出現し、変数が検索スペース内に一様に分布していることを望む。最初からすべての変数がちょうど一度現れる変数の組み合わせのランダムな多次元セットを作成する可能性はありますか?たとえば、2次元グリッド10x10では、1つの可能な組み合わせが対角線になります。Python:疑似ランダムシーケンスの代替
import numpy as np
import chaospy as cp
#Create a Joint distributuon of the three varaibles, which ranges going from 1 to 10
distribution2 = cp.J(cp.Uniform(1, 10),cp.Uniform(1, 10),cp.Uniform(1, 10))
#Create 10 numbers in the variable space
samplesSobol = distribution2.sample(10, rule="S")
#Transpose the array to get the variable combinations in subarrays
sobolPointsTranspose = np.transpose(samplesSobol)
出力例:
もちろん3次元で私はがソボル配列と1-10からの3変数を簡略化した例があります、すべてのパラメータの値をカバーする100の組み合わせが必要になります
[[ 7.89886475 6.34649658 4.8336792 ] [ 5.64886475 4.09649658 2.5836792 ] [ 1.14886475 8.59649658 7.0836792 ] [ 1.21917725 5.01055908 2.5133667 ] [ 5.71917725 9.51055908 7.0133667 ] [ 7.96917725 2.76055908 9.2633667 ] [ 3.46917725 7.26055908 4.7633667 ] [ 4.59417725 1.63555908 5.8883667 ] [ 9.09417725 6.13555908 1.3883667 ] [ 6.84417725 3.88555908 3.6383667 ]]
ここで、すべての変数番号は一意ですが、出力は離散ではありません。私はそれを丸くて得ることができる:
[[ 8. 6. 5.]
[ 6. 4. 3.]
[ 1. 9. 7.]
[ 1. 5. 3.]
[ 6. 10. 7.]
[ 8. 3. 9.]
[ 3. 7. 5.]
[ 5. 2. 6.]
[ 9. 6. 1.]
[ 7. 4. 4.]]
今問題は、例えば1が三次元で第二又は7に一次元又は4回発生すること、です。
_the検索スペース... _これはなんですか?そして、あなたのコードを最初に見たいと思っています...あなたが持っているものとあなたが得ることを期待しているものを表示してください... –
あなたはあなたの問題についてもっと教えてください、そして達成しようとしているものあなたの問題をあなたがそれを記述する方法であなたの問題を解決する方法の数はおそらく役に立たないでしょう。なぜ数字が繰り返されないのですか?これは単一のパラメータごとにのみ、またはお互いにも依存しますか? – Arne
私は実際にこのコードを見れば、この質問を答えるのが難しくなると思います。それは答えを出すためには、問題の説明をもっと明確にする必要があるということです。 –