- N +

bootstrap5新特性 bootstrap框架的特點(diǎn)有哪些

bootstrap可視化編輯器怎么用

使用bootstrap可視化編輯器需要先訪(fǎng)問(wèn)相關(guān)網(wǎng)站或下載相關(guān)編輯器軟件,然后按照以下步驟操作:1.選擇需要編輯的Bootstrap模板或下載自己設(shè)計(jì)的模板。2.使用拖拽和編輯等方式,對(duì)模板的各個(gè)組件進(jìn)行修改和調(diào)整。3.通過(guò)實(shí)時(shí)預(yù)覽功能查看編輯后的效果。4.下載或保存編輯后的模板并應(yīng)用到自己的網(wǎng)站或項(xiàng)目中。但需要注意的是,這種可視化編輯器雖然簡(jiǎn)便快捷,但在實(shí)際應(yīng)用中可能會(huì)存在兼容性問(wèn)題,需要在使用過(guò)程中進(jìn)行測(cè)試和調(diào)整。

為什么XGBoost在機(jī)器學(xué)習(xí)競(jìng)賽中表現(xiàn)如此卓越

在此簡(jiǎn)單補(bǔ)充一點(diǎn),希望能給你帶來(lái)幫助:【預(yù)測(cè)領(lǐng)域中的真“絕色”:XGBoost】

全文共3492字,預(yù)計(jì)學(xué)習(xí)時(shí)長(zhǎng)15分鐘

前幾天,Z同學(xué)面試完一臉生無(wú)可戀地問(wèn)我,“你知道XGBoost嗎?”“當(dāng)然知道啊,前幾天不看你還在手推來(lái)著。”“嗯,那你知道XGBoost的中英文全稱(chēng)是啥么?”“ummmmm...X的話(huà)難道是羅馬數(shù)字10?G的話(huà)Gradient梯度,Boost的Boostingtree?所以是第十代梯度提升樹(shù)?”“。。。換你答,你也涼。”

圖片來(lái)源:SOOGIF網(wǎng)站

學(xué)習(xí)算法的最大誤區(qū)還記得那個(gè)吐槽清華某畢業(yè)生連手寫(xiě)紅黑樹(shù)都不會(huì)卻張口就要一萬(wàn)八的HR嗎?

這事曾一度引起網(wǎng)友的廣泛關(guān)注和熱烈討論,不過(guò)圈子不同,影響不同。對(duì)于普通吃瓜群眾,“HR說(shuō)得對(duì),太膨脹。”對(duì)于某些資深程序猿,“我也不會(huì),我月薪30k。”對(duì)于求職小白,“好慌,手寫(xiě)紅黑樹(shù)?面試不會(huì)還要手推SVM、XGBoost吧?溜了溜了,去推泰勒二次展開(kāi)了。”然后,就像我的同學(xué)小Z一樣,只顧著埋頭推導(dǎo)XGBoost的二階泰勒展開(kāi),卻連XGBoost的中英文全稱(chēng)都答不上來(lái)。顧此失彼,乃是兵家大忌。很多時(shí)候,我們?cè)趯W(xué)習(xí)算法時(shí),要么過(guò)于糾結(jié)弄懂原理而忽略了從宏觀(guān)上對(duì)算法有一個(gè)總體的了解和把握,要么是囫圇吞棗一口氣看個(gè)十來(lái)篇博客介紹卻往往還是一知半解不求甚解,可能還會(huì)莫名自我感覺(jué)良好。

