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

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

1
ค่า R-squared เหมาะสมสำหรับการเปรียบเทียบแบบจำลองหรือไม่?
ฉันพยายามระบุโมเดลที่ดีที่สุดเพื่อทำนายราคารถยนต์โดยใช้ราคาและคุณสมบัติที่มีอยู่ในเว็บไซต์โฆษณาที่จัดประเภทรถยนต์ สำหรับเรื่องนี้ฉันใช้โมเดลสองรุ่นจากห้องสมุด scikit-Learn และโมเดลโครงข่ายประสาทจาก pybrain และ neurolab วิธีที่ฉันใช้จนถึงตอนนี้คือการเรียกใช้ข้อมูลจำนวนคงที่ผ่านบางรุ่น (อัลกอริทึมการเรียนรู้ของเครื่อง) และเปรียบเทียบค่าR2R2R^2ที่คำนวณด้วยโมดูลตัวชี้วัดการเรียนรู้แบบ Scikit คือR2R2R^2วิธีการที่ดีเพื่อเปรียบเทียบประสิทธิภาพของรูปแบบที่แตกต่างกันหรือไม่? แม้ว่าฉันจะได้ผลลัพธ์ที่น่าพอใจสำหรับแบบจำลองเช่น Elastic net และ Random forest ฉันได้รับค่าแย่มากR2R2R^2สำหรับแบบจำลองโครงข่ายประสาทเทียมดังนั้นR2R2R^2เป็นวิธีที่เหมาะสมสำหรับการประเมินเครือข่ายประสาท (หรือวิธีที่ไม่ใช่เชิงเส้น)

3
ขั้นตอนวิธีใดที่จำเป็นต้องมีการปรับขนาดคุณลักษณะนอกเหนือจาก SVM
ฉันทำงานกับอัลกอริทึมมากมาย: RandomForest, DecisionTrees, NaiveBayes, SVM (เคอร์เนล = เชิงเส้นและ rbf), KNN, LDA และ XGBoost ทุกคนนั้นค่อนข้างเร็วยกเว้น SVM นั่นคือเมื่อฉันได้รู้ว่ามันต้องมีคุณสมบัติการปรับขนาดเพื่อให้ทำงานได้เร็วขึ้น จากนั้นฉันเริ่มสงสัยว่าฉันควรทำแบบเดียวกันกับอัลกอริทึมอื่นหรือไม่

1
ในฟอเรสต์แบบสุ่ม% IncMSE ที่ใหญ่กว่านั้นจะดีกว่าหรือแย่กว่านั้น?
เมื่อฉันได้สร้าง (ถดถอย) รุ่นป่าสุ่มใน R โทรrf$importanceให้ผมด้วยสองมาตรการสำหรับแต่ละตัวแปรทำนายและ%IncMSE IncNodePurityการตีความตัวแปรทำนายที่มี%IncMSEค่าน้อยกว่าสำคัญกว่าตัวแปรพยากรณ์ที่มี%IncMSEค่ามากกว่าหรือไม่ เกี่ยวกับเพื่อIncNodePurity?

