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

อัลกอริทึมการเพิ่มประสิทธิภาพและไลบรารีซอฟต์แวร์ยอดนิยม (ย่อมาจาก "การเพิ่มการไล่ระดับสีมาก") Boosting จะรวมแบบจำลองการคาดการณ์ที่อ่อนแอเข้ากับโมเดลที่คาดเดาได้ยาก

4
วิธีการปรับค่าพารามิเตอร์ไฮเปอร์ของต้น xgboost
ฉันมีข้อมูลที่ไม่สมดุลในชั้นเรียน & ฉันต้องการปรับแต่งพารามิเตอร์หลายมิติของปอยผมที่เพิ่มขึ้นโดยใช้ xgboost คำถาม มีเทียบเท่าของ gridsearchcv หรือ randomsearchcv สำหรับ xgboost? หากไม่ใช่วิธีการที่แนะนำให้ปรับพารามิเตอร์ของ xgboost คืออะไร?

1
ความแตกต่างทางคณิตศาสตร์ระหว่าง GBM, XGBoost, LightGBM, CatBoost?
มีการปรับใช้หลายรุ่นตระกูล GBDT เช่น: GBM XGBoost LightGBM Catboost อะไรคือความแตกต่างทางคณิตศาสตร์ระหว่างการใช้งานที่แตกต่างกันเหล่านี้? Catboost ดูเหมือนว่าจะมีประสิทธิภาพสูงกว่าการใช้งานอื่น ๆ แม้จะใช้เพียงพารามิเตอร์เริ่มต้นตามเครื่องหมายมาตรฐานนี้ แต่ก็ยังช้ามาก ฉันเดาว่า catboost ไม่ได้ใช้ตัวแปร dummified ดังนั้นน้ำหนักที่กำหนดให้กับตัวแปร (หมวดหมู่) แต่ละตัวนั้นมีความสมดุลมากกว่าเมื่อเปรียบเทียบกับการใช้งานอื่น ๆ ดังนั้นตัวแปรที่มีความสำคัญสูงจึงไม่มีน้ำหนักมากกว่าตัวอื่น มันช่วยให้การจัดหมวดหมู่ที่อ่อนแอ (ที่มีความสำคัญน้อย) เข้าไปในต้นไม้บางต้นซึ่งมีประสิทธิภาพที่ดีกว่า นอกจากนั้นฉันไม่มีคำอธิบายเพิ่มเติม
33 boosting  xgboost 

1
ฟังก์ชั่นการสูญเสีย XGBoost ประมาณด้วยการขยายตัวของเทย์เลอร์
ยกตัวอย่างเช่นใช้ฟังก์ชันวัตถุประสงค์ของโมเดล XGBoost ในการวนซ้ำ 'th:tเสื้อt L(t)=∑i=1nℓ(yi,y^(t−1)i+ft(xi))+Ω(ft)L(เสื้อ)=Σผม=1nℓ(Yผม,Y^ผม(เสื้อ-1)+ฉเสื้อ(xผม))+Ω(ฉเสื้อ)\mathcal{L}^{(t)}=\sum_{i=1}^n\ell(y_i,\hat{y}_i^{(t-1)}+f_t(\mathbf{x}_i))+\Omega(f_t) ที่เป็นฟังก์ชั่นการสูญเสียเป็น 'เอาท์พุทต้นไม้ TH และเป็นกู หนึ่งในขั้นตอนสำคัญ (มากมาย) สำหรับการคำนวณที่รวดเร็วคือการประมาณ:ℓℓ\ellftฉเสื้อf_ttเสื้อtΩΩ\Omega L(t)≈∑i=1nℓ(yi,y^(t−1)i)+gtft(xi)+12hif2t(xi)+Ω(ft),L(t)≈∑i=1nℓ(yi,y^i(t−1))+gtft(xi)+12hift2(xi)+Ω(ft),\mathcal{L}^{(t)}\approx \sum_{i=1}^n\ell(y_i,\hat{y}_i^{(t-1)})+g_tf_t(\mathbf{x}_i)+\frac{1}{2}h_if_t^2(\mathbf{x}_i)+\Omega(f_t), โดยที่และเป็นอนุพันธ์อันดับหนึ่งและสองของฟังก์ชันการสูญเสียgigig_ihihih_i สิ่งที่ฉันขอคือข้อโต้แย้งที่น่าเชื่อถือเพื่อทำให้เข้าใจผิดว่าเหตุใดการประมาณข้างต้นจึงทำงาน: 1) XGBoost ที่มีการประมาณด้านบนเปรียบเทียบกับ XGBoost กับฟังก์ชั่นวัตถุประสงค์ได้อย่างไร สิ่งที่น่าสนใจพฤติกรรมที่มีลำดับสูงกว่าจะหายไปในการประมาณ? 2) มันค่อนข้างยากที่จะเห็นภาพ (และขึ้นอยู่กับฟังก์ชั่นการสูญเสีย) แต่ถ้าฟังก์ชั่นการสูญเสียมีองค์ประกอบลูกบาศก์ขนาดใหญ่แล้วการประมาณอาจจะล้มเหลว มันเป็นวิธีการที่ไม่ก่อให้เกิดปัญหาสำหรับ XGBoost?

4
การใช้ scale_pos_weight ที่เหมาะสมใน xgboost สำหรับชุดข้อมูลที่ไม่สมดุลคืออะไร
ฉันมีชุดข้อมูลที่ไม่สมดุลมาก ฉันพยายามทำตามคำแนะนำในการจูนและใช้scale_pos_weightแต่ไม่แน่ใจว่าฉันควรจูนอย่างไร ฉันเห็นได้ว่าRegLossObj.GetGradient: if (info.labels[i] == 1.0f) w *= param_.scale_pos_weight ดังนั้นการไล่ระดับสีของตัวอย่างที่เป็นบวกจะมีอิทธิพลมากกว่า อย่างไรก็ตามตามกระดาษ xgboostสถิติการไล่ระดับสีจะถูกใช้ในเครื่อง = ภายในอินสแตนซ์ของโหนดที่ระบุในต้นไม้เฉพาะ: ภายในบริบทของโหนดเพื่อประเมินการลดการสูญเสียของการแบ่งผู้สมัคร ภายในบริบทของ leaf node เพื่อปรับน้ำหนักให้เหมาะสมกับโหนดนั้น ดังนั้นจึงไม่มีทางรู้ล่วงหน้าว่าอะไรจะดีscale_pos_weight- เป็นจำนวนที่แตกต่างกันมากสำหรับโหนดที่ลงท้ายด้วยอัตราส่วน 1: 100 ระหว่างอินสแตนซ์บวกและลบและสำหรับโหนดที่มีอัตราส่วน 1: 2 คำใบ้ใด ๆ

1
คำอธิบายของ min_child_weight ในอัลกอริทึม xgboost
นิยามของพารามิเตอร์ใน min_child_weight xgboost จะได้รับเป็น: ผลรวมขั้นต่ำของน้ำหนักอินสแตนซ์ (รัฐ) ที่จำเป็นในเด็ก หากขั้นตอนการแบ่งพาร์ติชันเป็นผลให้โหนดใบมีผลรวมของน้ำหนักอินสแตนซ์น้อยกว่า min_child_weight กระบวนการสร้างจะทำให้การแบ่งพาร์ติชันเพิ่มเติม ในโหมดการถดถอยเชิงเส้นสิ่งนี้จะสอดคล้องกับจำนวนอินสแตนซ์ขั้นต่ำที่จำเป็นในแต่ละโหนด ยิ่งอัลกอริธึมมีขนาดใหญ่ขึ้นเท่าใด ฉันได้อ่านสิ่งเล็ก ๆ น้อย ๆ บน xgboost รวมถึงกระดาษต้นฉบับ (ดูสูตร 8 และหนึ่งหลังจากสมการที่ 9) คำถามนี้และสิ่งต่าง ๆ ที่เกี่ยวข้องกับ xgboost ที่ปรากฏในหน้าแรก ๆ ของการค้นหา google ;) โดยพื้นฐานแล้วฉันยังไม่มีความสุขว่าทำไมเราถึงกำหนดข้อ จำกัด เกี่ยวกับผลรวมของรัฐ? ผมไม่คิดว่าเพียงนาทีจากกระดาษเดิมก็คือว่ามันเกี่ยวข้องกับการถ่วงน้ำหนัก quantile ส่วนร่าง (และ reformulation เป็นของสมการการสูญเสีย 3 Squared ถ่วงน้ำหนัก) ซึ่งมีชั่วโมงผมชั่วโมงผมh_iเป็นน้ำหนัก 'ของแต่ละกรณี คำถามเพิ่มเติมเกี่ยวข้องกับสาเหตุที่มันเป็นเพียงจำนวนอินสแตนซ์ในโหมดการถดถอยเชิงเส้น? ฉันเดาว่านี่เกี่ยวข้องกับอนุพันธ์อันดับสองของผลรวมของสมการกำลังสองหรือไม่?

3
XGBoost vs Python Sklearn ทำให้ต้นไม้ดีขึ้น
ฉันพยายามเข้าใจว่า XGBoost ทำงานอย่างไร ฉันเข้าใจอยู่แล้วว่าต้นไม้ที่ถูกไล่ระดับสีนั้นทำงานบน Python sklearn ได้อย่างไร สิ่งที่ไม่ชัดเจนสำหรับฉันคือถ้า XGBoost ทำงานในลักษณะเดียวกัน แต่เร็วกว่าหรือหากมีความแตกต่างพื้นฐานระหว่างมันกับการใช้งานของหลาม เมื่อฉันอ่านเอกสารนี้ http://learningsys.org/papers/LearningSys_2015_paper_32.pdf ฉันดูเหมือนว่าผลลัพธ์สุดท้ายที่ออกมาจาก XGboost จะเหมือนกับในการใช้งาน Python แต่ความแตกต่างที่สำคัญคือวิธีที่ XGboost พบว่าการแยกที่ดีที่สุดที่จะทำในต้นไม้การถดถอยแต่ละต้น โดยพื้นฐานแล้ว XGBoost ให้ผลลัพธ์เหมือนกัน แต่เร็วกว่า ถูกต้องหรือมีอย่างอื่นที่ฉันหายไปหรือไม่

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

1
การส่งเสริมและห่อต้นไม้ (XGBoost, LightGBM)
มีโพสต์บล็อกมากมายวิดีโอ YouTube และอื่น ๆ เกี่ยวกับแนวคิดของการห่อ หรือ เพิ่มต้นไม้ ความเข้าใจทั่วไปของฉันคือรหัสหลอกสำหรับแต่ละคือ: บรรจุถุง: นำตัวอย่างแบบสุ่มจำนวน N% ของตัวอย่างและ y% ของฟีเจอร์ ปรับโมเดลของคุณ (เช่นแผนผังการตัดสินใจ) ในแต่ละ N ทำนายผลด้วยแต่ละ N เฉลี่ยการคาดการณ์เพื่อให้ได้คำทำนายสุดท้าย การส่งเสริมการ: ปรับโมเดลของคุณ (เช่นแผนผังการตัดสินใจ) กับข้อมูล รับส่วนที่เหลือ พอดีกับโมเดลของคุณกับของเหลือ ไปที่ 2 เพื่อเพิ่มรอบ N การทำนายขั้นสุดท้ายคือผลรวมถ่วงน้ำหนักของเครื่องทำนายลำดับ ฉันจะขอชี้แจงความเข้าใจของฉันด้านบน แต่คำถามที่ฉันตั้งใจไว้มีดังนี้: ทั้ง XGBoost และ LightGBM มี params ที่อนุญาตให้ใส่ถุงได้ แอปพลิเคชันไม่ได้บรรจุถุงหรือเพิ่มประสิทธิภาพ (ซึ่งเป็นสิ่งที่ทุกโพสต์ในบล็อกพูดถึง) แต่เป็นการบรรจุและเพิ่มประสิทธิภาพ รหัสหลอกสำหรับสถานที่และเวลาที่รวมถุงและการเพิ่มกำลังเกิดขึ้นคืออะไร? ฉันคาดว่ามันจะเป็น "ต้นไม้ที่ถูกกระตุ้นให้มีต้นไม้เพิ่มขึ้น" แต่ดูเหมือนว่ามันจะเป็น ความแตกต่างดูเหมือนมาก ต้นไม้ที่ได้รับการเสริมถุง: …

4
เราควรกังวลเกี่ยวกับความหลากหลายเชิงเส้นเมื่อใช้โมเดลที่ไม่ใช่เชิงเส้นหรือไม่?
สมมติว่าเรามีปัญหาการจำแนกเลขฐานสองที่มีคุณสมบัติการจัดหมวดหมู่เป็นส่วนใหญ่ เราใช้โมเดลที่ไม่ใช่เชิงเส้น (เช่น XGBoost หรือ Random Forests) เพื่อเรียนรู้ หนึ่งควรยังคงกังวลเกี่ยวกับความหลากหลาย collinearity? ทำไม? หากคำตอบข้างต้นเป็นจริงเราจะต่อสู้กับมันอย่างไรเมื่อพิจารณาว่ามีการใช้โมเดลที่ไม่ใช่เชิงเส้นประเภทนี้อย่างไร

1
XGBoost สามารถจัดการข้อมูลที่ขาดหายไปในขั้นตอนการพยากรณ์
เมื่อเร็ว ๆ นี้ฉันได้ตรวจสอบอัลกอริทึม XGBoost และฉันสังเกตเห็นว่าอัลกอริทึมนี้สามารถจัดการข้อมูลที่ขาดหายไป (โดยไม่ต้องใส่ข้อมูล) ในขั้นตอนการฝึกอบรม ฉันสงสัยว่า XGboost สามารถจัดการข้อมูลที่หายไป (โดยไม่ต้องใส่ข้อมูล) เมื่อใช้สำหรับการคาดการณ์การสังเกตใหม่หรือมีความจำเป็นในการใส่ข้อมูลที่ขาดหายไป ขอบคุณล่วงหน้า.

1
ผู้เรียนพื้นฐานเชิงเส้นทำงานอย่างไรในการส่งเสริม และมันทำงานอย่างไรในห้องสมุด xgboost
ฉันรู้วิธีการใช้ฟังก์ชันวัตถุประสงค์เชิงเส้นตรงและการเพิ่มประสิทธิภาพเชิงเส้นใน XGBoost คำถามที่เป็นรูปธรรมของฉันคือ: เมื่ออัลกอริธึมที่เหมาะกับส่วนที่เหลือ (หรือการไล่ระดับสีลบ) คือการใช้คุณลักษณะหนึ่งอย่างในแต่ละขั้นตอน (เช่นรุ่น univariate) หรือคุณลักษณะทั้งหมด การอ้างอิงใด ๆ กับเอกสารเกี่ยวกับการเพิ่มประสิทธิภาพเชิงเส้นใน XGBoost จะได้รับการชื่นชม แก้ไข: เพิ่มการเชิงเส้นสามารถนำมาใช้ใน XGBoost โดยการตั้งค่าพารามิเตอร์ 'บูสเตอร์' เป็น 'gblinear' ดู: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/สำหรับข้อมูลที่เป็นประโยชน์เกี่ยวกับการเพิ่มประสิทธิภาพเชิงเส้น โปรดทราบว่าฉันไม่ได้พูดเกี่ยวกับฟังก์ชั่นวัตถุประสงค์ (ซึ่งอาจเป็นเชิงเส้น) แต่เกี่ยวกับการเพิ่มพวกเขาเอง ขอบคุณ!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.