基于此,本文就從宏觀(guān)上來(lái)幫大家梳理梳理XGBoost,力求通俗易懂,精準(zhǔn)得當(dāng)。至于算法原理和資源鏈接嘛,請(qǐng)直接拜讀陳天奇博士的論文XGBoost:AScalableTreeBoostingSystem,同時(shí)請(qǐng)參考Github上的開(kāi)源資源進(jìn)行源碼的學(xué)習(xí)和實(shí)戰(zhàn)(https://github.com/dmlc/xgboost)。

什么是XGBoost?

原圖來(lái)自Unsplash(byJaredSubia)

十幾年前,回歸建模是預(yù)測(cè)分析中毫無(wú)爭(zhēng)議的女王。但如今回歸建模的時(shí)代已經(jīng)結(jié)束,XGBoost已被成功加冕!XGBoost的英文全稱(chēng)為ExtremeGradientBoosting,中文可以解釋為極端梯度提升(Extreme,一聽(tīng)就很牛X),它是一種基于決策樹(shù)的集成機(jī)器學(xué)習(xí)算法,采用了梯度提升(GradientBoosting)框架。在預(yù)測(cè)有關(guān)非結(jié)構(gòu)化數(shù)據(jù)(如圖像、文本等)的問(wèn)題時(shí),人工神經(jīng)網(wǎng)絡(luò)往往表現(xiàn)得比其他算法或框架更出色。但在有關(guān)中小型結(jié)構(gòu)/表格數(shù)據(jù)方面,基于決策樹(shù)的算法則是目前為止的最佳方式。請(qǐng)參閱以下圖表,了解幾年來(lái)基于決策樹(shù)的算法演變。

基于決策樹(shù)的算法演變

XGBoost算法最初由華盛頓大學(xué)的一個(gè)研究項(xiàng)目發(fā)展而來(lái)。2016年,陳天奇和卡洛斯·格斯特林在知識(shí)發(fā)現(xiàn)和數(shù)據(jù)挖掘(SIGKDD)會(huì)議上共同發(fā)表了一篇論文,一時(shí)間這轟動(dòng)了整個(gè)機(jī)器學(xué)習(xí)領(lǐng)域。自算法提出以來(lái),它不僅幫助競(jìng)賽者贏得了多場(chǎng)Kaggle競(jìng)賽的勝利,還被幾款尖端行業(yè)的應(yīng)用所采納。在GitHub上,有一群強(qiáng)大的數(shù)據(jù)科學(xué)家們?yōu)閄GBoost開(kāi)源項(xiàng)目提供幫助,約有350名科學(xué)家,總提交次數(shù)約為3,600次。

總體而言,XGBoost具有以下特征:

1.應(yīng)用廣泛:可用于解決回歸、分類(lèi)、排名和用戶(hù)定義的預(yù)測(cè)問(wèn)題。

2.移植性強(qiáng):可在Windows、Linux和OSX上流暢運(yùn)行。

3.語(yǔ)言支持:支持目前主要的全部編程語(yǔ)言,包括C++、Python、R、Java、Scala和Julia。

4.云集成:支持AWS、GCE、Azure和Yarn集群,可以與Flink、Spark和其他云數(shù)據(jù)流系統(tǒng)集成。

通俗理解基于決策樹(shù)的算法演變

照片來(lái)自Unsplash(byrawpixel)

假設(shè)你是一名面試官,正在面試幾位資歷優(yōu)秀的候選人。基于決策樹(shù)的算法演變中的每一環(huán),都可看作面試過(guò)程的一部分。

1.決策樹(shù):每名面試官都有一套面試評(píng)價(jià)標(biāo)準(zhǔn),如教育水平、工作經(jīng)驗(yàn)以及面試表現(xiàn),通過(guò)決策樹(shù)來(lái)預(yù)測(cè)分析,就類(lèi)似于面試官根據(jù)他自己的標(biāo)準(zhǔn)面試候選人。

2.Bagging:假設(shè)現(xiàn)在面試官不止一名,而是一個(gè)面試小組,每名面試官都有一票,Bagging(也稱(chēng)作bootstrapaggregating)意味著通過(guò)民主投票方式,將所有面試官的投票結(jié)果進(jìn)行輸入,從而做出最終決定。