5
สำหรับการจำแนกประเภทด้วยป่าสุ่มใน R เราควรปรับขนาดคลาสที่ไม่สมดุลได้อย่างไร
ฉันกำลังสำรวจวิธีการจำแนกประเภทที่แตกต่างกันสำหรับโครงการที่ฉันกำลังดำเนินการอยู่และสนใจลองใช้การสุ่มป่า ฉันพยายามที่จะให้การศึกษาตัวเองในขณะที่ฉันไปตามและจะขอบคุณความช่วยเหลือจากชุมชน CV ฉันแบ่งข้อมูลของฉันออกเป็นชุดฝึกอบรม / ทดสอบ จากการทดลองกับป่าสุ่มใน R (โดยใช้แพ็คเกจแบบสุ่มป่าไม้) ฉันมีปัญหากับอัตราการจำแนกผิดพลาดสูงสำหรับชั้นเรียนขนาดเล็กของฉัน ฉันได้อ่านบทความนี้เกี่ยวกับประสิทธิภาพของป่าสุ่มบนข้อมูลที่ไม่สมดุลและผู้เขียนเสนอวิธีการสองวิธีในการจัดการกับความไม่สมดุลของระดับเมื่อใช้ป่าสุ่ม 1. ป่าไม้แบบถ่วงน้ำหนัก 2. ป่าไม้แบบสมดุล แพคเกจ R ไม่อนุญาตให้มีน้ำหนักของคลาส (จากฟอรัมช่วยเหลือ R ฉันได้อ่านพารามิเตอร์ classwt ทำงานไม่ถูกต้องและกำหนดเวลาเป็นการแก้ไขข้อบกพร่องในอนาคต) ดังนั้นฉันจึงเหลือตัวเลือก 2 ฉันสามารถระบุได้ จำนวนวัตถุที่สุ่มตัวอย่างจากแต่ละคลาสสำหรับการวนซ้ำแต่ละครั้งของฟอเรสต์แบบสุ่ม ฉันรู้สึกไม่สบายใจเกี่ยวกับการตั้งค่าขนาดตัวอย่างที่เท่ากันสำหรับป่าแบบสุ่มเนื่องจากฉันรู้สึกว่าฉันจะสูญเสียข้อมูลมากเกินไปเกี่ยวกับชั้นเรียนขนาดใหญ่ที่นำไปสู่ประสิทธิภาพที่ไม่ดีกับข้อมูลในอนาคต อัตราการจำแนกประเภทเมื่อลดขนาดกลุ่มที่ใหญ่กว่าได้แสดงให้เห็นว่าดีขึ้น แต่ฉันสงสัยว่ามีวิธีอื่นในการจัดการกับขนาดชั้นเรียนที่ไม่สมดุลในป่าสุ่มหรือไม่

2
ความสำคัญของคุณลักษณะด้วยตัวแปรจำลอง
ฉันพยายามที่จะเข้าใจว่าฉันจะได้รับคุณลักษณะที่สำคัญของตัวแปรเด็ดขาดที่ถูกแบ่งย่อยเป็นตัวแปรจำลอง ฉันใช้ scikit เรียนรู้ซึ่งไม่ได้จัดการตัวแปรเด็ดขาดสำหรับคุณวิธี R หรือ h2o ถ้าฉันแบ่งตัวแปรเด็ดขาดลงเป็นตัวแปรดัมมี่ฉันจะได้รับคุณลักษณะที่แยกต่างหากต่อคลาสในตัวแปรนั้น คำถามของฉันคือมันเหมาะสมหรือไม่ที่จะรวมตัวกันของตัวแปรดัมมีความสำคัญเป็นค่าที่สำคัญสำหรับตัวแปรเด็ดขาดโดยการรวมเข้าด้วยกัน? จากหน้า 368 ขององค์ประกอบของการเรียนรู้ทางสถิติ: ความสำคัญของความสัมพันธ์กำลังสองของตัวแปรคือผลรวมของการปรับปรุงยกกำลังสองดังกล่าวสำหรับโหนดภายในทั้งหมดที่ถูกเลือกให้เป็นตัวแปรการแยกXℓXℓX_{ℓ} สิ่งนี้ทำให้ฉันคิดว่าเนื่องจากค่าความสำคัญถูกสร้างขึ้นแล้วโดยการรวมตัวชี้วัดที่แต่ละโหนดที่เลือกตัวแปรฉันควรจะสามารถรวมค่าความสำคัญของตัวแปรของตัวแปรจำลองเพื่อ "กู้คืน" ความสำคัญสำหรับตัวแปรหมวดหมู่ แน่นอนฉันไม่คาดหวังว่ามันจะถูกต้อง แต่ค่าเหล่านี้เป็นค่าที่แน่นอนจริง ๆ อยู่แล้วตั้งแต่พวกเขาพบผ่านกระบวนการสุ่ม ฉันได้เขียนโค้ดไพ ธ อนต่อไปนี้ (เป็นภาษาจูปีเตอร์) เป็นการสอบสวน: import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import animation, rc from sklearn.datasets import load_diabetes from sklearn.ensemble import RandomForestClassifier …

