คำถามติดแท็ก glmnet

แพคเกจ R สำหรับ lasso และ elastic-netized normalized generalized linear model

1
จะตรวจสอบข้ามกับ cv.glmnet (LASSO regression ใน R) ได้อย่างไร?
ฉันสงสัยว่าจะเข้าใกล้การฝึกอบรมและทดสอบแบบจำลอง LASSO โดยใช้ glmnet ใน R ได้อย่างไร โดยเฉพาะฉันสงสัยว่าจะทำอย่างไรหากขาดชุดข้อมูลการทดสอบภายนอกทำให้ฉันต้องใช้การตรวจสอบข้าม (หรือวิธีการอื่นที่คล้ายคลึงกัน) เพื่อทดสอบแบบจำลอง LASSO ของฉัน ให้ฉันทำลายสถานการณ์ของฉัน: ฉันมีชุดข้อมูลเพียงชุดเดียวเพื่อแจ้งและฝึกอบรมโมเดล glmnet ของฉัน ดังนั้นฉันจะต้องใช้การตรวจสอบข้ามเพื่อแยกข้อมูลของฉันเพื่อสร้างวิธีทดสอบโมเดลของฉัน ฉันกำลังใช้อยู่cv.glmnetซึ่งตามรายละเอียดแพ็คเกจ : ทำการตรวจสอบความถูกต้องข้ามของ k-fold สำหรับ glmnet, สร้างพล็อตและส่งกลับค่าสำหรับแลมบ์ดา การตรวจสอบข้ามถูกดำเนินการในcv.glmnetการเลือกแลมบ์ดาที่ดีที่สุดหรือเป็นวิธีการตรวจสอบข้ามโดยทั่วไปหรือไม่ กล่าวอีกนัยหนึ่งฉันยังต้องทำอีกขั้นตอนการตรวจสอบข้ามเพื่อ "ทดสอบ" โมเดลของฉันหรือไม่ ฉันทำงานกับข้อสันนิษฐานที่ว่า "ใช่แล้ว" ในกรณีนี้ฉันจะตรวจสอบcv.glmnetรุ่นของฉันได้อย่างไร ฉันต้องทำด้วยตนเองหรืออาจเป็นcaretฟังก์ชั่นที่มีประโยชน์สำหรับรุ่น glmnet หรือไม่? ฉันจะใช้ "ลูป" สองจุดศูนย์กลางของการตรวจสอบความถูกต้องไขว้หรือไม่ ... ฉันใช้ "ลูปด้านใน" ของ CV ผ่านcv.glmnetเพื่อกำหนดค่าแลมบ์ดาที่ดีที่สุดในแต่ละkเท่าของ "ลูปภายนอก" ของการประมวลผลการตรวจสอบความถูกต้องข้าม ? หากฉันทำการตรวจสอบความถูกต้องของcv.glmnetรูปแบบการตรวจสอบความถูกต้องไขว้ฉันจะแยกโมเดล "ดีที่สุด" (จากแลมบ์ดา "ที่ดีที่สุด") …

1
การจำลองผลลัพธ์สำหรับการถดถอยเชิงเส้น glmnet โดยใช้เครื่องมือเพิ่มประสิทธิภาพทั่วไป
ฐานะที่เป็นรัฐชื่อฉันพยายามที่จะทำซ้ำผลจากการ glmnet เชิงเส้นโดยใช้เพิ่มประสิทธิภาพ LBFGS lbfgsจากห้องสมุด เครื่องมือเพิ่มประสิทธิภาพนี้ช่วยให้เราสามารถเพิ่มคำศัพท์ปกติ L1 โดยไม่ต้องกังวลเกี่ยวกับความแตกต่างตราบใดที่ฟังก์ชันวัตถุประสงค์ของเรา (ไม่มีคำศัพท์ปกติของ L1) นั้นเป็นนูน ปัญหาการถดถอยเชิงเส้นแบบยืดหยุ่นสุทธิในกระดาษ glmnetนั้นได้รับโดย ที่X \ in \ mathbb {R} ^ {n \ times p}คือเมทริกซ์การออกแบบy \ in \ mathbb {R} ^ pเป็นเวกเตอร์ของการสังเกต\ alpha \ in [0,1]คือพารามิเตอร์เน็ตยืดหยุ่นและ\ lambda> 0คือพารามิเตอร์การทำให้เป็นมาตรฐาน โอเปอเรเตอร์\ Vert x \ Vert_pหมายถึงบรรทัดฐาน Lp ปกติminβ∈Rp12n∥β0+Xβ−y∥22+αλ∥β∥1+12(1−α)λ∥β∥22minβ∈Rp12n‖β0+Xβ−y‖22+αλ‖β‖1+12(1−α)λ‖β‖22\min_{\beta \in \mathbb{R}^p} \frac{1}{2n}\Vert \beta_0 + X\beta …

