น่าจะเป็นสิ่งที่จุดสุ่มขนาดเส้นตรงแยกกันไม่ออก?


24

ได้รับจุดข้อมูลแต่ละคนมีคุณสมบัติมีการระบุว่าเป็น , อื่น ๆมีการระบุว่าเป็น1แต่ละคุณสมบัติใช้ค่าตั้งแต่แบบสุ่ม (การกระจายแบบสม่ำเสมอ) ความน่าจะเป็นที่มีไฮเปอร์เพลนที่สามารถแบ่งสองคลาสได้อย่างไรd n / 2 0 n / 2 1 [ 0 , 1 ]ndn/20n/21[0,1]

ลองพิจารณากรณีที่ง่ายที่สุดในครั้งแรกคือ1d=1


3
นี่เป็นคำถามที่น่าสนใจจริงๆ ฉันคิดว่าสิ่งนี้อาจสามารถได้รับการจัดรูปแบบใหม่ได้ว่ามีเปลือกนูนออกมาหรือไม่ - แม้ว่าฉันไม่รู้ว่านั่นจะทำให้ปัญหาตรงไปตรงมาหรือไม่
Don Walpola

สิ่งนี้จะเป็นหน้าที่ของขนาดสัมพัทธ์ของ &อย่างชัดเจน พิจารณากรณีที่ง่ายที่สุด w /ถ้าแล้ว w / ข้อมูลอย่างต่อเนื่องอย่างแท้จริง (กล่าวคือไม่มีการปัดเศษไปยังสถานที่ใด ๆ ทศนิยม) น่าจะเป็นพวกเขาสามารถแยกออกจากกันเป็นเส้นตรงเป็น1OTOH,0 d d = 1 n = 2 1 ลิมn Pr (แยกเป็นเส้นตรง) 0ndd=1n=21limn  Pr(linearly separable)0
gung - Reinstate Monica

คุณควรอธิบายด้วยว่าไฮเปอร์เพลนต้องเป็น 'แฟล็ต' (หรือถ้าเป็นเช่นนั้นพูดพาราโบลาในสถานการณ์2d -type) สำหรับฉันแล้วดูเหมือนว่าคำถามจะบอกเป็นนัยถึงความเรียบง่าย แต่ควรระบุอย่างชัดเจน
gung - Reinstate Monica

4
@ gung ฉันคิดว่าคำว่า "ไฮเปอร์เพลน" แปลว่า "ความเรียบ" อย่างไม่น่าสงสัยนั่นคือสาเหตุที่ฉันแก้ไขชื่อเพื่อพูดว่า "แยกกันไม่ออกเชิงเส้น" เห็นได้ชัดว่าชุดข้อมูลใด ๆโดยไม่ซ้ำกันสามารถอยู่ในหลักการแยกกันไม่เชิงเส้น
อะมีบาพูดว่า Reinstate Monica

1
@ gung IMHO "ไฮเปอร์เพลนแบน" เป็นคำปราศรัย หากคุณยืนยันว่า "ไฮเปอร์เพลน" สามารถโค้งงอได้ดังนั้น "แฟล็ต" สามารถโค้งได้ (ในเมตริกที่เหมาะสม)
อะมีบาพูดว่า Reinstate Monica

คำตอบ:


4

สมมติว่าไม่มีข้อมูลซ้ำอยู่ในข้อมูล

ถ้าnd+1 , น่าจะเป็นPr=1 1

สำหรับชุดค่าผสมอื่นของ(n,d)โปรดดูพล็อตต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสร้างพล็อตนี้จำลองข้อมูลอินพุตและเอาต์พุตตามที่ระบุใน OP เชิงเส้นแยกได้ถูกกำหนดเป็นความล้มเหลวของการบรรจบกันในรูปแบบการถดถอยโลจิสติเนื่องจากผล Hauck-เนอร์

เราสามารถมองเห็นลดลงน่าจะเป็นสำหรับการเพิ่มnในความเป็นจริงเราสามารถใส่โมเดลที่เกี่ยวข้องกับถึงและนี่คือผลลัพธ์:nn,dp

P(n,d)=11+อี-(5.82944-4.58261×n+1.37271×d-0.0235785×n×d)

ป้อนคำอธิบายรูปภาพที่นี่


รหัสสำหรับพล็อต (ใน Julia):

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)พี

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) และไม่ใช่ n เส้นขอบสีเหลืองดำดูเหมือนเส้นตรงสำหรับฉันที่รูปด้านบน แต่ปรากฏว่าโค้งงอในรูปที่สอง อาจเป็นเพราะบันทึก (n)? ไม่แน่ใจ.
อะมีบาพูดว่า Reinstate Monica

@ amoeba ฉันเปลี่ยนมัน ฉันยังรวมถึงการโต้ตอบด้วยเพราะมันสามารถอธิบายการขยายขอบเขตแบบค่อยเป็นค่อยไปของเส้นแบ่งระหว่างและ (ซึ่งเป็นเหตุผลที่ฉันลองทำลอการิทึมมาก่อน) พี=1พี=0
Firebug
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.