2
ป่าสุ่มที่มีผลผลิตหลายรายการจะเป็นไปได้ / ในทางปฏิบัติหรือไม่?
ป่าสุ่ม (RFs) เป็นการสร้างแบบจำลองข้อมูลการแข่งขัน / วิธีการขุด RF model มีหนึ่งเอาต์พุต - ตัวแปรเอาต์พุต / การทำนาย วิธีการที่ไร้เดียงสาในการสร้างแบบจำลองเอาต์พุตจำนวนมากที่มี RFs คือการสร้าง RF สำหรับตัวแปรเอาต์พุตแต่ละตัว ดังนั้นเราจึงมีโมเดลอิสระ N และที่ใดที่มีความสัมพันธ์ระหว่างตัวแปรเอาต์พุตเราจะมีโครงสร้างโมเดลซ้ำซ้อน / ซ้ำกัน นี่อาจสิ้นเปลืองอย่างมากแน่นอน นอกจากนี้ในฐานะที่เป็นกฎทั่วไปมากขึ้นตัวแปรรูปแบบหมายถึงรูปแบบ overfit มากขึ้น (การวางหลักเกณฑ์ทั่วไปน้อยกว่า) ไม่แน่ใจว่าสิ่งนี้ใช้ที่นี่ แต่อาจเป็นไปได้ โดยหลักการแล้วเราอาจมี RF ที่มีเอาต์พุตหลายตัว ตัวแปรการทำนายตอนนี้เป็นเวกเตอร์ (n-tuple) โหนดการตัดสินใจในต้นไม้การตัดสินใจแต่ละชุดจะแยกชุดของเวกเตอร์เป้าหมาย / การทำนายโดยใช้เวกเตอร์จุดเริ่มต้นฉันคิดว่าเกณฑ์นี้ถูกนำมาใช้เป็นระนาบในพื้นที่ n- มิติดังนั้นเราจึงสามารถกำหนดด้านใดของเกณฑ์ เวกเตอร์เป้าหมายแต่ละตัวเปิดอยู่ ค่าการทำนายที่เหมาะสมที่สุดสำหรับแต่ละด้านของการแยกการตัดสินใจคือค่าเฉลี่ย (centroid) ที่คำนวณสำหรับเวกเตอร์ในแต่ละด้าน การค้นหาจุดแยกที่เหมาะสมที่สุดเมื่อทำงานกับตัวแปรเดี่ยวนั้นมีความสำคัญและรวดเร็ว / มีประสิทธิภาพในการคำนวณ สำหรับ n-tuple เราไม่สามารถหาการแยกที่ดีที่สุด (หรืออย่างน้อยก็กลายเป็น …

2
การเลือกคุณสมบัติพร้อมป่าสุ่ม
ฉันมีชุดข้อมูลที่มีตัวแปรทางการเงินเป็นส่วนใหญ่ (คุณสมบัติ 120 ตัวอย่าง 4k) ซึ่งส่วนใหญ่มีความสัมพันธ์สูงและมีเสียงดังมาก (ตัวชี้วัดทางเทคนิคเป็นต้น) ดังนั้นฉันต้องการเลือกสูงสุด 20-30 สำหรับใช้ในภายหลังกับการฝึกอบรมแบบจำลอง - เพิ่ม / ลด) ฉันกำลังคิดเกี่ยวกับการใช้ฟอเรสต์แบบสุ่มเพื่อจัดอันดับคุณลักษณะ มันเป็นความคิดที่ดีไหมที่จะใช้มันซ้ำ ๆ ? ตัวอย่างเช่นสมมติว่าในรอบแรกฉันลดระดับที่แย่ที่สุด 20% ที่สองเช่นกันไปเรื่อย ๆ จนกว่าฉันจะได้รับคุณสมบัติตามที่ต้องการ ฉันควรใช้การตรวจสอบข้ามกับ RF หรือไม่ (เป็นเรื่องง่ายสำหรับฉันที่จะไม่ใช้ CV เพราะมันเป็นสิ่งที่ RF ทำอยู่แล้ว) นอกจากนี้ถ้าฉันใช้ฟอเรสต์แบบสุ่มฉันควรใช้มันเป็นตัวแยกประเภทสำหรับไบนารี่หรือรีจิสเตอร์สำหรับการเพิ่ม / ลดจริง ๆ เพื่อรับการนำเข้าคุณลักษณะ? ยังไงก็ตามแบบจำลองที่ฉันต้องการลองหลังจากการเลือกคุณสมบัติคือ: SVM, ตาข่ายประสาท, การถดถอยแบบถ่วงน้ำหนักในพื้นที่และฟอเรสต์แบบสุ่ม ฉันทำงานเป็นหลักใน Python

2
เครื่องเพิ่มระดับความลาดชันมีเงื่อนไขใดที่มีประสิทธิภาพเหนือกว่าป่าสุ่ม
เครื่องจักรเพิ่มระดับความลาดชันของ Friedmanสามารถทำงานได้ดีกว่าป่าสุ่มของ Breimanหรือไม่? ถ้าเป็นเช่นนั้นเงื่อนไขหรือชุดข้อมูลใดที่สามารถทำให้ gbm ดีขึ้นได้?

4
ความแม่นยำการจำแนกต่ำจะทำอย่างไรต่อไป
ดังนั้นฉันเป็นมือใหม่ในสาขา ML และฉันพยายามจัดหมวดหมู่ เป้าหมายของฉันคือการทำนายผลของการแข่งขันกีฬา ฉันรวบรวมข้อมูลทางประวัติศาสตร์บางอย่างแล้วและตอนนี้พยายามฝึกฝนตัวจําแนก ฉันมีตัวอย่างประมาณ 1200 ตัวอย่าง 0.2 ของพวกเขาแยกออกเพื่อวัตถุประสงค์ในการทดสอบและอื่น ๆ ที่ฉันใส่ลงในการค้นหากริด ฉันได้ลอง SVM ด้วยเมล็ดแบบเชิงเส้น rbf และโพลิโนมินัลและป่าสุ่มไปแล้ว น่าเสียดายที่ฉันไม่สามารถรับความแม่นยำมากกว่า 0.5 ได้อย่างมีนัยสำคัญ (เช่นเดียวกับการสุ่มเลือกชั้นเรียน) หมายความว่าฉันไม่สามารถคาดการณ์ผลลัพธ์ของเหตุการณ์ที่ซับซ้อนเช่นนี้ได้หรือไม่ หรือฉันสามารถรับความแม่นยำอย่างน้อย 0.7-0.8 ถ้าเป็นไปได้แล้วฉันจะดูอะไรต่อไป รับข้อมูลเพิ่มเติมหรือไม่ (ฉันสามารถขยายชุดข้อมูลได้สูงสุด 5 ครั้ง) ลองตัวแยกประเภทอื่นหรือไม่ (การถดถอยโลจิสติก, kNN, ฯลฯ ) ประเมินชุดคุณสมบัติของฉันอีกครั้ง? มี ML-tools ใดที่ต้องวิเคราะห์ซึ่งคุณสมบัติใดที่เหมาะสมและไม่ใช้ บางทีฉันควรลดชุดคุณลักษณะ (ปัจจุบันฉันมีคุณสมบัติ 12 อย่าง) หรือไม่

1
แพ็คเกจ R สำหรับป่าสุ่มถ่วงน้ำหนัก ตัวเลือก classwt?
ฉันพยายามใช้ Random Forest เพื่อทำนายผลลัพธ์ของชุดข้อมูลที่ไม่สมดุลอย่างยิ่ง (อัตราของชนกลุ่มน้อยอยู่ที่ประมาณ 1% หรือน้อยกว่านั้น) เนื่องจากอัลกอริทึม Random Forest แบบดั้งเดิมลดอัตราข้อผิดพลาดโดยรวมให้น้อยที่สุดแทนที่จะให้ความสนใจเป็นพิเศษกับคลาสของชนกลุ่มน้อยจึงไม่สามารถใช้กับข้อมูลที่ไม่สมดุลได้โดยตรง ดังนั้นฉันต้องการกำหนดค่าใช้จ่ายสูงให้กับการจำแนกประเภทชนกลุ่มน้อย (การเรียนรู้ที่อ่อนไหวด้านต้นทุน) ผมอ่านหลายแหล่งที่มาว่าเราสามารถใช้ตัวเลือกclasswtของrandomForestใน R แต่ผมไม่ทราบวิธีการที่จะใช้นี้ และเรามีทางเลือกอื่นให้กับrandomForestfuntion หรือไม่?
16 r  random-forest 

2
ฟอเรสต์แบบสุ่มจำเป็นต้องปรับขนาดตัวแปรอินพุตหรือให้อยู่กึ่งกลางหรือไม่
ตัวแปรอินพุตของฉันมีมิติที่แตกต่างกัน ตัวแปรบางตัวเป็นทศนิยมในขณะที่บางส่วนมีหลายร้อย จำเป็นหรือไม่ที่จะจัดกึ่งกลาง (ลบค่าเฉลี่ย) หรือมาตราส่วน (หารด้วยส่วนเบี่ยงเบนมาตรฐาน) ตัวแปรอินพุตเหล่านี้เพื่อทำให้ข้อมูลไม่มีมิติเมื่อใช้ฟอเรสต์แบบสุ่ม

3
`คาดการณ์สุ่มป่าเถื่อน 'ประเมินความน่าจะเป็นของคลาสได้อย่างไร
วิธีการที่ไม่randomForestน่าจะเป็นระดับประมาณการแพคเกจเมื่อฉันใช้predict(model, data, type = "prob")? ฉันใช้rangerสำหรับฝึกป่าสุ่มโดยใช้probability = Tอาร์กิวเมนต์เพื่อทำนายความน่าจะเป็น rangerพูดในเอกสารว่า: ปลูกป่าน่าจะเป็นเหมือนใน Malley และคณะ (2012) ฉันจำลองข้อมูลและลองทั้งแพ็คเกจและได้ผลลัพธ์ที่แตกต่างกันมาก (ดูรหัสด้านล่าง) ดังนั้นฉันรู้ว่ามันใช้เทคนิคต่าง ๆ (จากนั้นแรนเจอร์) เพื่อประเมินความน่าจะเป็น แต่อันไหน simulate_data <- function(n){ X <- data.frame(matrix(runif(n*10), ncol = 10)) Y <- data.frame(Y = rbinom(n, size = 1, prob = apply(X, 1, sum) %>% pnorm(mean = 5) ) %>% as.factor() ) …

1
วิธีการเปรียบเทียบแบบใดที่จะใช้สำหรับโมเดล lmer: lsmeans หรือ glht
ฉันกำลังวิเคราะห์ชุดข้อมูลโดยใช้โมเดลเอฟเฟกต์ผสมกับเอฟเฟ็กต์คงที่หนึ่งรายการ (เงื่อนไข) และเอฟเฟกต์แบบสุ่มสองรายการ (ผู้เข้าร่วมเนื่องจากการออกแบบภายในและคู่ของเรื่อง) รูปแบบที่ถูกสร้างขึ้นด้วยแพคเกจ:lme4exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp) ต่อไปฉันทำการทดสอบอัตราส่วนความน่าจะเป็นของโมเดลนี้เทียบกับโมเดลโดยไม่มีผลกระทบคงที่ (เงื่อนไข) และมีความแตกต่างอย่างมีนัยสำคัญ ชุดข้อมูลของฉันมี 3 เงื่อนไขดังนั้นฉันจึงต้องการเปรียบเทียบหลายรายการ แต่ฉันไม่แน่ใจว่าจะใช้วิธีใด ฉันพบคำถามที่คล้ายกันจำนวนหนึ่งใน CrossValidated และฟอรัมอื่น ๆ แต่ฉันยังสับสนอยู่ จากสิ่งที่ฉันเห็นผู้คนแนะนำให้ใช้ 1.lsmeansแพคเกจ - lsmeans(exp.model,pairwise~condition)ซึ่งทำให้ผมส่งออกต่อไปนี้: condition lsmean SE df lower.CL upper.CL Condition1 0.6538060 0.03272705 47.98 0.5880030 0.7196089 Condition2 0.7027413 0.03272705 47.98 0.6369384 0.7685443 Condition3 0.7580522 0.03272705 47.98 0.6922493 0.8238552 Confidence level used: 0.95 $contrasts …

2
ข้อผิดพลาดนอกกระเป๋าทำให้ CV ไม่จำเป็นในป่าสุ่ม?
ฉันค่อนข้างใหม่สำหรับป่าสุ่ม ในอดีตฉันมักจะเปรียบเทียบความถูกต้องของการพอดีกับการทดสอบเทียบกับการพอดีกับรถไฟเพื่อตรวจจับการ overfitting ใด ๆ แต่ฉันเพิ่งอ่านที่นี่ว่า: "ในฟอเรสต์แบบสุ่มไม่จำเป็นต้องมีการตรวจสอบความถูกต้องไขว้หรือชุดการทดสอบแยกต่างหากเพื่อรับการประมาณค่าที่ผิดพลาดของข้อผิดพลาดของชุดการทดสอบ วรรคเล็ก ๆ ข้างต้นสามารถพบได้ภายใต้ออกจากกระเป๋า (OOB) ข้อผิดพลาดประมาณการมาตรา แนวคิดเรื่อง Out of Bag Error นี้ใหม่สำหรับฉันอย่างสมบูรณ์และสิ่งที่สับสนเล็กน้อยคือข้อผิดพลาด OOB ในแบบจำลองของฉันคือ 35% (หรือความแม่นยำ 65%) แต่ถ้าฉันใช้การตรวจสอบความถูกต้องข้ามกับข้อมูลของฉัน วิธีการ) และเปรียบเทียบทั้งพอดีกับการทดสอบเทียบกับพอดีกับรถไฟฉันได้รับความแม่นยำ 65% และความแม่นยำ 96% ตามลำดับ จากประสบการณ์ของฉันนี่ถือเป็นการ overfitting แต่ OOB ถือข้อผิดพลาด 35% เช่นเดียวกับข้อผิดพลาดการทดสอบพอดีของฉัน ฉันกำลัง overfitting หรือไม่ ฉันควรจะใช้การตรวจสอบความถูกต้องข้ามเพื่อตรวจสอบการกำหนดราคาสูงเกินไปในป่าที่มีการสุ่มหรือไม่? ในระยะสั้นฉันไม่แน่ใจว่าฉันควรเชื่อถือ OOB เพื่อรับข้อผิดพลาดที่เป็นกลางของข้อผิดพลาดของชุดทดสอบเมื่อฉันพอดีกับรถไฟแสดงให้เห็นว่าฉันกำลังล้น!

1
ป่าสุ่มของ Breiman ใช้ข้อมูลที่ได้รับหรือดัชนี Gini หรือไม่
ฉันต้องการทราบว่าป่าสุ่มของ Breiman (ป่าสุ่มในแพคเกจ R สุ่มป่า) ใช้เป็นเกณฑ์แยก (เกณฑ์สำหรับการเลือกคุณลักษณะ) ได้รับข้อมูลหรือดัชนี Gini หรือไม่ ฉันพยายามค้นหามันในhttp://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htmและในเอกสารสำหรับแพ็คเกจ randomForest ใน R แต่สิ่งเดียวที่ฉันพบคือดัชนี Gini สามารถใช้สำหรับ การคำนวณความสำคัญของตัวแปร

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