3.隨機(jī)森林:這是一種基于bagging的算法,與bagging的不同在于僅隨機(jī)選擇特征的子集。換句話(huà)說(shuō),每名面試官只會(huì)根據(jù)某些隨機(jī)的資質(zhì)測(cè)試方式(例如,測(cè)試編程技能的技術(shù)面試和非技術(shù)技能評(píng)估的行為面試)來(lái)考查面試者。

4.Boosting:這是一種動(dòng)態(tài)評(píng)估方法,每位面試官根據(jù)前一位面試官的反饋,改變?cè)u(píng)估標(biāo)準(zhǔn)。通過(guò)部署更加動(dòng)態(tài)的評(píng)估流程,“提高”面試流程的效率。

5.GradientBoosting:這是Boosting的一種特殊情況,通過(guò)梯度下降算法將誤差最小化,打個(gè)比方說(shuō),就好比戰(zhàn)略咨詢(xún)公司利用面試案例,剔除不合格的候選人。

6.XGBoost:將XGBoost視為強(qiáng)化版的的gradientboosting,畢竟extreme不是隨隨便便就能“冠”名的。它是軟件和硬件優(yōu)化技術(shù)的完美結(jié)合,可在最短的時(shí)間內(nèi),使用較少的計(jì)算資源,得到較為出色的結(jié)果。

XGBoost為什么這么“絕”?XGBoost之所以能叫XGBoost,因?yàn)樗龎颉敖^”(夠Extreme)。XGBoost和GradientBoostingMachines(GBMs)都是基于決策樹(shù)的集合方法,通過(guò)梯度下降架構(gòu)來(lái)提升較弱學(xué)習(xí)者(通常是CARTs)。通過(guò)系統(tǒng)優(yōu)化和算法增強(qiáng),XGBoost進(jìn)一步改進(jìn)了基礎(chǔ)GBM框架。

XGBoost如何優(yōu)化GBM標(biāo)準(zhǔn)算法

系統(tǒng)優(yōu)化:

1.并行化:

XGBoost通過(guò)多線(xiàn)程實(shí)現(xiàn)了回歸樹(shù)的并行構(gòu)建。由于用于構(gòu)建基礎(chǔ)學(xué)習(xí)者的循環(huán)具有可互換性,因此設(shè)計(jì)并行是可能的。外部循環(huán)枚舉樹(shù)的節(jié)點(diǎn),內(nèi)部循環(huán)則計(jì)算特征。這種循環(huán)嵌套在一定程度上限制了并行化,當(dāng)沒(méi)有完成內(nèi)部循環(huán),外部循環(huán)就無(wú)法啟動(dòng)。因此,為改善運(yùn)行時(shí)間,可通過(guò)對(duì)所有實(shí)例的全局掃描實(shí)現(xiàn)初始化,使用并行線(xiàn)程分類(lèi)來(lái)交換循環(huán)順序。這一交換通過(guò)抵消計(jì)算中的并行化開(kāi)銷(xiāo),提高算法性能。

2.決策樹(shù)剪枝:

當(dāng)剪枝分裂遇到一個(gè)負(fù)損失時(shí),GBM會(huì)停止分裂。因此GBM實(shí)際上是一個(gè)貪心算法(只求達(dá)到局部最優(yōu)解就ok)。但XGBoost會(huì)一直分裂到指定的最大深度(max_depth),然后回過(guò)頭來(lái)剪枝。這種“深度優(yōu)先”方法顯著提高了計(jì)算性能。

3.硬件優(yōu)化:

該算法旨在有效利用硬件資源。通過(guò)在每個(gè)線(xiàn)程中分配內(nèi)部緩沖區(qū),存儲(chǔ)梯度統(tǒng)計(jì)信息,獲取緩存感知。諸如“核外”計(jì)算等進(jìn)一步增強(qiáng)功能可優(yōu)化可用磁盤(pán)空間,同時(shí)處理不適合保存的大數(shù)據(jù)幀。

算法增強(qiáng):

1.正則化:

