99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀機器學(xué)習(xí)中非平衡數(shù)據(jù)集的常用處理方法
機器學(xué)習(xí)中非平衡數(shù)據(jù)集的常用處理方法
2018-03-25
收藏

機器學(xué)習(xí)中非平衡數(shù)據(jù)集的常用處理方法

不平衡數(shù)據(jù)集:

在分類等問題中,正負樣本,或者各個類別的樣本數(shù)目不一致。

:在人臉檢測中,比如訓(xùn)練庫有10萬張人臉圖像,其中9萬沒有包含人臉,1萬包含人臉,這個數(shù)據(jù)集就是典型的不平衡數(shù)據(jù)集。
直觀的影響就是,用這些不平衡的數(shù)據(jù)訓(xùn)練出來的模型,其預(yù)測結(jié)果偏向于訓(xùn)練數(shù)據(jù)中數(shù)據(jù)比較多的那一類,在人臉檢測的例子中,就是檢測器的檢測結(jié)果大部分都偏向于沒有檢測到人臉圖像。

另外一個不平衡數(shù)據(jù)集,就是信用卡欺詐交易,如果平均的抽取數(shù)據(jù),則大部分的數(shù)據(jù)都是非欺詐交易,只有非常少的部分數(shù)據(jù)是欺詐交易

影響:不平衡的數(shù)據(jù)集上做訓(xùn)練和測試,其得到的準確率是虛高的,比如在不平衡數(shù)據(jù)中,正負樣本的比例為9:1時,當它的精度為90%時,我們很有理由懷疑它將所有的類別都判斷為數(shù)據(jù)多的那一類。

解決方法:8種

1.收集更多的數(shù)據(jù):

好處:更夠揭露數(shù)據(jù)類別的本質(zhì)差別,增加樣本少的數(shù)目以便后面的數(shù)據(jù)重采樣。
(這個是最好的方法,但是一般比較難,通常處理的數(shù)據(jù)是難以收集的。)

2.嘗試改變性能評價標準:

當數(shù)據(jù)不平衡時,準確度已經(jīng)失去了它原有的意義,
可以參考的度量標準有:
1> 混淆矩陣CM
2>精度
3>召回率
4>F1 分數(shù)(權(quán)衡精度和召回率
5>Kappa
6>ROC曲線

3.重采樣數(shù)據(jù):

1,拷貝一部分樣本偏少的數(shù)據(jù)多分,已達到平衡(過采樣);
2,刪除一部分樣本偏多的數(shù)據(jù),以使得達到平衡(欠采樣);
在實際中,過采樣和欠采樣都會使用的。
在測試中,如果樣本總數(shù)比較多,可以用欠采樣的數(shù)據(jù)進行測試,如果樣本總數(shù)比較少,可以用過采樣的數(shù)據(jù)進行測試;另外應(yīng)該測試隨機采樣的數(shù)據(jù)和非隨機采樣的數(shù)據(jù),同時,測試不同比例正負樣本的數(shù)據(jù)。

4.生成合成數(shù)據(jù):

最簡單的是,隨機采樣樣本數(shù)目比較少的屬性,
另外一個比較出名的方法為:SMOTE
它是一種過采樣的方法,它從樣本比較少的類別中創(chuàng)建新的樣本實例,一般,它從相近的幾個樣本中,隨機的擾動一個特征,

5.使用不同的算法:

不要試圖用一個方法解所有的問題,嘗試一些其他不同的方法,比如決策樹一般在不平衡數(shù)據(jù)集上表現(xiàn)的比較的好。

6.嘗試懲罰模型:

意思就是添加新的懲罰項到cost函數(shù)中,以使得小樣本的類別被判斷錯誤的cost更大,迫使模型重視小樣本的數(shù)據(jù)。
比如:帶懲罰項的SVM

7.使用不同的視角:

不平衡的數(shù)據(jù)集,有專門的鄰域和算法做這個,可以參考他們的做法和術(shù)語。
比如:異常檢測。

8.嘗試新的改進:

比如:1.把樣本比較多的類別,分解為一些更多的小類別,
比如:原始我們想?yún)^(qū)分數(shù)字0和其它數(shù)字這二分類問題,我們可以把其它數(shù)字在分為9類,變成0–9的分類問題.


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }