5

sklearn.datasets.make_classification では、クラス y はどのように計算されますか? 私が彼を実行するとしましょう:

from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2,
                           n_classes=2, n_clusters_per_class=1, random_state=0)

X から y を求めるには、どの式を使用しますか? ドキュメントでは、有益な機能について説明するときにこれに触れています。

有益な機能の数。各クラスは、次元 n_informative のサブスペース内のハイパーキューブの頂点の周りにそれぞれ配置された多数のガウス クラスターで構成されます。クラスターごとに、有益な特徴が N(0, 1) から独立して描画され、共分散を追加するためにランダムに線形結合されます。次に、クラスターはハイパーキューブの頂点に配置されます。

ありがとう、

G

4

1 に答える 1

2

y は計算されません。単純に、X のすべての行が、その行が属するクラスに応じて y に関連付けられたラベルを取得します (n_classes 変数に注意してください)。これらのラベルの一部は、flip_y が 0 より大きい場合に反転され、ラベル付けにノイズが発生する可能性があります。

編集:例を挙げる

たとえば、合計で 2 つのクラス、1 つの有益な特徴、および 4 つのデータ ポイントが必要であるとします。2 つのクラス重心がランダムに生成され、たまたま 1.0 と 3.0 になると仮定します。したがって、最初のクラス (値 1.0) の周りに生成されるすべてのデータ ポイントはラベル y=0 を取得し、2 番目のクラス (値 3.0) の周りに生成されるすべてのデータ ポイントはラベル y=1 を取得します。たとえば、最初のクラスの X1 はたまたま 1.2 と 0.7 である可能性があります。2 番目のクラスの場合、2 つのポイントは 2.8 と 3.1 になる可能性があります。これで 4 つのデータ ポイントがあり、それらが生成されたクラスがわかったので、最終的なデータは次のようになります。

Y X1
0 1.2
0 0.7
1 2.8
1 3.1

ご覧のとおり、何も計算されていません。データをランダムに生成するときにクラスを割り当てるだけです

于 2013-08-19T14:09:23.173 に答える