通過(guò)LASSO(L1)和Ridge(L2)正則化來(lái)對(duì)更為復(fù)雜的模型進(jìn)行懲罰,防止過(guò)度擬合。

2.稀疏性感知:

XGBoost具有稀疏性的離散特征,根據(jù)訓(xùn)練缺失自動(dòng)“學(xué)習(xí)”最佳缺失值,并且可以更有效率地處理數(shù)據(jù)中不同類(lèi)型的稀疏模式。

3.加權(quán)分位數(shù)草圖:

XGBoost采用分布式加權(quán)分位數(shù)草圖算法,有效地找到加權(quán)數(shù)據(jù)集中的最佳分裂點(diǎn)。

4.交叉驗(yàn)證:

在每次迭代時(shí),該算法都有內(nèi)置的交叉驗(yàn)證方法,無(wú)需顯式地對(duì)搜索進(jìn)行編程或明確在指定單次運(yùn)行中所需的增強(qiáng)迭代數(shù)量。有何證據(jù)?我們使用Scikit-learn的“Make_Classification”數(shù)據(jù)包創(chuàng)建了一個(gè)包含20類(lèi)特征(2類(lèi)信息型和2類(lèi)冗余型)的100萬(wàn)個(gè)數(shù)據(jù)點(diǎn)的隨機(jī)樣本。我們測(cè)試了幾種算法,如邏輯回歸、隨機(jī)森林、標(biāo)準(zhǔn)GradientBoosting和XGBoost。

使用SKLearn的Make_Classification數(shù)據(jù)集比較XGBoos與其他機(jī)器學(xué)習(xí)算法如上圖所示,與其他算法相比,XGBoost模型是兼顧預(yù)測(cè)性能和處理時(shí)間的最佳預(yù)測(cè)方式。其他嚴(yán)格的基準(zhǔn)研究也產(chǎn)生相同結(jié)果。正因如此,XGBoost在最近的數(shù)據(jù)科學(xué)競(jìng)賽中被廣泛使用。如有疑問(wèn),請(qǐng)使用XGBoost。——Kaggle網(wǎng)站上AvitoContextAdClickPrediction競(jìng)賽的獲獎(jiǎng)?wù)逴wenZhang

XGBoost的未來(lái)盡管就目前而言,XGBoost的王座還難以撼動(dòng)。但機(jī)器學(xué)習(xí)這一領(lǐng)域的學(xué)者大都比較活躍,而且不畏權(quán)貴,一心戀戰(zhàn)。目前已有幾種據(jù)說(shuō)可以匹敵XGBoost的新算法框架被提出,比如微軟研究中心新發(fā)布的LightGBM框架和YandexTechnology開(kāi)發(fā)的CatBoost框架。

圖片來(lái)源:RSGMedia網(wǎng)站

每當(dāng)NIPS/ICML/KDD等頂級(jí)會(huì)議上一有新的算法被提出,最忙活的可能就是數(shù)據(jù)科學(xué)家了。數(shù)據(jù)科學(xué)家們必須測(cè)試所有可能的數(shù)據(jù)算法,以保證最終選擇的算法是最佳的。

此外,選擇正確的算法還遠(yuǎn)遠(yuǎn)不夠,還必須通過(guò)不斷調(diào)整超參數(shù),正確對(duì)算法數(shù)據(jù)集進(jìn)行配置。

此外,如何選擇最佳的算法還有其他幾個(gè)值得考慮的因素,例如算法的計(jì)算復(fù)雜度、可解釋性以及實(shí)現(xiàn)的難易程度。而這正是機(jī)器學(xué)習(xí)開(kāi)始從科學(xué)走向藝術(shù)的時(shí)刻。歷史的車(chē)輪總是在不斷向前滾動(dòng)。XGBoost的鐵王座早就被許多人覬覦垂涎,開(kāi)發(fā)一個(gè)優(yōu)于XGBoost的更強(qiáng)大的模型框架只是時(shí)間上的早晚問(wèn)題。然而,在強(qiáng)大的挑戰(zhàn)者出現(xiàn)之前,XGBoost將繼續(xù)統(tǒng)治機(jī)器學(xué)習(xí)的世界!

