คำถามติดแท็ก random-forest

ฟอเรสต์แบบสุ่มเป็นวิธีการเรียนรู้ด้วยเครื่องจักรโดยใช้การผสมผสานเอาท์พุทของต้นไม้ตัดสินใจจำนวนมาก

2
เหตุใด CNN จึงสรุปด้วยเลเยอร์ FC
จากความเข้าใจของฉัน CNN ประกอบด้วยสองส่วน ส่วนแรก (Conv / พูลเลเยอร์) ซึ่งทำการแยกคุณสมบัติและส่วนที่สอง (fc layer) ซึ่งทำการจำแนกจากฟีเจอร์ เนื่องจากมุ้งที่เชื่อมต่ออย่างสมบูรณ์ไม่ใช่ตัวแยกประเภทที่ดีที่สุด (เช่นพวกเขาได้รับประสิทธิภาพที่ดีกว่าโดย SVM และ RF ส่วนใหญ่) ทำไม CNNs จึงสรุปด้วยเลเยอร์ FC แทนที่จะเป็น SVM หรือ RF?

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

1
ป่าสุ่มและน้ำหนักของชั้นเรียน
คำถามในประโยคเดียว: มีใครรู้วิธีกำหนดน้ำหนักชั้นดีสำหรับป่าสุ่มหรือไม่ คำอธิบาย: ฉันกำลังเล่นกับชุดข้อมูลที่ไม่สมดุล ฉันต้องการใช้RแพคเกจrandomForestเพื่อฝึกอบรมโมเดลบนชุดข้อมูลที่เบ้มากโดยมีตัวอย่างบวกเพียงเล็กน้อยและตัวอย่างเชิงลบจำนวนมาก ฉันรู้ว่ามีวิธีการอื่น ๆ และในที่สุดฉันจะใช้ประโยชน์จากพวกเขา แต่ด้วยเหตุผลทางเทคนิคการสร้างป่าสุ่มเป็นขั้นตอนกลาง classwtดังนั้นผมจึงเล่นรอบกับพารามิเตอร์ ฉันกำลังตั้งค่าชุดข้อมูลเทียมจำนวน 5,000 ตัวอย่างในแผ่นดิสก์ที่มีรัศมี 2 และจากนั้นฉันสุ่มตัวอย่างบวก 100 ตัวอย่างในแผ่นดิสก์ที่มีรัศมี 1 สิ่งที่ฉันสงสัยคือ 1) ถ้าไม่มีคลาสที่มีน้ำหนักโมเดลจะกลายเป็น 'เสื่อม' เช่นคาดการณ์FALSEทุกที่ 2) ด้วยการถ่วงน้ำหนักชั้นเรียนที่เป็นธรรมฉันจะเห็น 'จุดสีเขียว' ที่อยู่ตรงกลางนั่นคือมันจะทำนายแผ่นดิสก์ด้วยรัศมี 1 ราวกับว่าTRUEมีตัวอย่างเชิงลบ นี่คือข้อมูลที่มีลักษณะ: นี่คือสิ่งที่เกิดขึ้นโดยไม่ต้องถ่วงน้ำหนัก: (การโทรคือrandomForest(x = train[, .(x,y)],y = as.factor(train$z),ntree = 50):) สำหรับการตรวจสอบฉันได้ลองสิ่งที่เกิดขึ้นเมื่อฉันสร้างสมดุลของชุดข้อมูลอย่างรุนแรงโดยการสุ่มตัวอย่างชั้นลบเพื่อให้ความสัมพันธ์เป็น 1: 1 อีกครั้ง สิ่งนี้ให้ผลลัพธ์ที่คาดหวัง: อย่างไรก็ตามเมื่อฉันคำนวณแบบจำลองที่มีน้ำหนักคลาส 'FALSE' = 1, 'TRUE' = …
11 r  random-forest 

1
เหตุใด K ตัวเลือกจำนวนมากจึงลดคะแนนการตรวจสอบความถูกต้องไขว้ของฉัน
การเล่นกับBoston Housing DatasetและRandomForestRegressor(w / พารามิเตอร์เริ่มต้น) ใน scikit-Learn ฉันสังเกตเห็นบางสิ่งที่แปลก: ค่าเฉลี่ยการตรวจสอบความถูกต้องลดลงเมื่อฉันเพิ่มจำนวน folds เกิน 10 กลยุทธ์การตรวจสอบข้ามของฉันมีดังนี้: cv_met = ShuffleSplit(n_splits=k, test_size=1/k) scores = cross_val_score(est, X, y, cv=cv_met) ... ที่num_cvsหลากหลาย ฉันตั้งค่าtest_sizeเป็น1/num_cvsกระจกจำลองพฤติกรรมการแยกขนาดของรถไฟ / ทดสอบของ k-fold CV โดยทั่วไปฉันต้องการบางสิ่งบางอย่างเช่น k-fold CV แต่ฉันต้องการการสุ่มด้วย (เช่น ShuffleSplit) การทดลองนี้ซ้ำหลายครั้งแล้วคะแนนเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานถูกวางแผนแล้ว (โปรดทราบว่าขนาดของkถูกระบุโดยพื้นที่ของวงกลมโดยค่าเบี่ยงเบนมาตรฐานอยู่บนแกน Y) การเพิ่มขึ้นอย่างต่อเนื่องk(จาก 2 เป็น 44) จะให้คะแนนเพิ่มขึ้นเล็กน้อยตามด้วยการลดลงอย่างต่อเนื่องเมื่อkเพิ่มขึ้นอีก (เกิน ~ 10 เท่า)! ถ้ามีอะไรฉันคาดหวังว่าข้อมูลการฝึกอบรมเพิ่มเติมจะนำไปสู่คะแนนเพิ่มขึ้นเล็กน้อย! ปรับปรุง …

2
ต้นไม้การตัดสินใจและการถดถอย - ค่าที่ทำนายได้นั้นอาจอยู่นอกช่วงของข้อมูลการฝึกอบรมหรือไม่?
เมื่อพูดถึงต้นไม้ตัดสินใจค่าที่ทำนายได้จะอยู่นอกขอบเขตของข้อมูลการฝึกอบรมหรือไม่? ตัวอย่างเช่นหากช่วงชุดข้อมูลการฝึกอบรมของตัวแปรเป้าหมายคือ 0-100 เมื่อฉันสร้างแบบจำลองของฉันและนำไปใช้กับสิ่งอื่นค่าของฉันจะเป็น -5 หรือไม่ หรือ 150 เนื่องจากความเข้าใจของฉันเกี่ยวกับการตัดสินใจต้นไม้ถดถอยก็ยังคงเป็นกฎพื้นฐาน - ความก้าวหน้าทางซ้าย / ขวาและที่ด้านล่างของต้นไม้ในชุดฝึกอบรมไม่สามารถมองเห็นคุณค่านอกช่วงที่กำหนดได้มันจะไม่สามารถทำได้ ทำนายมันได้หรือ

2
การสุ่มตัวอย่างด้วยการแทนที่ด้วย R randomForest
การใช้งาน RandomForest ไม่อนุญาตให้มีการสุ่มตัวอย่างเกินจำนวนการสังเกตแม้ว่าจะสุ่มตัวอย่างด้วยการเปลี่ยน ทำไมนี้ ทำงานได้ดี: rf <- randomForest(Species ~ ., iris, sampsize=c(1, 1, 1), replace=TRUE) rf <- randomForest(Species ~ ., iris, sampsize=3, replace=TRUE) สิ่งที่ฉันต้องการจะทำ: rf <- randomForest(Species ~ ., iris, sampsize=c(51, 1, 1), replace=TRUE) Error in randomForest.default(m, y, ...) : sampsize can not be larger than class frequency ข้อผิดพลาดที่คล้ายกันโดยไม่มีตัวอย่างแบ่งชั้น: rf …

2
การสุ่มตัวอย่าง MCMC ของพื้นที่ต้นไม้การตัดสินใจเทียบกับป่าแบบสุ่ม
ป่าสุ่มคือชุดของต้นไม้ตัดสินใจที่เกิดขึ้นจากการสุ่มเลือกคุณสมบัติบางอย่างเท่านั้นที่จะสร้างต้นไม้แต่ละต้นด้วย (และบางครั้งการรวบข้อมูลการฝึกอบรม) เห็นได้ชัดว่าพวกเขาเรียนรู้และพูดคุยได้ดี มีใครทำการสุ่มตัวอย่าง MCMC ของพื้นที่ต้นไม้การตัดสินใจหรือเปรียบเทียบกับป่าสุ่ม? ฉันรู้ว่ามันอาจมีราคาแพงกว่าการคำนวณ MCMC และบันทึกต้นไม้ตัวอย่างทั้งหมด แต่ฉันสนใจคุณสมบัติทางทฤษฎีของรุ่นนี้ไม่ใช่ค่าใช้จ่ายในการคำนวณ สิ่งที่ฉันหมายถึงคือสิ่งนี้: สร้างแผนผังการตัดสินใจแบบสุ่ม (มันอาจจะทำงานได้อย่างน่ากลัว) โอกาส Compute ของต้นไม้กับสิ่งที่ต้องการหรือบางทีอาจจะเพิ่มระยะP P R ฉันo R ( T R อีอี)P( Tr e e | D a t a ) ∝ P( D a t a | Tr e e )P(TRอีอี|Daเสื้อa)αP(Daเสื้อa|TRอีอี)P(Tree|Data) \propto P(Data|Tree)Pp r i o r( …

1
การลดจำนวนระดับของตัวแปรทำนายการจัดหมวดหมู่แบบไม่เรียงลำดับ
ฉันต้องการฝึกอบรมลักษณนามพูด SVM หรือฟอเรสต์แบบสุ่มหรือลักษณนามอื่น ๆ หนึ่งในคุณสมบัติในชุดข้อมูลเป็นตัวแปรเด็ดขาดที่มี 1,000 ระดับ เป็นวิธีที่ดีที่สุดในการลดจำนวนระดับในตัวแปรนี้คืออะไร ใน R มีฟังก์ชั่นที่เรียกว่าcombine.levels()ในแพ็คเกจHmiscซึ่งรวมระดับที่ไม่บ่อยนัก แต่ฉันกำลังมองหาคำแนะนำอื่น ๆ

2
มีวิธีใดที่จะอธิบายการทำนายจากแบบจำลองฟอเรสต์แบบสุ่มหรือไม่?
สมมติว่าฉันมีรูปแบบการจำแนกการคาดการณ์ตามป่าสุ่ม (ใช้แพ็คเกจสุ่มป่าไม้ใน R) ฉันต้องการตั้งค่าเพื่อให้ผู้ใช้ปลายทางสามารถระบุรายการที่จะสร้างการทำนายสำหรับและมันจะส่งออกโอกาสในการจัดหมวดหมู่ จนถึงตอนนี้ก็ไม่มีปัญหา แต่มันจะมีประโยชน์ / เจ๋งมากที่จะสามารถแสดงผลออกมาเช่นกราฟความสำคัญของตัวแปร แต่สำหรับรายการเฉพาะที่ถูกทำนายไม่ใช่สำหรับชุดฝึก สิ่งที่ต้องการ: รายการ X ถูกคาดการณ์ว่าจะเป็นสุนัข (มีโอกาส 73%) เนื่องจาก: ขา = 4 ลมหายใจ = ขนที่ไม่ดี= อาหารสั้น= น่ารังเกียจ คุณได้รับจุด มีวิธีมาตรฐานหรืออย่างน้อยก็สมควรในการดึงข้อมูลนี้จากป่าสุ่มที่ได้รับการฝึกอบรมแล้ว? ถ้ามีใครมีรหัสที่จะใช้สำหรับแพ็คเกจสุ่มป่าไม้หรือไม่?

2
ทำไมต้นไม้ที่ถูกถุง / ต้นไม้ป่าสุ่มมีอคติสูงกว่าต้นไม้ตัดสินใจเดี่ยว?
หากเราพิจารณาแผนภูมิการตัดสินใจที่โตเต็มที่ (เช่นแผนผังการตัดสินใจที่ไม่มีการแบ่ง) มันมีความแปรปรวนสูงและมีอคติต่ำ การบรรจุถุงและป่าสุ่มใช้โมเดลความแปรปรวนสูงเหล่านี้และรวมเข้าด้วยกันเพื่อลดความแปรปรวนและเพิ่มความแม่นยำในการทำนาย ทั้งการบรรจุถุงและการสุ่มป่าใช้การสุ่มตัวอย่าง Bootstrap และตามที่อธิบายไว้ใน "องค์ประกอบของการเรียนรู้ทางสถิติ" สิ่งนี้จะเพิ่มความลำเอียงในต้นไม้ต้นเดียว นอกจากนี้เนื่องจากวิธีการสุ่มฟอเรสต์ จำกัด ตัวแปรที่อนุญาตให้แยกในแต่ละโหนดอคติสำหรับฟอเรสต์แบบสุ่มเดียวจะเพิ่มมากขึ้น ดังนั้นความแม่นยำในการทำนายจะเพิ่มขึ้นหากการเพิ่มขึ้นของอคติของต้นไม้ต้นเดียวในการบรรจุหีบห่อและการสุ่มป่าไม่ได้ "เกินความจริง" การลดความแปรปรวน สิ่งนี้นำฉันไปสู่คำถามสองข้อต่อไปนี้: 1) ฉันรู้ว่าด้วยการสุ่มตัวอย่าง bootstrap เราจะ (เกือบทุกครั้ง) มีการสังเกตแบบเดียวกันในตัวอย่าง bootstrap แต่ทำไมสิ่งนี้นำไปสู่การเพิ่มอคติของต้นไม้แต่ละต้นในป่าที่ห่อหุ้ม / สุ่ม 2) นอกจากนี้ทำไมข้อ จำกัด ของตัวแปรที่มีให้แยกในแต่ละการแยกทำให้มีอคติสูงกว่าในต้นไม้แต่ละต้นในป่าสุ่ม

