把腿张开老子臊烂你多p视频软件,free性国产高清videos,av在线亚洲男人的天堂,hdsexvideos中国少妇,俄罗斯真人性做爰

會(huì)員中心 |  會(huì)員注冊(cè)  |  兼職信息發(fā)布    瀏覽手機(jī)版!    超值滿減    人工翻譯    英語(yǔ)IT服務(wù) 貧困兒童資助 | 留言板 | 設(shè)為首頁(yè) | 加入收藏  繁體中文
當(dāng)前位置:首頁(yè) > 機(jī)翻技術(shù) > 識(shí)別技術(shù) > 正文

示例:在一個(gè)難數(shù)據(jù)集上的AdaBoost應(yīng)用

發(fā)布時(shí)間: 2023-03-14 09:28:13   作者:etogether.net   來源: 網(wǎng)絡(luò)   瀏覽次數(shù):
摘要: 我們擁有兩個(gè)數(shù)據(jù)集,在不采用隨機(jī)抽樣的方法下,我們就會(huì)對(duì)AdaBoost和Logistic回歸的結(jié)果進(jìn)行完全對(duì)等的比較。


示例:在一個(gè)難數(shù)據(jù)集上的AdaBoost應(yīng)用


(1) 收集數(shù)據(jù):提供的文本文件。

(2) 準(zhǔn)備數(shù)據(jù):確保類別標(biāo)簽是+1和-1而非1和0。

(3) 分析數(shù)據(jù):手工檢查數(shù)據(jù)。

(4) 訓(xùn)練算法:在數(shù)據(jù)上,利用adaBoostTrainDS()函數(shù)訓(xùn)練出一系列的分類器。

(5) 測(cè)試算法:我們擁有兩個(gè)數(shù)據(jù)集。在不采用隨機(jī)抽樣的方法下,我們就會(huì)對(duì)AdaBoost和Logistic回歸的結(jié)果進(jìn)行完全對(duì)等的比較。

(6) 使用算法:觀察該例子上的錯(cuò)誤率。不過,也可以構(gòu)建一個(gè)Web網(wǎng)站,讓馴馬師輸入馬的癥狀然后預(yù)測(cè)馬是否會(huì)死去。


在使用上述程序清單中的代碼之前,必須要有向文件中加載數(shù)據(jù)的方法。一個(gè)常見的loadDataset()的程序如下所示。


程序清單1-1自適應(yīng)數(shù)據(jù)加載函數(shù)


def loadDataSet (fileName) :

      numFeat = len (open (fileName).readline () .split ('\t '))

      dataMat = []; labelMat = []

      fr = open(fileName)

      for line in fr.readlines():

           lineArr =[]

           curLine = line.strip().split('\t')

           for i in range (numFeat-1) :

                lineArr.append(float (curLine [i]))

           dataMat.append(lineArr)

           labelMat.append(float (curLine [-1]))

      return dataMat, labelMat


之前,讀者可能多次見過了上述程序清單中的1oadDataset()函數(shù)。在這里,并不必指定每個(gè)文件中的特征數(shù)目,所以這里的函數(shù)與前面的稍有不同。該函數(shù)能夠自動(dòng)檢測(cè)出特征的數(shù)目。同時(shí),該函數(shù)也假定最后一個(gè)特征是類別標(biāo)簽。


將上述代碼添加到adaboost.py文件中并且將其保存之后,就可以輸人如下命令來使用上述函數(shù):


>>> datArr, labelArr = adaboost.loadDataSet('horseColicTraining2.txt')

>>> classifierArray = adaboost .adaBoostTrainDS(datArr,labelArr,10)

total error: 0.284280936455

total error: 0.284280936455



total error: 0.230769230769

>>> testArr,testLabelArr = adaboost.loadDataSet ('horseColicTest2.txt')

>>> prediction10 = adaboost.adaClassify(testArr,classifierArray)

To get the number of misclassified examples type in:

>>> errArr=mat (ones((67,1)))

>>> errArr [prediction10!=mat (testLabelArr).T].sum()

16.0

要得到錯(cuò)誤率,只需將上述錯(cuò)分樣例的個(gè)數(shù)除以67即可。


將弱分類器的數(shù)目設(shè)定為1到10000之間的幾個(gè)不同數(shù)字,并運(yùn)行上述過程。這時(shí),得到的結(jié)果就會(huì)如表1所示。在該數(shù)據(jù)集上得到的錯(cuò)誤率相當(dāng)?shù)?。我們?cè)谕粩?shù)據(jù)集上采用Logistic回歸得到的平均錯(cuò)誤率為0.35。而采用AdaBoost,得到的錯(cuò)誤率就永遠(yuǎn)不會(huì)那么高了。從表中可以看出,我們僅僅使用50個(gè)弱分類器,就達(dá)到了較高的性能。


表1不同弱分類器數(shù)目情況下的AdaBoost測(cè)試和分類錯(cuò)誤率。該數(shù)據(jù)集是個(gè)難數(shù)據(jù)集。通常情況下,AdaBoost會(huì)達(dá)到一個(gè)穩(wěn)定的測(cè)試錯(cuò)誤率,而并不會(huì)隨分類器數(shù)目的增多而提高


表1.png

觀察表1中的測(cè)試錯(cuò)誤率一欄,就會(huì)發(fā)現(xiàn)測(cè)試錯(cuò)誤率在達(dá)到了一個(gè)最小值之后又開始上升了。這類現(xiàn)象稱之為過擬合(overfitting,也稱過學(xué)習(xí))。有文獻(xiàn)聲稱,對(duì)于表現(xiàn)好的數(shù)據(jù)集,AdaBoost的測(cè)試錯(cuò)誤率就會(huì)達(dá)到一個(gè)穩(wěn)定值,并不會(huì)隨著分類器的增多而上升?;蛟S在本例子中的數(shù)據(jù)集也稱不上“表現(xiàn)好”。該數(shù)據(jù)集一開始有30%的缺失值,對(duì)于Logistic回歸而言,這些缺失值的假設(shè)就是有效的,而對(duì)于決策樹卻可能并不合適。如果回到數(shù)據(jù)集,將所有的0值替換成其他值,或者給定類別的平均值,那么能否得到更好的性能?


很多人都認(rèn)為,AdaBoost和SVM是監(jiān)督機(jī)器學(xué)習(xí)中最強(qiáng)大的兩種方法。實(shí)際上,這兩者之間擁有不少相似之處。我們可以把弱分類器想象成SVM中的一個(gè)核函數(shù),也可以按照最大化某個(gè)最小間隔的方式重寫AdaBoost算法。而它們的不同就在于其所定義的間隔計(jì)算方式有所不同,因此導(dǎo)致的結(jié)果也不同。特別是在高維空間下,這兩者之間的差異就會(huì)更加明顯。


責(zé)任編輯:admin


微信公眾號(hào)

  • 上一篇:局部加權(quán)線性回歸
  • 下一篇:基于數(shù)據(jù)集多重抽樣的分類器


  • 《譯聚網(wǎng)》倡導(dǎo)尊重與保護(hù)知識(shí)產(chǎn)權(quán)。如發(fā)現(xiàn)本站文章存在版權(quán)問題,煩請(qǐng)30天內(nèi)提供版權(quán)疑問、身份證明、版權(quán)證明、聯(lián)系方式等發(fā)郵件至info@qiqee.net,我們將及時(shí)溝通與處理。


我來說兩句
評(píng)論列表
已有 0 條評(píng)論(查看更多評(píng)論)