ฉันจะฝึกอบรมการถดถอย (โลจิสติก) ใน R โดยใช้ฟังก์ชั่นการสูญเสีย L1 ได้อย่างไร


11

ฉันสามารถฝึกการถดถอยโลจิสติกในการRใช้

glm(y ~ x, family=binomial(logit)))

แต่ IIUC สิ่งนี้จะปรับให้เหมาะสมกับความน่าจะเป็นของบันทึก

มีวิธีฝึกโมเดลด้วยฟังก์ชั่นการสูญเสียเชิงเส้น ( ) หรือไม่ซึ่งในกรณีนี้จะเหมือนกับระยะการเปลี่ยนแปลงทั้งหมดหรือไม่L1

เช่นได้รับเวกเตอร์เป็นตัวเลขและบิต (ตรรกะ) เวกเตอร์ฉันต้องการสร้างฟังก์ชัน monotonic (ในความเป็นจริงเพิ่มขึ้น) ที่เช่นนั้นถูกย่อให้เล็กสุดxf | f ( x ) - y |yf|f(x)y|

ดูสิ่งนี้ด้วย


สิ่งที่คุณต้องการไม่มีอยู่และจะทื่อมันก็ไม่สมเหตุสมผล เราสามารถพูดคุยเกี่ยวกับทางเลือกอื่น แต่คุณต้องระบุให้ละเอียดยิ่งขึ้นว่าคุณกำลังพยายามทำอะไร ทำไมคุณต้องการจัดวางโมเดลโลจิสติกที่มีการสูญเสีย L1
user603

@ user603: เพราะฉันต้องการประเมินโมเดลของฉันโดยใช้TVD
sds

ดูเหมือนว่าคุณกำลังพูดถึงการปรับโค้งโลจิสติกให้เหมาะสมกับข้อมูลแทนที่จะเป็นการกระจายข้อมูลแบบทวินามให้เหมาะสมนั่นคือรูปแบบของการถดถอยแบบไม่เชิงเส้นแต่ใช้แทนที่จะเป็นบรรทัดฐานอันที่จริงฟังก์ชั่นการสูญเสียแสดงให้เห็นว่าค่าสูงสุดไม่ได้เป็น (ถ้าเป็นกรณีนี้มันจะอ้างอิงถึงการทำให้เข้าใจผิด GLM แบบทวินาม) ในทางกลับกันถ้ามันถูกจำกัดอยู่ที่ 0-1 ฟังก์ชั่นการสูญเสียก็ไม่สมเหตุสมผล โปรดให้รายละเอียดเกี่ยวกับสถานการณ์จริงของคุณได้ไหม L 2| f ( x ) - y | 1L1L2|f(x)y|1
Glen_b -Reinstate Monica

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

@Glen_b: ฉันคิดว่า "บิต (ตรรกะ) เวกเตอร์ y" หมายถึงการตอบสนอง 0/1
sds

คำตอบ:


21

สิ่งที่คุณต้องการทำไม่มีอยู่เพราะมันเป็นเพราะการขาดคำที่ดีกว่าข้อบกพร่องทางคณิตศาสตร์

แต่ก่อนอื่นฉันจะเน้นว่าทำไมฉันถึงคิดว่าสถานที่ตั้งของคำถามของคุณดูดี จากนั้นฉันจะพยายามอธิบายว่าทำไมฉันจึงคิดว่าข้อสรุปที่คุณได้รับจากพวกเขาวางอยู่บนความเข้าใจผิดของโมเดลโลจิสติกและในที่สุดฉันจะแนะนำวิธีการอื่น

ฉันจะแสดงว่าการสังเกตnของคุณ(ตัวอักษรที่โดดเด่นยิ่งขึ้นหมายถึงเวกเตอร์) ซึ่งอยู่ในพื้นที่มิติp(รายการแรกของ x{(xxi,yi)}i=1nnpคือ 1) ด้วยp<n, y i[0,1]และ f( xxxip<nyi[0,1]เป็นฟังก์ชันที่ซ้ำซากของ xf(xxi)=f(xxiββ)พูดเช่นเส้นโค้งโลจิสติกกับความคิดแก้ไข สำหรับการได้เปรียบผมก็จะคิดว่า nคือพอมีขนาดใหญ่เมื่อเทียบกับPxxiββnp

คุณถูกต้องว่าถ้าคุณตั้งใจจะใช้TVDเป็นเกณฑ์ในการประเมินรุ่นที่ติดตั้งแล้วมันก็สมเหตุสมผลที่จะคาดหวังว่าแบบของคุณเพื่อเพิ่มประสิทธิภาพของเกณฑ์เดียวกันในบรรดาผู้สมัครที่เป็นไปได้ทั้งหมดกับข้อมูลของคุณ ด้วยเหตุนี้

ββ=argminββRp||yyf(xxiββ)||1

ปัญหาคือข้อความแสดงข้อผิดพลาด : และถ้าเราบังคับใช้ (เราแค่อยากให้แบบจำลองของเราปราศจากความเป็นกลาง )ต้องเป็นheteroskedastic เพราะนี่คือสามารถใช้เวลาเพียงสองค่า 0 และ 1 ดังนั้นให้ ,ยังสามารถใช้เวลาเพียงสองค่า:เมื่อ , ซึ่งเกิดขึ้นกับความน่าจะเป็นและเมื่อE ( ϵ)ϵi=yif(xxiββ)ϵ ฉันy ฉันxE(ϵϵ)=0ϵi yiε ฉัน 1-F( xxxiϵiy i = 1 f ( x1f(xxiββ)yi=1- f ( xf(xxiββ)y i = 1 1 - f ( xf(xxiββ)yi=1ซึ่งเกิดขึ้นกับความน่าจะเป็นเบต้า)1f(xxiββ)

การพิจารณาร่วมกันเหล่านี้บ่งบอกว่า:

var(ϵϵ)=E(ϵϵ2)=(1f(xxββ))2f(xxββ)+(f(xxββ))2(1f(xxββ))=(1f(xxββ))f(xxββ)=E(yy|xx)E(1yy|xx)

ด้วยเหตุนี้ไม่คงที่ แต่เว้าโค้งที่มีรูปร่างและเป็น maximized เมื่อเป็นเช่นนั้น0.5xvar(ϵϵ) E ( y | xxxE(y|xx).5

นี้โดยธรรมชาติ heteroskedasticity ของเศษมีผลกระทบ มันมีความหมายเหนือสิ่งอื่นใดที่เมื่อลดฟังก์ชั่นการสูญเสียน้อยที่สุด นั่นคือการติดตั้งไม่พอดีกับข้อมูลเลย แต่มีเพียงบางส่วนเท่านั้นที่ได้รับการจัดกลุ่มรอบสถานที่ที่เป็นเช่นนั้น . หากต้องการปัญญาสิ่งเหล่านี้เป็นจุดข้อมูลที่ให้ข้อมูลน้อยที่สุดในตัวอย่างของคุณ : มันสอดคล้องกับการสังเกตที่เป็นองค์ประกอบเสียงที่ใหญ่ที่สุด ดังนั้นของคุณจะถูกดึงไปทางเช่นไม่เกี่ยวข้องβl1xββ E ( yxxβE(yy|xx).5ββ=ββ:f(xxββ).5

ทางออกหนึ่งที่ชัดเจนจากการแสดงออกข้างต้นคือการลดความต้องการของความเป็นกลาง วิธีที่นิยมใช้ในการประเมินอคติ (โดยมีการตีความแบบเบย์บางส่วน) คือการรวมคำที่หดตัว หากเราปรับขนาดการตอบสนองใหม่:

yi+=2(yi.5),1in

และเพื่อความสะดวกในการคำนวณแทนที่โดยฟังก์ชันโมโนโทนเดียวอีก - มันจะสะดวกสำหรับภาคต่อที่จะแสดงส่วนประกอบแรกของเวกเตอร์ของพารามิเตอร์เป็นและอันที่เหลือ - และรวมถึงคำหดตัว (เช่นหนึ่งในรูปแบบ ) ปัญหาการปรับให้เหมาะสมที่เกิดขึ้นจะกลายเป็น:g ( xf(xxββ)c p - 1 γg(xx,[c,γγ])=xx[c,γγ]cp1| | γγγ||γγ||2

[c,γγ]=argmin[[c,γγ]Rpi=1nmax(0,1yi+xxi[[c,γγ])+12||γγ||2

โปรดทราบว่าในปัญหาการหาค่าเหมาะที่สุดแบบใหม่ (รวมถึงนูน) การปรับโทษสำหรับการสังเกตอย่างเป็นหมวดหมู่อย่างถูกต้องคือ 0 และมันเพิ่มขึ้นแบบเส้นตรงด้วยสำหรับประเภทที่ไม่ได้จัดประเภท - ในการสูญเสีย การแก้ปัญหาการปรับให้เหมาะสมครั้งที่สองนี้คือสัมประสิทธิ์เชิงเส้น svm เชิงเส้น (พร้อมการแยกที่สมบูรณ์แบบ) ตรงข้ามกับมันสมเหตุสมผลที่จะเรียนรู้สิ่งเหล่านี้จากข้อมูลที่มีบทลงโทษประเภท TVD ('ประเภท' เนื่องจากคำว่าอคติ) . ดังนั้นการแก้ปัญหานี้มีการใช้อย่างกว้างขวาง ดูตัวอย่างแพคเกจการ R LiblineaRl 1 [ c , γxx[[c,γ]l1 β[c,γγ] [ c , γββ[c,γγ]


ฉันหวังว่าฉันจะให้มากกว่า 25 คะแนน :-)
sds

@sds; ขอบคุณ: มันเป็นคำถามที่ดี :) ฉันจะกลับมาในระหว่างวันและกรอกรายละเอียดแก้ไขข้อผิดพลาดบางอย่าง
user603

8

ฉันไม่แน่ใจว่าทำไมคุณต้องการใช้การสูญเสีย L1 สำหรับบางสิ่งที่ จำกัด ระหว่าง 0 และ 1 คุณอาจต้องการพิจารณาบางอย่างเช่นการสูญเสียบานพับแทนซึ่งคล้ายกับการสูญเสีย L1 ในทิศทางเดียวและแบน ในที่อื่น ๆ

ไม่ว่าในกรณีใดรหัสด้านล่างควรทำตามที่คุณขอ โปรดทราบว่าการตอบสนองที่ดีที่สุดนั้นเป็นฟังก์ชั่นขั้นตอน

set.seed(1)

# Fake data
x = seq(-1, 1, length = 100)
y = rbinom(100, plogis(x), size = 1) # plogis is the logistic function

# L1 loss
loss = function(y, yhat){
  sum(abs(y - yhat))
}

# Function to estimate loss associated with a given slope & intercept
fn = function(par){
  a = par[1]
  b = par[2]
  loss(y = y, yhat = plogis(a + b * x))
}

# Find the optimal parameters
par = optim(
  par = c(a = 0, b = 0),
  fn = fn
)$par

# Plot the results
plot(y ~ x)
curve(plogis(par[1] + par[2] * x), add = TRUE, n = 1000)

0

คุณสามารถใช้แพ็คเกจ glmnet สำหรับรุ่น L1, L2 ที่เหมาะสม มันไม่ จำกัด เฉพาะการถดถอยโลจิสติก แต่รวมไว้

นี่คือบทความสั้น ๆ : http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html

นอกจากนี้ยังมี webminar: https://www.youtube.com/watch?v=BU2gjoLPfDc

Liblinear นั้นดี แต่ฉันพบว่า glmnet ง่ายกว่าในการเริ่มต้น Glmnet มีฟังก์ชั่นที่จะทำการตรวจสอบข้ามและเลือกพารามิเตอร์การทำให้เป็นมาตรฐานสำหรับคุณโดยอิงจากเมทริกต่าง ๆ เช่น AUC

เกี่ยวกับทฤษฎีฉันจะอ่านกระดาษ tibshiarini เกี่ยวกับ lasso (L1 normalization) และบทในองค์ประกอบของการเรียนรู้ทางสถิติ http://statweb.stanford.edu/~tibs/lasso/lasso.pdf

เกี่ยวกับการสูญเสียบันทึกเป็นเพียงการประเมินโมเดล มันไม่ใช่ฟังก์ชั่นการสูญเสียสำหรับการติดตั้งแบบจำลอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.