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

熱線電話:13121318867

登錄
首頁精彩閱讀備好數(shù)據(jù)后,數(shù)據(jù)科學(xué)家還要做什么
備好數(shù)據(jù)后,數(shù)據(jù)科學(xué)家還要做什么
2018-08-25
收藏

備好數(shù)據(jù)后,數(shù)據(jù)科學(xué)家還要做什么

在這個(gè)數(shù)據(jù)科學(xué)越來越火的時(shí)代,數(shù)據(jù)科學(xué)家的工作到底是怎樣的呢?

數(shù)據(jù)科學(xué)越來越火,很多人都想轉(zhuǎn)行入坑數(shù)據(jù)科學(xué)家,這當(dāng)然是好事。可是很多人都以為數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)等等流行詞對應(yīng)的工作,就是把數(shù)據(jù)塞進(jìn)Sckit-Learn這個(gè)算法庫里而已。

事實(shí)遠(yuǎn)遠(yuǎn)沒有那么簡單,下面我?guī)Т蠹易哌M(jìn)真實(shí)的數(shù)據(jù)科學(xué)世界。

讓我們從數(shù)據(jù)搜集完成后開始講起。

問題闡述

“數(shù)據(jù)消耗”反映了特定服務(wù)類別數(shù)據(jù)的下載和上傳量,比如社交網(wǎng)絡(luò),音頻等等。我們來看一個(gè)具體的例子。假設(shè)我們研究的是一個(gè)計(jì)數(shù)器,利用該計(jì)數(shù)器可以查看與亞馬遜網(wǎng)絡(luò)服務(wù)(Amazon Web Service,簡稱為AWS)連接的機(jī)器數(shù)量。

如果我們直接對原始數(shù)據(jù)進(jìn)行分類,我們會(huì)得到如下結(jié)果:

我們可以注意到,這是對數(shù)據(jù)進(jìn)行線性判別分析(Linear discriminant analysis,簡稱為LDA)后的二維示意圖。理論上講,LDA的結(jié)果可以體現(xiàn)出原數(shù)據(jù)的 ± 90%;雖然不是100%,但是這里我們可以看出,直接對數(shù)據(jù)進(jìn)行分類完全沒有意義。有人建議我換別的算法或者調(diào)整超參數(shù),但是其實(shí),把算法直接套在原數(shù)據(jù)上的想法糟透了。

理解數(shù)據(jù)

現(xiàn)在,我們來挖掘一番。數(shù)據(jù)到底長什么樣?我強(qiáng)烈建議初學(xué)者多花些時(shí)間觀察理解數(shù)據(jù),而不要急著輸入“from sklearn.cluster import KMeans”這樣的代碼行。這里我們研究一下這個(gè)例子的一個(gè)數(shù)據(jù)特征,但是請注意,大多數(shù)數(shù)據(jù)特征都是相似的。

下面是AWS計(jì)數(shù)器的結(jié)果(其實(shí)不是,但是我們就假定它是吧)

從上到下:總數(shù),平均值,標(biāo)準(zhǔn)差,最小值,25分位,中位數(shù),75分位,最大值

我們可以看到,幾乎所有的數(shù)值都為0。不過您仔細(xì)看會(huì)發(fā)現(xiàn),其實(shí)有些值達(dá)到3千萬。您用這樣的數(shù)值直接計(jì)算出來的距離值,再帶入LDA算法中就不可能有意義。即使您縮小數(shù)據(jù)的規(guī)模使所有的數(shù)值都在0—1之間,那么絕大部分的數(shù)值也都會(huì)在0到大概0.0000005之間,對計(jì)算距離也沒有幫助。

如果我們只看非零的數(shù)值,分布就很有意思了:

數(shù)據(jù)處理

上圖看起來像是LogNormal分布。現(xiàn)在我們就可以進(jìn)行簡單的數(shù)據(jù)標(biāo)準(zhǔn)化了。采用Box-Cox法可以轉(zhuǎn)化LogNormal分布。這個(gè)方法可以把包含LogNormal在內(nèi)的許多分布盡可能的標(biāo)準(zhǔn)化。

轉(zhuǎn)換的過程就是把下面公式中的lamda值最小化。

我們的數(shù)據(jù)集中有大量的0,所以lamda值最小化后的結(jié)果如下圖所示:(請注意:我們需要大于0的結(jié)果,因此我們先給每個(gè)數(shù)值加上1之后再用公式計(jì)算)

您可以看到上圖中大概在9的位置有一個(gè)小突起,這就是我們大多非0值的位置。從計(jì)算距離的角度看,現(xiàn)在我們的數(shù)據(jù)分布已經(jīng)比原來的好太多倍了,但是仍然有進(jìn)步的空間。

讓我們重新審視這個(gè)例子中數(shù)據(jù)的背景。我們想要根據(jù)機(jī)器的行為對其分類。在“機(jī)器對機(jī)器”的世界里,機(jī)器的行為包含了大量信息。“機(jī)器使用了亞馬遜網(wǎng)絡(luò)服務(wù)”這件事聽起來很滑稽,但其實(shí)含義非常重要。

我們給這些機(jī)器編碼,讓它們承擔(dān)特定的任務(wù),比如報(bào)告天氣、展示廣告等等。它們做任務(wù)的代碼都是編寫好的,因而它們不可能隨機(jī)的開始在臉書或者其他平臺(tái)上操作。

事實(shí)上,它們可以使用一項(xiàng)服務(wù)(比如說AWS)本身就包含了大量信息?;谏厦娴姆治觯覜Q定對數(shù)據(jù)集中非零的數(shù)值進(jìn)行標(biāo)準(zhǔn)化,使其規(guī)模在0.5到1之間;而對值為零的數(shù)據(jù)點(diǎn)保持不變。那么怎么標(biāo)準(zhǔn)化呢?當(dāng)然是采用Box-Cox轉(zhuǎn)化法——而且只對非零值進(jìn)行轉(zhuǎn)化。

請看下圖的結(jié)果比較。左圖是變換所有數(shù)據(jù)后得到的位于0—1區(qū)間的分布。右圖是放大的0.5—1區(qū)間的分布。

雖然說左圖看起來沒有比前面的方法提升很多,但是我向您保證,在后面應(yīng)用算法的過程中兩者的區(qū)別很大。

結(jié)果

下面我們對經(jīng)過預(yù)處理的數(shù)據(jù)重新分類。不需任何手動(dòng)調(diào)整我們就得到了如下結(jié)果。

結(jié)論

我發(fā)現(xiàn)人們常常看到算法就如同打了雞血,一頭扎進(jìn)建模的過程中。有的人甚至說,你不需要理解算法背后的數(shù)學(xué)原理。

我不贊同這個(gè)觀點(diǎn)。我認(rèn)為還是應(yīng)該理解一個(gè)算法的基本原理,至少要能理解到知道什么樣的數(shù)據(jù)輸入才是有意義的。

比如說,我們剛才舉例用的K-Means算法的基本原理就是點(diǎn)之間的距離,那么當(dāng)您擁有“千萬”這樣的數(shù)量級(jí)時(shí),您就不能期望直接把數(shù)據(jù)帶入算法就會(huì)獲得合適的結(jié)果,因?yàn)檫@時(shí)數(shù)值范圍太大了。

綜上所述,一遍一遍地檢查數(shù)據(jù),直到對它了然于胸,然后再讓這些高級(jí)的算法完成后續(xù)的工作。

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

若不方便掃碼,搜微信號(hào):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(), // 加隨機(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)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(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ù)說明請參見: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 = '請輸入'+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); }