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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀R語(yǔ)言與數(shù)據(jù)分析之四:聚類(lèi)算法1_數(shù)據(jù)分析師
R語(yǔ)言與數(shù)據(jù)分析之四:聚類(lèi)算法1_數(shù)據(jù)分析師
2014-12-12
收藏

R語(yǔ)言與數(shù)據(jù)分析之四:聚類(lèi)算法1_數(shù)據(jù)分析師

聚類(lèi)算法也因此更具有大數(shù)據(jù)挖掘的味道,話不多說(shuō),先貼張圖,讓大家對(duì)聚類(lèi)有個(gè)大概的印象:

 

    上圖可明顯看出店群被分為3個(gè)組(類(lèi)),接下來(lái)讓我們來(lái)瞧瞧聚類(lèi)是啥玩意

    聚類(lèi)算法本質(zhì)上是基于幾何距離遠(yuǎn)近為標(biāo)準(zhǔn)的算法,最適合數(shù)據(jù)是球形的問(wèn)題,首先羅列下常用的距離:

    絕對(duì)值距離(又稱(chēng)棋盤(pán)距離或城市街區(qū)距離)

    Euclide距離(歐幾里德距離,通用距離)

    Minkowski 距離(閔可夫斯基距離),歐幾里德距離 (q=2)、絕對(duì)值距離(q=1)和切比雪夫距離(q=無(wú)窮大),這些都是閔可夫斯基的特殊情況。

    Chebyshew(切比雪夫)距離

    Mahalanobis距離(咱們前面介紹的馬氏距離,這里復(fù)習(xí)一下

    Lance 和Wiliams距離

    定性變量距離(二進(jìn)制距離):

    其中m1為所有項(xiàng)目中1-1配對(duì)的總數(shù),m2是不配對(duì)的總數(shù)

    R語(yǔ)言中,對(duì)上述的距離都有現(xiàn)成函數(shù),只需要借參數(shù)加以制定即可,具體如下:

    [plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. dist(x,method=”euclidean”,diag=FALSE,upper=FALSE,p=2) #歐式距離 
  2. dist(x,method=”maximum” ,diag=FALSE,upper=FALSE,p=2)#切比雪夫距離 
  3. dist(x,method=”manhattan” ,diag=FALSE,upper=FALSE,p=2)#絕對(duì)值距離 
  4. dist(x,method=”canberra”, diag=FALSE,upper=FALSE,p=2)#Lance距離; 
  5. dist(x,method=”binary” ,diag=FALSE,upper=FALSE,p=2)#d定性變量距離 

 

    講完距離后,需要對(duì)原始數(shù)據(jù)進(jìn)行相應(yīng)的處理,否則數(shù)據(jù)規(guī)模的差異會(huì)被算法誤認(rèn)為屬性權(quán)重值而影響最終的聚類(lèi)效果。我們需要進(jìn)行數(shù)據(jù)的中心化和標(biāo)準(zhǔn)化 轉(zhuǎn)換。中心化即讓所有的數(shù)據(jù)都已0為中心點(diǎn),常用的標(biāo)準(zhǔn)化的做法是將數(shù)據(jù)看作正態(tài)分布,只需要將數(shù)據(jù)除以標(biāo)準(zhǔn)差即可到達(dá)標(biāo)準(zhǔn)化作用。數(shù)據(jù)中心化和標(biāo)準(zhǔn)化 后,各個(gè)變量的取值大小相接近,這樣各個(gè)變量都平等的發(fā)揮決策作用。

    R語(yǔ)言中提供了相應(yīng)的函數(shù):

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. Scale(x,center=TRUE,scale=TRUE) 

    接下來(lái)先介紹最古老的聚類(lèi)算法——層次聚類(lèi)

    思想:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. Step1:每個(gè)樣本各自作為一類(lèi); 
  2. Step2:計(jì)算類(lèi)之間的距離; 
  3. Step3:將距離最短的兩個(gè)類(lèi)合并為一個(gè)新類(lèi); 
  4. Step4:重復(fù)2-3步,即不斷合并最近的兩個(gè)類(lèi),每次減少一個(gè)類(lèi),直至所有樣本被合并為一類(lèi); 

    接下來(lái)介紹下類(lèi)間距離:

    最短距離法:兩個(gè)類(lèi)中所有點(diǎn)距離中的最小值;

    最長(zhǎng)距離法:兩個(gè)類(lèi)中所有點(diǎn)距離中的最大值;

    中間距離法:取介于最小值和最大值兩者間的距離;

    類(lèi)平均法:取所有距離的評(píng)價(jià)值;

    重心法:類(lèi)重心(均值)之間的距離;

    離差平法和法:各項(xiàng)與評(píng)價(jià)項(xiàng)之差的平方的總和;

    R提供了hclust()函數(shù)做層次聚類(lèi)方法,下面舉個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明下用法:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. x<-c(1,2,6,8,11) 
  2. dim(x)<-c(5,1) 
  3. d<-dist(x) 
  4. hc1<-hclust(d,"single")#最短距離法 
  5. hc2<-hclust(d,"complete")#最長(zhǎng)距離法 
  6. hc3<-hclust(d,"median")#中間距離法 
  7. hc4<-hclust(d,"ward")#離差平方和法 
  8. cpar<-par(mfrow=c(2,2)) 
  9. plot(hc1,hang=-1) 
  10. plot(hc2,hang=-1) 
  11. plot(hc3,hang=-1) 
  12. plot(hc4,hang=-1) 
  13. par(cpar) 
  14. rect.hclust(hc1,k=2)#人工輔助告訴R分為幾大類(lèi) 

    結(jié)果見(jiàn)下圖:其中的哦第一板塊的紅色劃分認(rèn)為告訴R需要分幾類(lèi)后,R自動(dòng)畫(huà)出分類(lèi)的展示:

文章來(lái)源:CDA數(shù)據(jù)分析師培訓(xùn)官網(wǎng)

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } 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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }