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

5
GBM กับ XGBOOST ความแตกต่างที่สำคัญ?
ฉันพยายามเข้าใจถึงความแตกต่างที่สำคัญระหว่าง GBM และ XGBOOST ฉันพยายาม google แต่ไม่พบคำตอบที่ดีใด ๆ ที่อธิบายความแตกต่างระหว่างอัลกอริธึมทั้งสองและทำไม xgboost ทำงานได้ดีกว่า GBM เกือบทุกครั้ง อะไรทำให้ XGBOOST เร็วขึ้น?

1
ทำไม xgboost จึงเร็วกว่า GradientBoostingClassifier ของ sklearn มาก?
ฉันพยายามที่จะฝึกอบรมการยกระดับความลาดชันของตัวอย่างมากกว่า 50k ด้วยคุณสมบัติตัวเลข 100 ตัว XGBClassifierจัดการ 500 ต้นภายใน 43 วินาทีบนเครื่องของฉันในขณะที่GradientBoostingClassifierจัดการเพียง 10 ต้น (!) ใน 1 นาทีและ 2 วินาที :( ฉันไม่ได้พยายามที่จะเติบโต 500 ต้นเพราะจะใช้เวลาหลายชั่วโมงฉันใช้แบบเดียวกันlearning_rateและmax_depthการตั้งค่า ดูด้านล่าง อะไรทำให้ XGBoost เร็วขึ้นมาก? มันใช้การปรับแต่งแบบใหม่เพื่อส่งเสริมการไล่ระดับสีที่พวก sklearn ไม่รู้หรือไม่? หรือว่า "ตัดมุม" และปลูกต้นไม้ที่ตื้นขึ้น? ป.ล. ฉันตระหนักถึงการสนทนานี้: https://www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-surveyแต่ไม่สามารถหาคำตอบได้ที่นั่น ... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, …
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

4
XGBoost จัดการกับความหลากหลายด้วยตัวเองหรือไม่?
ขณะนี้ฉันกำลังใช้ XGBoost กับชุดข้อมูลที่มีคุณสมบัติ 21 รายการ (เลือกจากรายการของคุณสมบัติ 150 รายการ) จากนั้นจึงใช้รหัสร้อนเพื่อรับคุณสมบัติ ~ 98 ไม่กี่ของคุณสมบัติเหล่านี้ 98 จะค่อนข้างซ้ำซ้อนตัวอย่างเช่น: ตัวแปร (คุณลักษณะ) กยังปรากฏเป็นและ{A}AAABABA\frac{B}{A}CACA\frac{C}{A} คำถามของฉันคือ: ต้นไม้ตัดสินใจที่ได้รับการส่งเสริมจะจัดการกับความสัมพันธ์แบบหลายทางได้อย่างไร( ถ้า? ) การมีอยู่ของความหลากสีจะส่งผลกระทบต่อการทำนายอย่างไรถ้ามันไม่ได้ถูกจัดการ? จากสิ่งที่ฉันเข้าใจรูปแบบคือการเรียนรู้มากกว่าหนึ่งต้นและการทำนายขั้นสุดท้ายขึ้นอยู่กับบางสิ่งบางอย่างเช่น "ผลรวมถ่วงน้ำหนัก" ของการทำนายรายบุคคล ดังนั้นหากสิ่งนี้ถูกต้องต้นไม้การตัดสินใจที่ถูกกระตุ้นควรจะสามารถจัดการการพึ่งพาระหว่างตัวแปรได้ นอกจากนี้ในบันทึกที่เกี่ยวข้อง - วัตถุที่มีความสำคัญของตัวแปรใน XGBoost ทำงานอย่างไร

2
การจัดอันดับแบบคู่ใน xgBoost เป็นอย่างไร
เท่าที่ฉันรู้ในการฝึกอบรมการเรียนรู้เพื่อจัดอันดับแบบจำลองคุณต้องมีสามสิ่งในชุดข้อมูล: ป้ายกำกับหรือความเกี่ยวข้อง รหัสกลุ่มหรือแบบสอบถาม คุณสมบัติเวกเตอร์ ตัวอย่างเช่นชุดข้อมูล Microsoft Learning to Rankใช้รูปแบบนี้ (ป้ายกำกับ, id กลุ่มและคุณสมบัติ) 1 qid:10 1:0.031310 2:0.666667 ... 0 qid:10 1:0.078682 2:0.166667 ... ฉันลอง xgBoost ที่ใช้ GBM เพื่อทำการจัดอันดับแบบคู่ พวกเขามีตัวอย่างสำหรับงานการจัดอันดับที่ใช้โปรแกรม C ++ เพื่อเรียนรู้เกี่ยวกับชุดข้อมูล Microsoft ดังกล่าวข้างต้น อย่างไรก็ตามฉันใช้ตัวห่องูหลามและไม่สามารถหาตำแหน่งที่ฉันสามารถป้อนรหัสกลุ่ม ( qidด้านบน) ฉันสามารถฝึกนางแบบโดยใช้คุณสมบัติและคะแนนความเกี่ยวข้อง แต่ฉันรู้สึกว่าฉันขาดอะไรไป นี่คือสคริปต์ตัวอย่าง gbm = XGBRegressor(objective="rank:pairwise") X = np.random.normal(0, 1, 1000).reshape(100, 10) y = …
14 search  ranking  xgboost  gbm 

3
ต้องการความช่วยเหลือในการทำความเข้าใจข้อเสนอจุดแยกโดยประมาณของ xgboost
พื้นหลัง: ในxgboost ย้ำพยายามเพื่อให้พอดีกับต้นไม้ฉเสื้อมากกว่าทุกnตัวอย่างซึ่งช่วยลดการดังต่อไปนี้วัตถุประสงค์:tttftftf_tnnn ∑i=1n[gift(xi)+12hif2t(xi)]∑i=1n[gift(xi)+12hift2(xi)]\sum_{i=1}^n[g_if_t(x_i) + \frac{1}{2}h_if_t^2(x_i)] ที่เป็นลำดับแรกและอนุพันธ์ลำดับที่สองในช่วงก่อนหน้านี้ประมาณค่าที่ดีที่สุดของเราY (จากการย้ำT - 1 ):gi,higi,hig_i, h_iy^y^\hat{y}t−1t−1t-1 gi=dy^l(yi,y^)gi=dy^l(yi,y^)g_i=d_{\hat{y}}l(y_i, \hat{y}) hi=d2y^l(yi,y^)hi=dy^2l(yi,y^)h_i=d^2_{\hat{y}}l(y_i, \hat{y}) และคือฟังก์ชันการสูญเสียของเราlll คำถาม (ในที่สุด): เมื่อมีการสร้างและเมื่อพิจารณาจากคุณลักษณะเฉพาะkในการแยกเฉพาะที่พวกเขาใช้การแก้ปัญหาต่อไปนี้ในการประเมินผู้สมัครเพียงบางส่วนแยก: พวกเขาจัดเรียงตัวอย่างทั้งหมดของพวกเขาโดยx k , ข้ามรายการที่เรียงลำดับและผลรวมของพวกเขาสองอนุพันธ์ชั่วโมงฉัน พวกเขาคิดว่าเป็นผู้สมัครที่แยกเฉพาะเมื่อรวมการเปลี่ยนแปลงมากกว่าε ทำไมเป็นแบบนั้น ???ftftf_tkkkxkxkx_khihih_iϵϵ\epsilon คำอธิบายที่พวกเขาให้ฉัน: พวกเขาอ้างว่าเราสามารถเขียนสมการก่อนหน้าได้เช่น: ∑i=1n12hi[ft(xi)−gi/hi]2+constant∑i=1n12hi[ft(xi)−gi/hi]2+constant\sum_{i=1}^n\frac{1}{2}h_i[f_t(x_i) - g_i/h_i]^2 + constant และฉันล้มเหลวในการติดตามพีชคณิต - คุณสามารถแสดงให้เห็นว่าทำไมมันเท่ากัน? แล้วพวกเขาก็อ้างว่า "นี่คือการสูญเสียน้ำหนักกำลังสองที่แน่นอนด้วยฉลากและน้ำหนักh i " - คำแถลงที่ฉันเห็นด้วย แต่ฉันไม่เข้าใจว่ามันเกี่ยวข้องกับอัลกอริธึมการสมัครแยกที่พวกเขาใช้อยู่อย่างไร ..gi/higi/higi/hihihih_i ขอขอบคุณและขออภัยถ้ามันยาวเกินไปสำหรับฟอรัมนี้
12 xgboost  gbm 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.