中文名 | 高級(jí)數(shù)據(jù)鏈路控制規(guī)程 | 外文名 | high-leveldata link control procedures |
---|---|---|---|
開發(fā)商 | ISO | 意????義 | 通信領(lǐng)域中應(yīng)用最廣泛的協(xié)議之一 |
應(yīng)用學(xué)科 | 計(jì)算機(jī)、通信 |
HDLC規(guī)程要素 規(guī)定了數(shù)據(jù)鏈路的信道狀態(tài)、操作與非操作方式、控制字段中的格式和參數(shù)、鏈路級(jí)的命令響應(yīng)及相應(yīng)的編碼以及異常狀態(tài)的報(bào)告與恢復(fù)等。
操作方式規(guī)定了數(shù)據(jù)站與數(shù)據(jù)站之間傳送數(shù)據(jù)時(shí)的相互關(guān)系。HDLC規(guī)程中有正常響應(yīng)方式(NRM)、異步響應(yīng)方式(ARM)和異步平衡方式(ABM)三種操作方式。NRM是一種不平衡數(shù)據(jù)鏈路操作方式,適用于點(diǎn)對(duì)點(diǎn)與點(diǎn)對(duì)多點(diǎn)通信的場(chǎng)合。在這種場(chǎng)合下,次站只有收到主站的明確允許后才能傳送一幀或多幀|ARM也是一種不平衡數(shù)據(jù)鏈路操作方式,適用于點(diǎn)對(duì)點(diǎn)通信的場(chǎng)合,在這種場(chǎng)合下,次站不必收到來自主站的明確允許就可開始傳送一個(gè)或多個(gè)響應(yīng)幀;如圖是一種平衡數(shù)據(jù)鏈路操作方式,適用于點(diǎn)對(duì)點(diǎn)的通信,在這種場(chǎng)合下,任何一個(gè)組合站在任何時(shí)刻都可以發(fā)送命令幀,并無(wú)須收到來自其他組合站的明確允許就可以開始傳送響應(yīng)幀。
HDLC規(guī)程規(guī)定有三種控制字段格式。對(duì)于基本操作(模8)。,其控制字段格式如表所示。
基本操作(模8)的控制字段格式如圖1所示。
表中N(S)為發(fā)送端發(fā)送幀順序編號(hào),N(R)為發(fā)送端接收的接收幀順序編號(hào),S為監(jiān)控功能位,M為修改功能位,P/F為探詢/終結(jié)位,即發(fā)送命令幀時(shí)的探詢位,或發(fā)送響應(yīng)幀時(shí)的終結(jié)位。
I格式用來實(shí)現(xiàn)信息傳送;S格式用來實(shí)現(xiàn)數(shù)據(jù)鏈路監(jiān)控功能格式用來提供附加的數(shù)據(jù)鏈路控制功能和無(wú)編號(hào)信息傳送。S格式與U格式(UI幀除外)的信息字段(I)為零。
HDLC規(guī)程有不平衡操作的正常響應(yīng)方式類(UNC)、不平衡操作的異步響應(yīng)方式類(UAC)和平衡操作的異步響應(yīng)方式類(BAO三種基本的規(guī)程類別。
不平衡類的特征是數(shù)據(jù)鏈路的一端只有一個(gè)主站,而另一端有一個(gè)或多個(gè)次站,數(shù)據(jù)鏈路的管理由主站單獨(dú)負(fù)責(zé)>平衡類的特征是在一條數(shù)據(jù)鏈路兩端各有一個(gè)組合站,它們對(duì)數(shù)據(jù)鏈路的管理負(fù)有同等責(zé)任。
七十年代初,IBM公司率先提出了面向比特的同步數(shù)據(jù)鏈路控制規(guī)程SDLC(Synchronous Data Link Control)。隨后,ANSI和ISO均采納并發(fā)展了SDLC,并分別提出了自己的標(biāo)準(zhǔn):ANSI的高級(jí)通信控制過程ADCCP(Advanced Data Control Procedure),ISO的高級(jí)數(shù)據(jù)鏈路控制規(guī)程HDLC(High-level Data Link Contl)。
鏈路控制協(xié)議著重于對(duì)分段成物理塊或包的數(shù)據(jù)的邏輯傳輸,塊或包由起始標(biāo)志引導(dǎo)并由終止標(biāo)志結(jié)束,也稱為幀。幀是每個(gè)控制、每個(gè)響應(yīng)以及用協(xié)議傳輸?shù)乃行畔⒌拿襟w的工具。所有面向比特的數(shù)據(jù)鏈路控制協(xié)議均采用統(tǒng)一的幀格式,不論是數(shù)據(jù)還是單獨(dú)的控制信息均以幀為單位傳送。
每個(gè)幀前、后均有一標(biāo)志碼01111110,用作幀的起始、終止指示及幀的同步。標(biāo)志碼不允許在幀的內(nèi)部出現(xiàn),以免引起畸意。為保證標(biāo)志碼的唯一性但又兼顧幀內(nèi)數(shù)據(jù)的透明性,可以采用“0比特插入法”來解決。該法在發(fā)送端監(jiān)視除標(biāo)志碼以外的所有字段,當(dāng)發(fā)現(xiàn)有連續(xù)5個(gè)“1”出現(xiàn)時(shí),便在其后添插一個(gè)“0”,然后繼續(xù)發(fā)后繼的比特流。在接收端,同樣監(jiān)除起始標(biāo)志碼以外的所有字段。當(dāng)連續(xù)發(fā)現(xiàn)5個(gè)“1”出現(xiàn)后,若其后一個(gè)比特“0”則自動(dòng)刪除它,以恢復(fù)原來的比特流;若發(fā)現(xiàn)連續(xù)6個(gè)“1”,則可能是插入的“0”發(fā)生差錯(cuò)變成的“1”,也可能是收到了幀的終止標(biāo)志碼。后兩種情況,可以進(jìn)一步通過幀中的幀檢驗(yàn)序列來加以區(qū)分。“0比特插入法”原理簡(jiǎn)單,很適合于硬件實(shí)現(xiàn)。
在面向比特的協(xié)議的幀格式中,有一個(gè)8比特的控制字段,可以用它以編碼方式定義豐富的控制命令和應(yīng)答,相當(dāng)于起到了BSC協(xié)議中眾多傳輸控制 字符和轉(zhuǎn)義序列的功能。
作為面向比特的數(shù)據(jù)鏈路控制協(xié)議的典型,HDLC具有如下特點(diǎn):協(xié)議不依賴于任何一種字符編碼集;數(shù)據(jù)報(bào)文可透明輿傳輸,用于實(shí)現(xiàn)透明傳輸?shù)摹?比特插入法”易于硬件實(shí)現(xiàn);全雙工通信,不必等待確認(rèn)便可連續(xù)發(fā)送數(shù)據(jù),有較高的數(shù)據(jù)鏈路傳輸效率;所有幀均采用CRC校驗(yàn),對(duì)信息幀進(jìn)行編號(hào),可紡止漏收或重份,傳輸可靠性高;傳輸控制功能與處理功能分離,具有較大靈活性和較完善的控制功能。由于以上特點(diǎn),目前網(wǎng)絡(luò)設(shè)計(jì)普遍使用HDLC作為數(shù)據(jù)鏈路管制協(xié)議。
廣聯(lián)達(dá)軟件打不開,提示數(shù)據(jù)鏈接出錯(cuò)o
將文件發(fā)給廣聯(lián)達(dá),讓他們做個(gè)修復(fù)。 注意不要再做其他任何操作了,復(fù)制時(shí)只復(fù)制保存的源文件,帶后綴的文件全部刪除。
1 DENON天龍 ( 始于1910年日本,全球知名品牌,數(shù)碼錄音的始祖,日本本土老字號(hào)品牌,上海電音馬蘭士電子有限公司 ) 2 Yamaha雅馬哈 (...
光纖鏈路測(cè)試測(cè)的是一條主干光纖鏈路從起點(diǎn)(機(jī)房或前端)到小區(qū)拉入端的光纖的距離、鏈路衰減等指標(biāo),主要測(cè)試儀器以O(shè)TDR(光時(shí)域反射儀)為主。用戶光纜測(cè)試主要是測(cè)試進(jìn)入用戶的光終端的接收光功率,測(cè)試儀器...
1.HDLC的操作方式
HCLC是通用的數(shù)據(jù)鏈路控制協(xié)議,當(dāng)開始建立數(shù)據(jù)鏈路時(shí),允許選用特定的操作方式。所謂鏈路操作方式,通俗地講就是某站點(diǎn)以主站方式操作,還是以從站方式操作,或者是二者兼?zhèn)洹?
在鏈路上用于控制目的站稱為主站,其它的受主站控制的站稱為從站。主站負(fù)責(zé)對(duì)數(shù)據(jù)流進(jìn)行組織,半且對(duì)鏈路上的差錯(cuò)實(shí)施恢復(fù)。由主站發(fā)往從站的幀稱為命令幀,而由由站返回主站的幀稱響應(yīng)幀。
連有多個(gè)站點(diǎn)的鏈路通常使用輪詢技術(shù),輪詢其它站的站稱為主站,而在點(diǎn)到點(diǎn)燃鏈路中每個(gè)站均可為主站。主站需要比從站有更多的邏輯功能,所以當(dāng)終端與主機(jī)相連時(shí),主機(jī)一般總是主站。
在一個(gè)站連接多條鏈中的情況下,該站對(duì)于一些鏈路而言可能是主站,而對(duì)另外一些鏈路而言又可能是從站。
有些可兼?zhèn)渲髡竞蛷恼镜墓δ埽@站稱為組合站,用于組合站之間信息傳輸?shù)膮f(xié)議是對(duì)稱的,即在鏈路上主、從站具有同樣的傳輸控制功能,這又稱作平衡操作,在計(jì)算機(jī)網(wǎng)絡(luò)中這是一個(gè)非常重要的概念。相對(duì)的,那種操作時(shí)有主站、從站之分的,且各自功能不同的操作,稱非平衡操作。
HDCL中常用的操作方式有以下三種:
(1)正常響應(yīng)方式NRM(Normal Responses Mode)是一種非平衡數(shù)據(jù)鏈路操作方式,有時(shí)也稱非平衡正常響應(yīng)方式。該操作方式適用于面向終端的點(diǎn)到點(diǎn)或一點(diǎn)與多點(diǎn)的鏈路。在這種操作方式,傳輸過程由主站啟動(dòng),從站只有收到主站某個(gè)命令幀后,才能作為響應(yīng)向主站傳輸信息。響應(yīng)信息可以由一個(gè)或多個(gè)幀組成,若信息 由多個(gè)幀組成,則應(yīng)指出哪一個(gè)是最后一幀。主站負(fù)責(zé)管理整個(gè)鏈路,且具有輪詢、選擇從站及向從站發(fā)送命令的權(quán)利,同時(shí)也負(fù)責(zé)對(duì)超時(shí)、重發(fā)及各類恢復(fù) 操作的控制。NRM操作方式見圖3.7(a)。
(2)異步響應(yīng)方式ARM
異步響應(yīng)方式ARM(Asynchronous Responses Mode)也是一種非平衡數(shù)據(jù)鏈路操作方式,與NRM不同的是,ARM下的傳輸過程由從站啟動(dòng)。從站主動(dòng)發(fā)送給主站的一個(gè)或一組幀中可包含有信息,也可以是僅以控制為目的而發(fā)的幀。在這種操作方式下,由從站來控制超時(shí)和重發(fā)。該方式對(duì)采用輪詢方式的多站蓮路來說是必不可少的。ARM操作方式見圖3.7(b)。
(3)異步平衡方式ABM
異步平衡方式ABM(Asynchronous Balanced Mode)是一種允許任何節(jié)點(diǎn)來啟動(dòng)傳輸?shù)牟僮鞣绞?。為了提高鏈路傳輸效率,?jié)點(diǎn)之間在兩個(gè)方向上都需要的較高的信息傳輸量。在這種操作方式下任何時(shí)候任何站都能啟動(dòng)傳輸操作,每個(gè)站既可作為主站又可作為從站,每個(gè)站都是組合站。各站都有相同的一組協(xié)議,任何站都可以發(fā)送或接收命令,也可以給出應(yīng)答,并且各站對(duì)差錯(cuò)恢復(fù)過程都負(fù)有相同的責(zé)任。
在HDLC中,數(shù)據(jù)和控制報(bào)文均以幀的標(biāo)準(zhǔn)格式傳送。HDLC中的幀類似于BSC的字符塊,但BSC協(xié)議中的數(shù)據(jù)報(bào)文和控制報(bào)文是獨(dú)立傳輸?shù)?,而HDLC中的命令應(yīng)以統(tǒng)一的格式按幀傳輸。HDLC的完整的幀由標(biāo)志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、幀校驗(yàn)序列字段(FCS)等組成,如圖2所示。.
圖2 HDLC幀結(jié)構(gòu)
(1)標(biāo)志字段(F)
標(biāo)志字段為01111110的比特模式,用以標(biāo)志幀的起始和前一幀的終止。標(biāo)志字段也可以作為幀與幀之間的填充字符。通常,在不進(jìn)行幀傳送的時(shí)刻,信道仍處于激活狀態(tài),在這種狀態(tài)下,發(fā)方不斷地發(fā)送標(biāo)志字段,便可認(rèn)為一個(gè)新的幀傳送已經(jīng)開始。采用“0比特插入法”可以實(shí)現(xiàn)0數(shù)據(jù)的透明傳輸。
(2)地址字段(A)
地址字段的內(nèi)容取決于所彩了的操作方式。在操作方式中,有主站、從站、組合站之分。每一個(gè)從站和組合站都被分配一個(gè)唯一的地址。命令幀中的地址字段攜帶的是對(duì)方站的地址,而響應(yīng)幀中的地址字段所攜帶的地址是本站的地址。某一地址也可分配給不止一個(gè)站,這種地址稱為組地址,利用一個(gè)組地址傳輸?shù)膸鼙唤M內(nèi)所有擁有該組一焉的站接收。但當(dāng)一個(gè)站或組合站發(fā)送響應(yīng)時(shí),它仍應(yīng)當(dāng)用它唯一的地址。還可用全“1”地址來表示包含所有站的地址,稱為廣播地址,含有廣播地址的幀傳送給鏈路上所有的站。另外,還規(guī)定全“0”地址為無(wú)站地址,這種地址不分配給任何站,僅作作測(cè)試。
(3)控制字段(C)
控制字段用于構(gòu)成各種命令和響應(yīng),以便對(duì)鏈路進(jìn)行監(jiān)視和控制。發(fā)送方主站或組合站利用控制字段來通知被尋址的從站或組合站執(zhí)行約定的操作;相反,從站用該字段作對(duì)命令的響應(yīng),報(bào)告已完成的操作或狀態(tài)的變化。該字段是HDLC的關(guān)鍵。控制字段中的第一位或第一、第二位表示傳送幀的類型,HDLC中有信息幀(I幀)、監(jiān)控幀(S幀)和無(wú)編號(hào)幀(U幀)三種不同類型的幀??刂谱侄蔚牡谖逦皇荘/F位,即輪詢/終止(Poll/Final)位。
(4)信息字段(I)
信息字段可以是任意的二進(jìn)制比特串。比特串長(zhǎng)度未作限定,其上限由FCS字段或通信站的緩沖器容量來決定,目前國(guó)際上用得較多的是1000~2000比特;而下限可以為0,即無(wú)信息字段。但是,監(jiān)控幀(S幀)中規(guī)定不可有信息字段。
(5)幀校驗(yàn)序列字段(FCS)
幀校驗(yàn)序列字段可以使用16位CRC,對(duì)兩個(gè)標(biāo)志字段之間的整個(gè)幀的內(nèi)容進(jìn)行校驗(yàn)。FCS的生成多項(xiàng)式CCITT V4.1建議規(guī)定的X16 X12 X5 1。
(1)信息幀(I幀)
信息幀用于傳送有效信息或數(shù)據(jù),通常簡(jiǎn)稱I幀。I幀以控制字第一位為“0”來標(biāo)志。
信息幀的控制字段中的N(S)用于存放發(fā)送幀序號(hào),以使發(fā)送方不必等待確認(rèn)而連續(xù)發(fā)送多幀。N(R)用于存放接收方下一個(gè)預(yù)期要接收的幀的序號(hào),N(R)=5,即表示接收方下一幀要接收5號(hào)幀,換言之,5號(hào)幀前的各幀接收到。N(S)和N(R)均為3位二進(jìn)制編碼,可取值0~7。
(2)監(jiān)控幀(S幀)
監(jiān)控幀用于差錯(cuò)控制和流量控制,通常簡(jiǎn)稱S幀。S幀以控制字段第一、二位為“10”來標(biāo)志。S幀帶信息字段,只有6個(gè)字節(jié)即48個(gè)比特。S幀的控制字段的第三、四位為S幀類型編碼,共有四種不同編碼,分別表示:
00——接收就緒(RR),由主站或從站發(fā)送。主站可以使用RR型S幀來輪詢從站,即希望從站傳輸編號(hào)為N(R)的I幀,若存在這樣的幀,便進(jìn)行傳輸;從站也可用RR型S幀來作響應(yīng),表示從站希望從主站那里接收的下一個(gè)I幀的編號(hào)是N(R)。
01——拒絕(REJ),由主站或從站發(fā)送,用以要求發(fā)送方對(duì)從編號(hào)為N(R)開始的幀及其以后所有的幀進(jìn)行重發(fā),這也暗示N(R)以前的I幀已被正確接收。
10——接收未就緒(RNR),表示編號(hào)小于N(R)的I幀已被收到,但目前正處于忙狀態(tài),尚未準(zhǔn)備好接收編號(hào)為N(R)的I幀,這可用來對(duì)鏈路流量進(jìn)行控制。
11——選擇拒絕(SREJ),它要求發(fā)送方發(fā)送編號(hào)為N(R)單個(gè)I幀,并暗示它編號(hào)的I幀已全部確認(rèn)。
可以看出,接收就緒RR型S幀和接收未就緒RNR型S幀有兩個(gè)主要功能:首先,這兩種類型的S幀用來表示從站已準(zhǔn)備好或未準(zhǔn)備好接收信息;其次,確認(rèn)編號(hào)小于N(R)的所有接收到的I幀。拒絕REJ和選擇拒絕SREJ型S幀,用于向?qū)Ψ秸局赋霭l(fā)生了差錯(cuò)。REJ幀用于GO-back-N策略,用以請(qǐng)求重發(fā)N(R)以前的幀已被確認(rèn),當(dāng)收到一個(gè)N(S)等于REJ型S幀的N(R)的I幀后,REJ狀態(tài)即可清除。SREJ幀用于選擇重發(fā)策略,當(dāng)收到一個(gè)N(S)等SREJ幀的N(R)的I幀時(shí),SREJ狀態(tài)即應(yīng)消除。
(3)無(wú)編號(hào)幀(U幀)
無(wú)編號(hào)幀因其控制字段中不包含編號(hào)N(S)和N(R)而得名,簡(jiǎn)稱U幀。U幀用于提供對(duì)鏈路的建立、拆除以及多種控制功能,這些控制功能5個(gè)M位(M1、M2、M3、M4、M5,也稱修正位)來定義。5個(gè)M位可以定義32種附加的命令功能或32種應(yīng)答功能,但目前許多是空缺的。
格式:pdf
大?。?span id="urhinvw" class="single-tag-height">241KB
頁(yè)數(shù): 14頁(yè)
評(píng)分: 4.7
高級(jí)數(shù)據(jù)鏈路控制規(guī)程 HDLC 中興通訊南京研究所用服部 ATM 科 第 2 頁(yè) 共 14 頁(yè) 目 錄 1.?dāng)?shù)據(jù)鏈路控制規(guī)程 .............................................................................................................3 1. 1 數(shù)據(jù)鏈路結(jié)構(gòu) .........................................................................................................3 1. 2 數(shù)據(jù)鏈路控制規(guī)程功能 .....................................................................................
《哈佛商業(yè)評(píng)論》曾宣稱“數(shù)據(jù)科學(xué)家”是二十一世紀(jì)最性感的職業(yè)。所謂性感,既代表著難以名狀的誘惑,又說明了大家對(duì)它又不甚了解。
如何做好數(shù)據(jù)科學(xué)呢?
微軟高級(jí)數(shù)據(jù)科學(xué)家 Brandon Rohrer 概括了做數(shù)據(jù)科學(xué)的七大步驟,手把手教你做數(shù)據(jù)科學(xué)。
1. 獲取更多的數(shù)據(jù)
數(shù)據(jù)科學(xué)的原材料是數(shù)字和名稱的集合,測(cè)量、價(jià)格、日期、時(shí)間、產(chǎn)品、標(biāo)題、行動(dòng)等,數(shù)據(jù)科學(xué)無(wú)所不包。你也可以使用圖像、文字、音頻、視頻等復(fù)雜數(shù)據(jù),只要你能將它們簡(jiǎn)化為數(shù)字和名稱。
獲取數(shù)據(jù)的機(jī)制可能非常復(fù)雜,事實(shí)上,數(shù)據(jù)工程師就像忍者一樣。不過,本篇文章將主要聚焦于數(shù)據(jù)科學(xué)。
2. 問一個(gè)尖銳的問題
數(shù)據(jù)科學(xué)是通過數(shù)字和名稱組成的數(shù)據(jù)集合來回答問題的過程。你問的問題越精確,越容易找到令你滿意的答案。
在選擇問題的時(shí)候,想象你的面前是一個(gè)可以用數(shù)字或字段來告訴你宇宙中一切奧秘的圣人,他的回答總是模糊不清、令人困惑,而你希望問一個(gè)精準(zhǔn)而無(wú)懈可擊的問題,讓他忍不住告訴你問題的答案。
模糊的問題如“我的數(shù)據(jù)能告訴我什么?”、“我應(yīng)該做什么?”我怎樣提高利潤(rùn)?”會(huì)帶來無(wú)用的回答,而清晰的問題如“第三季度我能在蒙特利爾賣出多少產(chǎn)品?”、“我車隊(duì)中的哪一輛車會(huì)先壞?”會(huì)帶來清晰的答案。
在有了問題后,要看你的數(shù)據(jù)是否能夠回答這些問題。如果你的問題是“我的下周的價(jià)格是多少?”,那就要確保你的數(shù)據(jù)中有的歷史價(jià)格;如果你的問題是“88型航空發(fā)動(dòng)機(jī)能夠工作多少小時(shí)?”,那就要確保你有多臺(tái)88型發(fā)動(dòng)機(jī)故障次數(shù)的數(shù)據(jù)。
這些就是你的目標(biāo)數(shù)據(jù) (target),即你希望在未來預(yù)測(cè)或布置的量或種類。如果你沒有任何目標(biāo)數(shù)據(jù),需要回到步驟1,獲取更多的數(shù)據(jù),因?yàn)闆]有目標(biāo)數(shù)據(jù)則無(wú)法回答問題。
3. 將數(shù)據(jù)置于表格中
大部分機(jī)器學(xué)習(xí)算法假設(shè)數(shù)據(jù)以表格的形式呈現(xiàn),每行是一個(gè)事件、項(xiàng)目或?qū)嵗?,每列是行?shù)據(jù)的一個(gè)特征或?qū)傩浴?/span>
在一個(gè)描述美國(guó)足球比賽的數(shù)據(jù)集中,每行可能代表一場(chǎng)比賽,列可能包括主場(chǎng)隊(duì)、客場(chǎng)隊(duì)、主場(chǎng)得分、客場(chǎng)得分、日期、開始時(shí)間、出場(chǎng)情況等等。表格中的列可以非常細(xì)致,有多少都可以。
選擇所需數(shù)據(jù)行
將數(shù)據(jù)集分割成行有許多方法,但只有一種方法能幫助你回答問題:每行有且只能有一個(gè)目標(biāo)實(shí)例。以零售店數(shù)據(jù)為例,一行可以是一次交易、一天營(yíng)業(yè)額、一個(gè)零售店、一個(gè)顧客等等。
如果你的問題是“剛進(jìn)過店的顧客會(huì)回訪嗎?”,那應(yīng)當(dāng)以一個(gè)顧客作為一行,你的目標(biāo)“顧客是否回訪”將呈現(xiàn)在每行,而如果以一個(gè)零售店或者一天營(yíng)業(yè)額作為每行的數(shù)據(jù)則不能回答目標(biāo)問題。
有時(shí)你必須通過累積數(shù)據(jù)來獲得需要的數(shù)據(jù)。如果你的問題是“我每天賣出多少拿鐵咖啡?”,那你需要的數(shù)據(jù)是以天數(shù)作為行、賣出的拿鐵數(shù)作為列,但是你手頭的數(shù)據(jù)可能是帶有日期和時(shí)間的交易記錄。
為了將這些數(shù)據(jù)變?yōu)槊刻斓臄?shù)據(jù),需要對(duì)目前的數(shù)據(jù)進(jìn)行累積,將每一天賣出的拿鐵數(shù)進(jìn)行合計(jì)。在這個(gè)過程中,有些信息會(huì)丟失,例如每杯拿鐵賣出的時(shí)間,但沒有關(guān)系,因?yàn)樗粫?huì)幫助你回答問題。
4. 檢查數(shù)據(jù)質(zhì)量
檢視
下一步是認(rèn)真地排查數(shù)據(jù)。檢查數(shù)據(jù)有兩個(gè)目的:第一,發(fā)現(xiàn)錯(cuò)誤數(shù)據(jù),修復(fù)或去除;第二,充分了解每一行每一列。這一步不能跳過,否則無(wú)法讓數(shù)據(jù)發(fā)揮最大功效。只有你對(duì)你的數(shù)據(jù)表示出愛,它才會(huì)愛你哦。
以一列數(shù)據(jù)為例,它的標(biāo)簽是什么?數(shù)值與標(biāo)簽匹配嗎?標(biāo)簽對(duì)你來說有意義嗎?這一列數(shù)據(jù)有記錄嗎?是怎樣測(cè)量的?誰(shuí)來測(cè)量的?如果你幸運(yùn)地認(rèn)識(shí)錄入數(shù)據(jù)的人,不妨約他們出來吃甜甜圈,問問他們是怎樣測(cè)量的,問問他們錄入中有沒有有趣的故事,這一頓點(diǎn)心會(huì)給你帶來回報(bào)的。
現(xiàn)在,讓我們把用這一列畫一個(gè)柱狀圖。整體分布符合你的預(yù)期嗎?是否有異常數(shù)據(jù)點(diǎn)?異常點(diǎn)是否有意義?例如,如果這一列代表的是農(nóng)業(yè)分布的經(jīng)度,有沒有一個(gè)數(shù)據(jù)點(diǎn)落在太平洋中?如果這一列是關(guān)于考試分?jǐn)?shù),是否有人的分?jǐn)?shù)是1%或者10000% ?用你所知的一切對(duì)數(shù)據(jù)做一個(gè)監(jiān)測(cè),如果有的數(shù)據(jù)看起來有些奇怪,找出為什么。
校正
在排查數(shù)據(jù)中,你可能發(fā)現(xiàn)一些標(biāo)簽和記錄的錯(cuò)誤,記錄并分享你的發(fā)現(xiàn)。
你也可能發(fā)現(xiàn)一些值是錯(cuò)誤的。一些值可能超過了正常范圍,比如一個(gè)人竟然72米高,或者有些值是不可能出現(xiàn)的,例如一個(gè)寫成“中心路 7777777777 號(hào)”的地址。
這種情況下,你有三個(gè)選擇:如果這個(gè)值很容易更改,那就改為正確的值,例如把高72米改成72英寸;如果錯(cuò)誤的值不明顯,你可以刪掉這個(gè)值、注明缺失;如果這個(gè)值是關(guān)鍵信息,你可以刪除整行或者整列。這樣可以讓你訓(xùn)練的模型遠(yuǎn)離錯(cuò)誤數(shù)據(jù)。錯(cuò)誤數(shù)據(jù)可比缺失數(shù)據(jù)危害更大。
你可能很想移除看起來不理想的數(shù)據(jù),例如異常數(shù)據(jù)或者不支持你的理論的數(shù)據(jù)——但千萬(wàn)別這樣做,否則不僅違背學(xué)術(shù)倫理,更可怕的是可能會(huì)導(dǎo)致錯(cuò)誤結(jié)果。
替換缺失值
幾乎每一個(gè)數(shù)據(jù)集都存在缺失值,可能是由于數(shù)值錯(cuò)誤被刪除了,也可能是你在實(shí)驗(yàn)途中去測(cè)量了一個(gè)新的變量,還可能是這些數(shù)據(jù)來自不同的數(shù)據(jù)源。但不管什么情況,大部分機(jī)器學(xué)習(xí)算法要么要求數(shù)據(jù)無(wú)缺失,要么會(huì)用默認(rèn)值填充。而你可以比機(jī)器做得更好,因?yàn)槟懔私饽愕臄?shù)據(jù)。
替換缺失值有很多方法,《處理缺失值的方法》一文提供了一個(gè)辦法,而最佳的處理辦法取決于每一列的意義和數(shù)值缺失帶來的影響,每一個(gè)數(shù)據(jù)集的情況可能都有所不同。
替換完所有的缺失值后,你的數(shù)據(jù)們現(xiàn)在已經(jīng)“連上”了,每一個(gè)數(shù)據(jù)點(diǎn)對(duì)每一個(gè)特征都有意義?,F(xiàn)在,這些數(shù)據(jù)是干凈的、可以拿來用了。
有時(shí)候你可能發(fā)現(xiàn),在數(shù)據(jù)清理后,幾乎沒有剩余的數(shù)據(jù)了……這是件好事情,因?yàn)槟銊倓偙苊饬俗呱嫌缅e(cuò)誤的數(shù)據(jù)建立模型、得到錯(cuò)誤的結(jié)論、被客戶嘲笑、激怒老板的不歸路 …… 如果是這樣,那就回到第一步,從頭獲取更多的數(shù)據(jù)吧!
5. 變換特征
在進(jìn)入機(jī)器學(xué)習(xí)之前還有一步:特征工程 (feature engineering) ,即對(duì)現(xiàn)有特征數(shù)據(jù)進(jìn)行創(chuàng)意組合,以更好地預(yù)測(cè)你的目標(biāo)。舉個(gè)例子,如果我們把火車到達(dá)和出發(fā)的時(shí)間相減,可以得到火車的運(yùn)輸時(shí)間,這個(gè)特征對(duì)完成目標(biāo)即預(yù)測(cè)火車的最大速度更加有用。
嚴(yán)格來講,特征工程并不會(huì)增加任何數(shù)據(jù)信息,只是使用各種方法對(duì)原有數(shù)據(jù)進(jìn)行組合。然而,僅僅對(duì)兩欄的數(shù)據(jù)進(jìn)行組合就有無(wú)限種方式,而大部分組合方式對(duì)解決目標(biāo)并沒有什么幫助。通常情況下,只有在對(duì)數(shù)據(jù)有充分了解的情況下才可能選出一個(gè)好的方式。你需要充分調(diào)用你所有的相關(guān)知識(shí),讓數(shù)據(jù)為你所用。
特征工程是數(shù)據(jù)科學(xué)中最微妙的一步,沒有一成不變的辦法,而是要不斷試錯(cuò)、依靠直覺和經(jīng)驗(yàn)。深度學(xué)習(xí)試圖讓這個(gè)過程自動(dòng)完成,但大多以失敗告終,也許這就是人類智能的特別之處吧。
不過,即使你還不是特征工程的黑帶高手,也有一個(gè)可以使用的小技巧。你可以根據(jù)你的目標(biāo),用不同的顏色標(biāo)識(shí)變量,這可以幫你發(fā)現(xiàn)變量之間的關(guān)系。這可能工作量較大,不過你一定要花些時(shí)間過一遍。每當(dāng)你發(fā)現(xiàn)有兩個(gè)變量與目標(biāo)相關(guān),那可能就是一個(gè)特征工程,意味著這兩個(gè)變量結(jié)合在一起可能比孤立來看更有幫助。
有時(shí)候,你會(huì)發(fā)現(xiàn)你的數(shù)據(jù)中沒有任何變量或變量的組合能夠幫你預(yù)測(cè)目標(biāo),這可能意味著你需要測(cè)量一些其他變量。那么,重回第一步,獲取更多的數(shù)據(jù)吧 !
6. 回答問題
終于到了數(shù)據(jù)科學(xué)家最愛的部分了 —— 機(jī)器學(xué)習(xí)!簡(jiǎn)單地說,你需要確定你的問題屬于哪種算法 ,然后使用傳統(tǒng)的機(jī)器學(xué)習(xí)技巧來分割數(shù)據(jù)進(jìn)行訓(xùn)練、調(diào)整、測(cè)試數(shù)據(jù)集、根據(jù)選擇的模型優(yōu)化參數(shù)。
如果你的模型無(wú)法很好地解決問題,或者你不想用機(jī)器學(xué)習(xí),還有兩種非傳統(tǒng)的方法:
第一種,簡(jiǎn)單地看一下你的數(shù)據(jù)圖像,很多情況下,只要對(duì)數(shù)據(jù)進(jìn)行可視化就能找到答案。例如,如果你的問題是“波士頓明年7月4號(hào)的最高氣溫是多少?”,那么只要看一下過去100年間波士頓每年7月4日最高氣溫的直方圖就基本可以解決問題了。
第二種方法技術(shù)含量更高一些。如果你是因?yàn)閿?shù)據(jù)集太小而得不到結(jié)果,你可以考慮進(jìn)行優(yōu)化。機(jī)器學(xué)習(xí)基于弱先驗(yàn)假設(shè),也就是說,機(jī)器學(xué)習(xí)對(duì)數(shù)據(jù)結(jié)構(gòu)做一些較弱的假設(shè)。
這種方法的優(yōu)點(diǎn)在于使用算法之前不需要對(duì)數(shù)據(jù)有太多了解,它能夠訓(xùn)練出一些大致的模型,而缺點(diǎn)在于需要大量數(shù)據(jù)才能獲得一個(gè)可信的答案。一個(gè)替代方法是根據(jù)你對(duì)數(shù)據(jù)的了解,對(duì)數(shù)據(jù)做更多的假設(shè)。例如,如果你想預(yù)測(cè)一個(gè)物體的飛行軌跡,你可以收集大量物體自由落體的數(shù)據(jù),用它們訓(xùn)練機(jī)器學(xué)習(xí)算法。你其實(shí)還可以用你了解的牛頓力學(xué)知識(shí)來制作一個(gè)更豐富的模型。這樣,只需要一個(gè)包括位置和速度的數(shù)據(jù)點(diǎn)就可以預(yù)計(jì)這個(gè)物體在未來任何一點(diǎn)的位置和速度。這種方法的風(fēng)險(xiǎn)在于你的假設(shè)可能不完全正確,但優(yōu)點(diǎn)是你不需要大量的數(shù)據(jù)就能完成任務(wù)。
如果這些辦法對(duì)你都不適用,也許意味著你需要收集更多的數(shù)據(jù),或者重新思考一下你測(cè)量的數(shù)據(jù)?;氐降谝徊?,獲取更多數(shù)據(jù)吧 ~
7 .應(yīng)用答案
不管你如何優(yōu)雅地用數(shù)據(jù)回答提出的問題,你的工作直到有用戶使用才算完成。將你的結(jié)果以某種形式呈現(xiàn)給用戶,用戶可以用它做決策、完成任務(wù)或進(jìn)行學(xué)習(xí)。
展示的方式有很多:你可以將結(jié)果放在 web 頁(yè)面上,把你發(fā)現(xiàn)的最有用的信息呈現(xiàn)在 PDF上,可以在 GitHub 上分享你的代碼,可以把結(jié)論做成視頻分享給你的商業(yè)客戶,可以制作美觀的數(shù)據(jù)可視化成果發(fā)在 Twitter 上,等等。不管采用哪種方式,要讓其他人使用你的成果。
森林中的一棵樹倒下,即使附近沒有人聽見,仍然會(huì)有響聲,但如果你建造了一個(gè)精良的模型卻沒人用,你肯定不會(huì)得到贊譽(yù)。
那么就從頭開始吧,回到第一步,獲取更多的數(shù)據(jù)!
第1章 哈希表
1.1 哈希表的基本原理
1.2 哈希表的基本概念
1.3 哈希函數(shù)的構(gòu)造
1.4 哈希表的基本操作
1.5 沖突的處理
1.6 哈希表的性能分析
1.7 哈希表的應(yīng)用舉例
1.8 本章習(xí)題
第2章 樹與二叉樹
2.1 樹
2.1.1 樹的存儲(chǔ)結(jié)構(gòu)
2.1.2 樹的遍歷
2.2 二叉樹
2.2.1 普通樹轉(zhuǎn)換成二叉樹
第1章 哈希表 1.1 哈希表的基本原理 1.2 哈希表的基本概念 1.3 哈希函數(shù)的構(gòu)造 1.4 哈希表的基本操作 1.5 沖突的處理 1.6 哈希表的性能分析 1.7 哈希表的應(yīng)用舉例 1.8 本章習(xí)題
第2章 樹與二叉樹 2.1 樹 2.1.1 樹的存儲(chǔ)結(jié)構(gòu) 2.1.2 樹的遍歷 2.2 二叉樹 2.2.1 普通樹轉(zhuǎn)換成二叉樹 2.2.2 二叉樹的遍歷 2.2.3 二叉樹的其他操作 2.2.4 二叉樹的形態(tài) 2.3 二叉排序樹 2.4 哈夫曼二叉樹 2.5 字典樹 2.6 本章習(xí)題
第3章 優(yōu)先隊(duì)列與二叉堆 3.1 優(yōu)先隊(duì)列 3.2 二叉堆 3.2.1 Put操作 3.2.2 Get操作 3.3 可并堆 3.3.1 左偏樹的定義 3.3.2 左偏樹的基本操作 3.4 本章習(xí)題
第4章 并查集 4.1 并查集的主要操作 4.2 并查集的實(shí)現(xiàn) 4.2.1 并查集的數(shù)組實(shí)現(xiàn) 4.2.2 并查集的鏈表實(shí)現(xiàn) 4.2.3 并查集的樹實(shí)現(xiàn) 4.3 并查集的應(yīng)用舉例 4.4 本章習(xí)題
第5章 線段樹 5.1 線段樹的應(yīng)用背景 5.2 線段樹的初步實(shí)現(xiàn) 5.2.1 線段樹的結(jié)構(gòu) 5.2.2 線段樹的性質(zhì) 5.2.3 線段樹的存儲(chǔ) 5.2.4 線段樹的常用操作 5.2.4.1 線段樹的構(gòu)造 5.2.4.2 線段樹的查詢 5.2.4.3 線段樹的修改 5.2.4.4 線段樹的延遲修改 5.3 線段樹在一些經(jīng)典問題中的應(yīng)用 5.3.1 逆序?qū)栴} 5.3.2 矩形覆蓋問題 5.4 線段樹的擴(kuò)展 5.4.1 用線段樹優(yōu)化動(dòng)態(tài)規(guī)劃 5.4.2 將線段樹擴(kuò)展到高維 5.4.3 線段樹與平衡樹的結(jié)合 5.5 線段樹與其他數(shù)據(jù)結(jié)構(gòu)的比較 5.6 線段樹的應(yīng)用舉例 5.7 本章習(xí)題
第6章 樹狀數(shù)組 6.1 樹狀數(shù)組的問題模型 6.2 樹狀數(shù)組的基本思想 6.3 樹狀數(shù)組的實(shí)現(xiàn) 6.3.1 子集的劃分方法 6.3.2 查詢前綴和 6.3.3 修改子集和 6.4 樹狀數(shù)組的常用技巧 6.4.1 查詢?nèi)我鈪^(qū)間和 6.4.2 利用SHill數(shù)組求出原數(shù)組a的某個(gè)元素值 6.4.3 找到某個(gè)前綴和對(duì)應(yīng)的前綴下標(biāo)index 6.4.4 成倍擴(kuò)張/縮減 6.4.5 初始化樹狀數(shù)組 6.5 樹狀數(shù)組與線段樹的比較 6.6 樹狀數(shù)組擴(kuò)展到高維的情形 6.7 樹狀數(shù)組的應(yīng)用舉例 6.8 本章習(xí)題
第7章 伸展樹 7.1 伸展樹的主要操作 7.1.1 伸展操作 7.1.2 伸展樹的基本操作 7.2 伸展樹的算法實(shí)現(xiàn) 7.3 伸展樹的效率分析 7.4 伸展樹的應(yīng)用舉例 7.5 本章習(xí)題
第8章 Treap 8.1 Treap的基本操作 8.2 Treap的算法實(shí)現(xiàn) 8.3 Treap的應(yīng)用舉例 8.4 本章習(xí)題
第9章 平衡樹 9.1 AVL樹 9.2 紅-黑樹 9.3 SBT 9.3.1 SBT的基本操作 9.3.2 SBT的效率分析 9.3.3 SBT的算法實(shí)現(xiàn) 9.4 本章習(xí)題
第10章 塊狀鏈表與塊狀樹 10.1 塊狀鏈表的基本思想 10.2 塊狀鏈表的基本操作 10.3 塊狀鏈表的擴(kuò)張 10.3.1 維護(hù)區(qū)間和以及區(qū)間最值 10.3.2 維護(hù)局部數(shù)據(jù)有序化 10.3.3 維護(hù)區(qū)間翻轉(zhuǎn) 10.4 塊狀鏈表與其他數(shù)據(jù)結(jié)構(gòu)的比較 10.5 分塊思想在樹上的應(yīng)用--塊狀樹 10.6 塊狀鏈表的應(yīng)用舉例 10.7 本章習(xí)題
第11章 后綴樹與后綴數(shù)組 11.1 后綴樹的簡(jiǎn)介 11.2 后綴樹的定義 11.3 后綴樹的構(gòu)建 11.3.1 后綴樹的樸素構(gòu)建算法 11.3.2 后綴樹的線性時(shí)間構(gòu)建算法 11.3.2.1 隱式樹的樸素構(gòu)建 11.3.2.2 擴(kuò)展規(guī)則約定 11.3.2.3 后綴鏈加速 11.3.2.4 進(jìn)一步加速 11.3.2.5 后綴樹拓展到多串的形式 11.3.2.6 代碼實(shí)現(xiàn) 11.3.2.7 相關(guān)證明 11.4 后綴樹的應(yīng)用 11.4.1 字符串(集合)的精確匹配 11.4.1.1 情形一 11.4.1.2 情形二 11.4.1.3 情形三 11.4.1.4 情形四 11.4.2 公共子串問題 11.4.2.1 情形五 11.4.2.2 情形六 11.4.2.3 情形七 11.4.2.4 情形八 11.4.2.5 情形九 11.4.3 重復(fù)子串問題 11.4.3.1 情形十 11.4.3.2 情形十一 11.4.3.3 情形十二 11.5 后綴數(shù)組的簡(jiǎn)介 11.6 后綴數(shù)組的定義 11.7 后綴數(shù)組的構(gòu)建 11.7.1 一種直接的構(gòu)建算法 11.7.2 倍增算法 11.7.2.1 倍增算法描述 11.7.2.2 倍增算法代碼 11.7.3 由后綴樹得到后綴數(shù)組 11.7.4 DC3算法和DC算法 11.7.4.1 DC3算法 11.7.4.2 DC算法 11.8 LCP的引入 11.9 后綴數(shù)組的應(yīng)用 11.9.1 后綴排序的直接應(yīng)用 11.9.1.1 Burrows-Wheeler變換 11.9.1.2 多模式串的匹配 11.9.2 通過引入LCP優(yōu)化 11.9.2.1 多模式串的匹配 11.9.2.2 重復(fù)子串問題 11.9.2.3 最長(zhǎng)回文子串 11.9.2.4 最長(zhǎng)公共子串 11.9.3 后綴數(shù)組的應(yīng)用舉例 11.10 本章習(xí)題
第12章 樹鏈剖分與動(dòng)態(tài)樹 12.1 樹鏈剖分的思想和性質(zhì) 12.2 樹鏈剖分的實(shí)現(xiàn)及應(yīng)用 12.3 動(dòng)態(tài)樹的初探 12.3.1 動(dòng)態(tài)樹的常用功能 12.3.2 動(dòng)態(tài)樹的簡(jiǎn)單情形 12.4 動(dòng)態(tài)樹的實(shí)現(xiàn) 12.4.1 動(dòng)態(tài)樹的基本操作及其實(shí)現(xiàn) 12.4.1.1 動(dòng)態(tài)樹的問題模型 12.4.1.2 用Splay維護(hù)實(shí)路徑 12.4.2 動(dòng)態(tài)樹操作的時(shí)間復(fù)雜度分析 12.4.2.1 動(dòng)態(tài)樹操作的次數(shù) 12.4.2.2 Splay操作的平攤時(shí)間 12.5 動(dòng)態(tài)樹的經(jīng)典應(yīng)用 12.5.1 求最近公共祖先 12.5.2 并查集操作 12.5.3 求最大流 12.5.4 求生成樹 12.6 動(dòng)態(tài)樹的應(yīng)用舉例 12.7 本章習(xí)題
國(guó)家統(tǒng)計(jì)局5月18日發(fā)布了4月份70個(gè)大中城市住宅銷售價(jià)格統(tǒng)計(jì)數(shù)據(jù)。對(duì)此,國(guó)家統(tǒng)計(jì)局城市司高級(jí)統(tǒng)計(jì)師劉建偉進(jìn)行了解讀。
一、房?jī)r(jià)環(huán)比略有上漲,城市間仍呈分化局面。在3月底樓市新政出臺(tái)和傳統(tǒng)銷售旺季等多重因素疊加影響下,4月份70個(gè)大中城市新建商品住宅成交繼續(xù)回升,部分城市房?jī)r(jià)環(huán)比略有上漲。發(fā)布的數(shù)據(jù)顯示,4月份70個(gè)大中城市新建商品住宅和二手住宅價(jià)格環(huán)比上漲的城市分別有18個(gè)和28個(gè),分別比上月增加了6個(gè)和16個(gè);持平和下降的城市個(gè)數(shù)均有所減少。初步測(cè)算,4月份70個(gè)大中城市新建商品住宅價(jià)格環(huán)比綜合平均上漲0.3%。
分城市看,分化仍然較為明顯,房?jī)r(jià)上漲主要集中在一線城市和少數(shù)二線城市。4月份北京、上海、廣州、深圳4個(gè)一線城市新建商品住宅和二手住宅價(jià)格環(huán)比均出現(xiàn)上漲,最高漲幅分別為1.8%和2.4%,少數(shù)二線城市房?jī)r(jià)出現(xiàn)上漲,絕大部分三線城市房?jī)r(jià)仍然下降。據(jù)測(cè)算,4月份一線城市新建商品住宅價(jià)格環(huán)比平均上漲1%,二、三線城市新建商品住宅價(jià)格環(huán)比平均分別下降0.1%和0.3%。
二、房?jī)r(jià)同比降幅收窄。絕大部分城市房?jī)r(jià)同比仍然下降,但隨著部分城市房?jī)r(jià)環(huán)比上漲,4月份房?jī)r(jià)同比降幅總體略有收窄。其中,新建商品住宅價(jià)格降幅比上月收窄的城市有15個(gè),比上月增加12個(gè);二手住宅價(jià)格降幅比上月收窄的城市有22個(gè),比上月增加11個(gè)。