次元のランダムな点が線形に分離できる確率はどのくらいですか?


24

それぞれが特徴を持つデータポイントが与えられると、はとしてラベル付けされ、他のはとしてラベル付けされます。各フィーチャは、からランダムに値を取ります(均一な分布)。2つのクラスを分割できる超平面が存在する確率はどのくらいですか?、D N / 2 0 、N / 2 1 [ 0 1 ]ndn/20n/21[0,1]

まず最も簡単なケース、つまり考えてみましょう。d=1


3
これは本当に興味深い質問です。これは、2つのクラスのポイントの凸包が交差するかどうかに関して再定式化できると思います-それが問題をより簡単にするかどうかはわかりませんが。
ドンウォルポラ

これは明らかにと相対的な大きさの関数になります。W /最も簡単な場合考える場合、場合、wは/真に連続データ(すなわち、任意の10進の場所に丸める)、それらは直線的に分離することができる確率である。OTOH、。ndd=1n=21limn  Pr(linearly separable)0
GUNG -復活モニカ

また、超平面を「フラット」にする必要があるかどうか(または、2dタイプの状況で放物線になる可能性があるかどうか)も明確にする必要があります。この質問は平坦性を強く示唆しているように思えますが、これはおそらく明確に述べられるべきです。
GUNG -復活モニカ

4
@gung「超平面」という言葉は「平坦性」を明確に暗示していると思うので、タイトルを編集して「直線的に分離可能」と言っています。明らかに重複のないデータセットは原則として非線形に分離できます。
アメーバは、モニカを復活させる

1
@gung IMHO「平坦な超平面」は多面性です。「超平面」を湾曲させることができると主張する場合、「適切な」メトリックで「平面」も湾曲させることができます。
アメーバは

回答:


4

データに重複が存在しないと仮定します。

もしnd+1、確率はPr=1

(n,d)他の組み合わせについては、次のプロットを参照してください。

ここに画像の説明を入力してください

OPで指定された入力および出力データをシミュレートするこのプロットを生成しました。線形分離可能性は、Hauck-Donner効果によるロジスティック回帰モデルの収束の失敗として定義されました。

を増やすと確率が低下することがわかります。実際、を関連付けるモデルを当てはめることができ、これが結果でした:nn,dp

P(n,d)=11+e(5.829444.58261×n+1.37271×d0.0235785×n×d)

ここに画像の説明を入力してください


プロットのコード(ジュリア):

using GLM

ds = 10; #number of dimensions to be investigated
ns = 100 #number of examples to be investigated
niter = 1000; #number of iterations per d per n
P = niter * ones(Int64, ds, ns); #starting the number of successes

for d in 1:ds
    for n in (d+1):ns
        p = 0 #0 hits
        for i in 1:niter
            println("Dimensions: $d; Samples: $n; Iteration: $i;")
            try #we will try to catch errors in the logistic glm, these are due to perfect separability
                X = hcat(rand((n,d)), ones(n)); #sampling from uniform plus intercept
                Y = sample(0:1, n)  #sampling a binary outcome
                glm(X, Y, Binomial(), LogitLink())
            catch
                p = p+1 #if we catch an error, increase the count
            end
        end
        P[d,n] = p
    end
end

using Plots

gui(heatmap(P./niter, xlabel = "Number of Samples", ylabel = "Number of Dimensions", title = "Probability of linear separability"))

を(Juliaに)に関連付けるモデルのコード:(n,d)p

probs = P./niter
N = transpose(repmat(1:ns, 1, ds))
D = repmat(1:ds, 1, ns)

fit = glm(hcat(log.(N[:]), D[:], N[:].*D[:], ones(ds*ns)), probs[:], Binomial(), LogitLink())
coef(fit)
#4-element Array{Float64,1}:
# -4.58261
#  1.37271
# -0.0235785
#  5.82944

gui(heatmap(reshape(predict(fit), ds, ns), xlabel = "Number of Samples", ylabel = "Number of Dimensions", title = "Fit of probability of linear separability"))

+1。なぜnではなくlog(n)ですか?黄黒の境界線は、上の図では直線のように見えますが、2番目の図では曲がっています。多分log(n)のせいですか?わからない。
アメーバは、モニカを復活させる

@amoeba変えました。相互作用も含めましたこれは、と間の境界が徐々に広がることを説明できるためです(これが対数を試した理由です)。p = 0p=1p=0
Firebug
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.