차원 에서 임의의 점이 선형으로 분리 될 확률은 얼마입니까?


24

각각 특징을 갖는 데이터 점이 주어지면 는 으로 표시되고 다른 는 로 표시됩니다 . 각 피처는 임의로 값을받습니다 (균일 분포). 두 클래스를 나눌 수있는 초평면이 존재할 확률은 얼마입니까?ndn/20n/21[0,1]

가장 쉬운 경우를 먼저 고려하십시오 (예 : .d=1


3
이것은 정말 흥미로운 질문입니다. 나는 이것이 두 가지 종류의 점들의 볼록 껍질이 교차하는지 아닌지의 관점에서 재구성 될 수 있다고 생각합니다. 그러나 그것이 문제를보다 간단하게 만들지 여부는 알 수 없습니다.
Don Walpola

이것은 분명히 & 의 상대적인 크기의 함수일 것입니다 . 가장 쉬운 경우 w / 고려하고 , 이면 진정으로 연속적인 데이터 (즉, 소수 자릿수로 반올림하지 않음)가 선형으로 분리 될 수있는 확률은 입니다. OTOH, 입니다. ndd=1n=21limn  Pr(linearly separable)0
gung-복직 모니카

또한 초평면이 '평면'이어야하는지 (또는 2d 유형 상황 에서 포물선 일 수있는 경우) 명확해야합니다 . 이 질문은 편평함을 강력하게 암시하는 것처럼 보이지만 아마도 명시 적으로 언급해야합니다.
gung-복직 모니카

4
@gung 나는 "평면도"라는 단어가 "평탄도"를 분명하게 암시한다고 생각하기 때문에 제목을 "선형으로 분리 가능"이라고 편집 한 것입니다. 분명히 어떤 중복 캔없는 데이터 세트는 원칙적으로 비선형 분리에있다.
amoeba는 Reinstate Monica

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)입니까? 노랑-검정색 경계선은 위 그림에서 직선처럼 보이지만 두 번째 그림에서는 구부러져 나타납니다. 아마도 log (n) 때문입니까? 확실하지 않다.
amoeba는 Reinstate Monica

@amoeba 나는 그것을 바꿨다. 또한 과 사이의 경계가 점차 넓어짐을 설명 할 수 있기 때문에 상호 작용도 포함했습니다 (이는 이전에 로그를 시도한 이유였습니다). p=1p=0
Firebug
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.