1
แรงจูงใจเบื้องหลังขั้นตอนวิธีฟอเรสต์แบบสุ่ม
วิธีการที่ฉันคุ้นเคยกับการสร้างฟอเรสต์แบบสุ่มมีดังนี้: (จากhttp://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm ) เพื่อสร้างต้นไม้ในป่าเรา: บูตตัวอย่างขนาด N ที่ N คือขนาดของชุดการฝึกอบรมของเรา ใช้ตัวอย่าง bootstrapped นี้เป็นชุดการฝึกอบรมสำหรับต้นไม้นี้ ที่แต่ละโหนดของต้นไม้สุ่มเลือก m ของคุณสมบัติ M ของเรา เลือกคุณสมบัติที่ดีที่สุดของ m เหล่านี้เพื่อแยก (โดยที่ m เป็นพารามิเตอร์ของป่าสุ่มของเรา) ปลูกต้นไม้แต่ละต้นให้มากที่สุดเท่าที่จะทำได้เช่นไม่มีการตัดแต่งกิ่ง ในขณะที่อัลกอริทึมนี้สมเหตุสมผลในระดับขั้นตอนและให้ผลลัพธ์ที่ดีแน่นอนฉันไม่ชัดเจนว่าแรงจูงใจทางทฤษฎีอยู่เบื้องหลังขั้นตอนที่ 1, 2 และ 3 ใครสามารถอธิบายสิ่งที่กระตุ้นให้คนที่มากับขั้นตอนนี้และทำไมมัน ทำงานได้ดีเหรอ ตัวอย่างเช่น: ทำไมเราต้องดำเนินการขั้นตอนที่ 1 ดูเหมือนว่าเรากำลังทำ bootstrapping เพื่อจุดประสงค์ในการลดความแปรปรวนตามปกติ

1
วิธีการคำนวณคะแนนความมั่นใจในการถดถอย (พร้อมฟอเรสต์แบบสุ่ม / XGBoost) สำหรับการทำนายแต่ละครั้งใน R อย่างไร
มีวิธีในการรับคะแนนความเชื่อมั่น (เราสามารถเรียกได้ว่าเป็นค่าความเชื่อมั่นหรือความน่าจะเป็น) สำหรับแต่ละค่าที่คาดการณ์เมื่อใช้อัลกอริทึมเช่นการสุ่มป่าหรือการไล่ระดับสีมากขึ้น สมมติว่าคะแนนความเชื่อมั่นนี้จะอยู่ในช่วงตั้งแต่ 0 ถึง 1 และแสดงว่าฉันมีความมั่นใจเกี่ยวกับการทำนายโดยเฉพาะอย่างไร จากสิ่งที่ฉันพบในอินเทอร์เน็ตเกี่ยวกับความมั่นใจมักจะวัดจากช่วงเวลา นี่คือตัวอย่างของช่วงความเชื่อมั่นที่คำนวณด้วยconfpredฟังก์ชันจากlavaไลบรารี: library(lava) set.seed(123) n <- 200 x <- seq(0,6,length.out=n) delta <- 3 ss <- exp(-1+1.5*cos((x-delta))) ee <- rnorm(n,sd=ss) y <- (x-delta)+3*cos(x+4.5-delta)+ee d <- data.frame(y=y,x=x) newd <- data.frame(x=seq(0,6,length.out=50)) cc <- confpred(lm(y~poly(x,3),d),data=d,newdata=newd) if (interactive()) { ##' plot(y~x,pch=16,col=lava::Col("black"), ylim=c(-10,15),xlab="X",ylab="Y") with(cc, lava::confband(newd$x, lwr, upr, fit, …

1
ฉันควรเลือกตัวแยกป่าแบบสุ่มหรือตัวแยกประเภทของฟอเรสต์ป่าหรือไม่
ฉันพอดีกับชุดข้อมูลที่มีคลาสเป้าหมายไบนารีโดยฟอเรสต์แบบสุ่ม ในไพ ธ อนฉันสามารถทำได้ทั้งโดย randomforestclassifier หรือ randomforestregressor ฉันสามารถรับการจัดหมวดหมู่ได้โดยตรงจาก randomforestclassifier หรือฉันสามารถเรียกใช้ randomforestregressor ก่อนและรับชุดคะแนนที่ประเมินกลับมา (ค่าต่อเนื่อง) จากนั้นฉันสามารถหาค่า cutoff เพื่อให้ได้คลาสที่ทำนายไว้จากคะแนน ทั้งสองวิธีสามารถบรรลุเป้าหมายเดียวกัน (เช่นทำนายคลาสสำหรับข้อมูลการทดสอบ) นอกจากนี้ฉันสามารถสังเกตได้ว่า randomforestclassifier.predict_proba(X_test)[:,1]) แตกต่างจาก randomforestregressor.predict(X_test) ดังนั้นฉันแค่ต้องการยืนยันว่าทั้งสองวิธีนั้นถูกต้องแล้ววิธีใดดีกว่าในแอปพลิเคชันฟอเรสต์แบบสุ่ม


2
ฟอเรสต์แบบสุ่มในข้อมูลที่จัดกลุ่ม
ฉันใช้ฟอเรสต์แบบสุ่มกับข้อมูลที่จัดกลุ่มมิติสูง (ตัวแปรอินพุตตัวเลข 50 ตัว) ซึ่งมีโครงสร้างแบบลำดับชั้น รวบรวมข้อมูลด้วยการจำลองแบบ 6 ครั้งที่ 30 ตำแหน่งของวัตถุที่แตกต่างกัน 70 รายการทำให้เกิดจุดข้อมูล 12,600 จุดซึ่งไม่เป็นอิสระ ดูเหมือนว่าฟอเรสต์แบบสุ่มมีความเหมาะสมกับข้อมูลมากเกินไปเนื่องจากข้อผิดพลาด oob นั้นมีขนาดเล็กกว่าข้อผิดพลาดที่เราได้รับเมื่อออกจากข้อมูลหนึ่งวัตถุในระหว่างการฝึกอบรมและจากนั้นทำนายผลลัพธ์ของวัตถุด้านซ้าย ยิ่งกว่านั้นฉันมีความสัมพันธ์ที่เหลืออยู่ ฉันคิดว่า overfitting เกิดขึ้นเนื่องจากป่าสุ่มคาดว่าจะมีข้อมูลอิสระ เป็นไปได้ไหมที่จะบอกฟอเรสต์แบบสุ่มเกี่ยวกับโครงสร้างลำดับชั้นของข้อมูล? หรือมีวิธีการรวมหรือการหดตัวที่ทรงพลังอีกวิธีหนึ่งที่สามารถจัดการข้อมูลที่จัดกลุ่มมิติสูงด้วยโครงสร้างการโต้ตอบที่แข็งแกร่งได้หรือไม่ คำใบ้ใด ๆ ที่ฉันสามารถทำได้ดีกว่า?

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