2
RMSE (Root Mean Squared Error) สำหรับโมเดลโลจิสติก
ฉันมีคำถามเกี่ยวกับความถูกต้องของการใช้ RMSE (Root Mean Squared Error) เพื่อเปรียบเทียบโมเดลโลจิสติกที่แตกต่างกัน การตอบสนองเป็นอย่างใดอย่างหนึ่ง0หรือ1และการคาดการณ์ที่มีความน่าจะเป็นระหว่าง0- 1? วิธีที่ใช้ด้านล่างนี้ใช้ได้กับการตอบกลับแบบไบนารีหรือไม่ # Using glmnet require(glmnet) load(url("https://github.com/cran/glmnet/raw/master /data/BinomialExample.RData")) cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse") A <- predict(cvfit, newx = x, s = "lambda.min", type = "response") RMSE1 <- mean((y - A)^2) # 0.05816881 # glm mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv") …

1
glm หรือ glmnet ใดที่มีความแม่นยำมากกว่า
R glm และ glmnet ใช้อัลกอริธึมที่แตกต่างกัน ฉันสังเกตเห็นความแตกต่างเล็ก ๆ น้อย ๆ ระหว่างค่าสัมประสิทธิ์โดยประมาณเมื่อฉันใช้ทั้งคู่ ฉันสนใจเมื่อคนหนึ่งมีความแม่นยำมากกว่าคนอื่นและเวลาที่จะแก้ไข / แลกเปลี่ยนความแม่นยำ โดยเฉพาะฉันหมายถึงกรณีที่หนึ่งชุดแลมบ์ดา = 0 ใน glmnet st มันประมาณเช่นเดียวกับ glm

1
การตรวจสอบความถดถอยแบบไขว้ใน R
ฟังก์ชัน R cv.glm (ไลบรารี่: บูต) คำนวณข้อผิดพลาดในการทำนายการตรวจสอบความถูกต้องข้ามแบบ K-fold สำหรับโมเดลเชิงเส้นทั่วไปและส่งกลับเดลต้า มันเหมาะสมหรือไม่ที่จะใช้ฟังก์ชั่นนี้สำหรับการถดถอยแบบ lasso (ไลบรารี่: glmnet) และถ้าเป็นเช่นนั้นจะสามารถดำเนินการได้อย่างไร? ไลบรารี glmnet ใช้ cross-validation เพื่อให้ได้พารามิเตอร์การกลึงที่ดีที่สุด แต่ฉันไม่พบตัวอย่างใด ๆ ที่ cross-validates สมการ glmnet สุดท้าย

1
glmnet จัดการกับการกระจายเกินขนาดได้อย่างไร
ฉันมีคำถามเกี่ยวกับวิธีจำลองข้อความเหนือข้อมูลการนับโดยเฉพาะฉันจะใช้lassoเทคนิคเพื่อลดคุณลักษณะได้อย่างไร สมมติว่าฉันมีบทความออนไลน์ N รายการและจำนวนการเปิดดูหน้าเว็บสำหรับแต่ละบทความ ฉันได้สกัด 1 กรัมและ 2 กรัมสำหรับแต่ละบทความแล้วและฉันต้องการเรียกใช้การถดถอยมากกว่า 1,2- กรัม เนื่องจากฟีเจอร์ (1,2-grams) นั้นมากกว่าวิธีการสังเกตจำนวนมาก Lasso จึงเป็นวิธีที่ดีในการลดจำนวนฟีเจอร์ นอกจากนี้ฉันพบว่าglmnetมันมีประโยชน์จริงๆในการรันการวิเคราะห์บ่วงบาศ อย่างไรก็ตามจำนวนการเปิดดูหน้าเว็บนั้นมีจำนวนมากเกินไป (แปรปรวน> หมายถึง) แต่glmnetไม่มีการเสนอquasipoisson(อย่างชัดเจน) หรือnegative binomialแต่poissonสำหรับการนับข้อมูล วิธีการแก้ปัญหาที่ฉันคิดคือlog transformการนับข้อมูล (วิธีที่ใช้กันทั่วไปในหมู่นักสังคมศาสตร์) และทำให้ตัวแปรตอบสนองคร่าว ๆ ตามการแจกแจงปกติ glmnetเป็นเช่นนี้ผมอาจจะรูปแบบข้อมูลกับครอบครัวของเกาส์โดยใช้ ดังนั้นคำถามของฉันคือ: เหมาะสมหรือไม่ หรือฉันจะใช้ปัวซองglmnetในกรณีglmnetด้ามจับquasipoisson? หรือมีแพ็คเกจ R อื่น ๆ จัดการกับสถานการณ์นี้หรือไม่? ขอบคุณมาก!

3
การถดถอยโลจิสติก: การเพิ่มผลบวกจริง - การบวกเท็จ
ฉันมีโมเดลการถดถอยโลจิสติก (พอดีผ่าน glmnet ใน R พร้อมกับการทำให้เป็นมาตรฐานสุทธิ) และฉันต้องการเพิ่มความแตกต่างระหว่างผลบวกจริงและผลบวกปลอม ในการดำเนินการดังกล่าวขั้นตอนต่อไปนี้อยู่ในใจ: พอดีกับโมเดลการถดถอยโลจิสติกมาตรฐาน ใช้เกณฑ์การทำนายเป็น 0.5 ระบุการคาดการณ์ในเชิงบวกทั้งหมด กำหนดน้ำหนัก 1 สำหรับการสังเกตที่คาดการณ์ไว้ในเชิงบวก 0 สำหรับคนอื่น ๆ ทั้งหมด พอดีกับรูปแบบการถดถอยโลจิสติกถ่วงน้ำหนัก อะไรคือข้อบกพร่องของวิธีนี้? อะไรจะเป็นวิธีที่ถูกต้องในการแก้ไขปัญหานี้ เหตุผลที่ต้องการเพิ่มความแตกต่างระหว่างจำนวนของผลบวกที่แท้จริงและเชิงลบที่ผิดเนื่องจากการออกแบบใบสมัครของฉัน ในฐานะส่วนหนึ่งของโครงงานในชั้นเรียนฉันกำลังสร้างผู้เข้าร่วมอิสระในตลาดออนไลน์ - ถ้าแบบจำลองของฉันทำนายว่าสามารถซื้อบางอย่างและขายในภายหลังด้วยราคาที่สูงกว่า ฉันต้องการยึดติดกับการถดถอยโลจิสติกและผลลัพธ์ไบนารีผลลัพธ์ (ชนะ, แพ้) ตามต้นทุนคงที่และการเพิ่มขึ้นของราคาต่อหน่วย (ฉันได้รับหรือสูญเสียจำนวนเดียวกันในทุกธุรกรรม) คิดบวกทำให้ฉันเจ็บเพราะหมายความว่าฉันซื้ออะไรและไม่สามารถขายได้ในราคาที่สูงขึ้น อย่างไรก็ตามการลบที่ผิดพลาดไม่ได้ทำร้ายฉัน (เฉพาะในแง่ของโอกาสเสียค่าใช้จ่าย) เพราะมันหมายถึงว่าฉันไม่ได้ซื้อ แต่ถ้าฉันมีฉันจะทำเงิน ในทำนองเดียวกัน ฉันยอมรับว่าการตัด 0.5 นั้นเป็นการสุ่มโดยพลการและเมื่อฉันปรับรูปแบบจากขั้นตอนที่ 1 บนขีด จำกัด การทำนายซึ่งให้ผลต่างสูงสุดระหว่างความจริง / เท็จบวกจะกลายเป็นใกล้กว่า 0.4 ฉันคิดว่านี่เป็นเพราะลักษณะที่บิดเบือนของข้อมูลของฉัน - อัตราส่วนระหว่างเชิงลบและบวกเป็นเรื่องเกี่ยวกับ …

2
เกิดข้อผิดพลาดเมื่อเรียกใช้ glmnet ใน multinomial [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามดังนั้นจึงเป็นหัวข้อสำหรับการตรวจสอบข้าม ปิดให้บริการใน9 เดือนที่ผ่านมา ปัญหาที่กล่าวถึงในคำถามนี้ได้รับการแก้ไขในรุ่น 1.7.3 ของแพ็คเกจ glmnet ฉันมีปัญหาบางอย่างในการใช้ glmnet กับ family = multinomial และสงสัยว่าได้พบสิ่งที่คล้ายกันหรืออาจบอกฉันได้ว่าฉันทำอะไรผิด เมื่อฉันใส่ข้อมูลจำลองของฉันเองข้อผิดพลาด "ข้อผิดพลาดในการใช้งาน (nz, 1, ค่ามัธยฐาน): สลัว (X) ต้องมีความยาวเป็นบวก" ได้รับรายงานเมื่อฉันทำงานcv.glmnetซึ่งนอกเหนือจากการพูดว่า "มันไม่ทำงาน" ไม่ได้ให้ข้อมูลกับฉันอย่างมหาศาล y=rep(1:3,20) #=> 60 element vector set.seed(1011) x=matrix(y+rnorm(20*3*10,sd=0.4),nrow=60) # 60*10 element matrix glm = glmnet(x,y,family="multinomial") #=> returns without error crossval = cv.glmnet(x,y,family="multinomial") …
9 r  multinomial  glmnet 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.