留言點(diǎn)贊關(guān)注

我們一起分享AI學(xué)習(xí)與發(fā)展的干貨

歡迎關(guān)注全平臺(tái)AI垂類(lèi)自媒體“讀芯術(shù)”

bootstrap本地安裝的優(yōu)點(diǎn)有哪些

1.本地安裝的優(yōu)點(diǎn)很多。2.首先,本地安裝可以提高開(kāi)發(fā)效率,因?yàn)椴恍枰看味紡木W(wǎng)絡(luò)上下載bootstrap,而是直接在本地調(diào)用,速度更快。其次,本地安裝可以避免網(wǎng)絡(luò)問(wèn)題,比如斷網(wǎng)或者網(wǎng)速慢等問(wèn)題,保證開(kāi)發(fā)的順利進(jìn)行。最后,本地安裝可以更好地保護(hù)代碼的安全性,因?yàn)椴恍枰獙⒋a上傳到網(wǎng)絡(luò)上,避免了被黑客攻擊或者泄露的風(fēng)險(xiǎn)。3.此外,本地安裝還可以方便地進(jìn)行定制化,因?yàn)榭梢愿鶕?jù)自己的需求選擇需要的組件和樣式,而不需要下載整個(gè)bootstrap庫(kù)。同時(shí),本地安裝也方便了離線(xiàn)開(kāi)發(fā)和調(diào)試,可以在沒(méi)有網(wǎng)絡(luò)的情況下進(jìn)行開(kāi)發(fā)和測(cè)試。

bootstrap table怎樣自適應(yīng)內(nèi)容中的寬度

你好,要讓BootstrapTable自適應(yīng)內(nèi)容中的寬度,我們可以采取以下幾個(gè)步驟。

第一步,使用table-layout:auto樣式屬性,這樣可以根據(jù)列的寬度自動(dòng)設(shè)置每列的寬度。

第二步,可以使用百分比來(lái)設(shè)置每列的寬度,這樣可以自動(dòng)適應(yīng)不同設(shè)備的寬度。

第三步,可以使用data-width屬性來(lái)設(shè)置列的最小寬度,使表格不至于太過(guò)擁擠。最后,如果表格中的內(nèi)容比較長(zhǎng),我們可以使用省略號(hào)來(lái)代表省略部分,這樣能更好地適應(yīng)屏幕寬度。希望對(duì)你有幫助。

框架里的bootstrap怎么調(diào)用

在框架中調(diào)用Bootstrap,通常需要使用框架提供的相關(guān)插件或庫(kù)來(lái)實(shí)現(xiàn)。以下是一些常見(jiàn)的方法:

使用框架提供的Bootstrap插件:許多框架都提供了Bootstrap插件,可以直接在框架中使用。例如,React框架中的ReactBootstrap庫(kù),Vue框架中的VueBootstrap庫(kù)等。

引入Bootstrap文件并使用import引用:許多框架允許將Bootstrap文件作為單獨(dú)的文件引入,并在需要使用Bootstrap的地方使用import語(yǔ)句引用。例如,React框架中的importReactfrom'react';語(yǔ)句可以引入React庫(kù)并在組件中使用。

使用第三方庫(kù)或模塊化組件:如果您需要在框架中使用Bootstrap的某些功能或組件,可以考慮使用第三方庫(kù)或模塊化組件。例如,jQuery插件、Bootstrap.js模塊等。

總之,在框架中調(diào)用Bootstrap,需要先確定框架提供的相關(guān)插件或庫(kù),然后選擇適合的方法進(jìn)行調(diào)用。

bootstrap5改變?cè)匚恢?/h3>

通過(guò)元素的margin進(jìn)行改變。

返回列表
上一篇:
下一篇: