大數(shù)據(jù)技術(shù)基礎(chǔ)教學(xué)課件第六章-大數(shù)據(jù)決策支持_第1頁
大數(shù)據(jù)技術(shù)基礎(chǔ)教學(xué)課件第六章-大數(shù)據(jù)決策支持_第2頁
大數(shù)據(jù)技術(shù)基礎(chǔ)教學(xué)課件第六章-大數(shù)據(jù)決策支持_第3頁
大數(shù)據(jù)技術(shù)基礎(chǔ)教學(xué)課件第六章-大數(shù)據(jù)決策支持_第4頁
大數(shù)據(jù)技術(shù)基礎(chǔ)教學(xué)課件第六章-大數(shù)據(jù)決策支持_第5頁
已閱讀5頁,還剩154頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六章大數(shù)據(jù)決策支持本章目錄6.1大數(shù)據(jù)決策概述6.2可視化分析方法6.3機(jī)器學(xué)習(xí)方法6.4計(jì)量經(jīng)濟(jì)學(xué)方法大數(shù)據(jù)決策概述1大數(shù)據(jù)是對(duì)事物客觀表象和演化規(guī)律的抽象表達(dá),其動(dòng)態(tài)性和增量性是對(duì)事物狀態(tài)的持續(xù)反映。人們?cè)跊Q策過程中的每一步行動(dòng)都將影響事物的發(fā)展進(jìn)程,大數(shù)據(jù)可以全程反應(yīng)每一步?jīng)Q策的結(jié)果和影響。此外,對(duì)于決策問題的描述以及決策問題的求解策略都要隨著動(dòng)態(tài)數(shù)據(jù)而及時(shí)調(diào)整。通過面向大數(shù)據(jù)的增量式學(xué)習(xí)方法,可以實(shí)現(xiàn)知識(shí)的動(dòng)態(tài)演化和有效積累,進(jìn)而反饋到?jīng)Q策執(zhí)行中。數(shù)據(jù)環(huán)境下決策分析更加注重?cái)?shù)據(jù)的全方位性、生產(chǎn)流程的系統(tǒng)性、業(yè)務(wù)環(huán)節(jié)的交互、多目標(biāo)問題的協(xié)同性。決策者不能局限于單一問題的決策,需要優(yōu)先考慮全局性的整體決策。大數(shù)據(jù)決策的不確定性來源于三個(gè)方面。一是決策信息不完整、不確定會(huì)導(dǎo)致決策的不確定性。二是決策信息分析能力不足會(huì)導(dǎo)致決策不確定。三是決策問題過于復(fù)雜而難以建模導(dǎo)致的不確定性。(2)大數(shù)據(jù)決策的全局性(3)大數(shù)據(jù)決策的不確定性(1)大數(shù)據(jù)決策的動(dòng)態(tài)性6.1.1大數(shù)據(jù)決策的特點(diǎn)12從因果分析向相關(guān)分析轉(zhuǎn)變大數(shù)據(jù)對(duì)決策最直接的影響就是對(duì)決策思維方式的影響。由于大數(shù)據(jù)要分析與某事物相關(guān)的所有數(shù)據(jù),即“樣本=總體”,而不是依靠分析少量的樣本數(shù)據(jù)。這勢(shì)必使我們的思維方式發(fā)生轉(zhuǎn)變,就是放棄對(duì)因果關(guān)系的渴求,取而代之的是關(guān)注相關(guān)關(guān)系。最終迫使我們接受數(shù)據(jù)關(guān)系的復(fù)雜性和數(shù)據(jù)結(jié)構(gòu)的多樣性,而不再追求數(shù)據(jù)的精確性。也就是說只需知道“是什么”,而不需要知道“為什么”決策向滿足個(gè)性化需求轉(zhuǎn)變?cè)诖髷?shù)據(jù)背景下,產(chǎn)品和服務(wù)的提供以及價(jià)值的創(chuàng)造將更加貼近于社會(huì)大眾的個(gè)性化需求。應(yīng)用大數(shù)據(jù)分析工具,可以對(duì)用戶進(jìn)行行為畫像,并對(duì)用戶進(jìn)行精準(zhǔn)的營(yíng)銷或干預(yù),滿足用戶的個(gè)性化需求,這將是政府和企業(yè)提升用戶價(jià)值和增強(qiáng)服務(wù)能力的的有效手段。以市場(chǎng)營(yíng)銷為例,企業(yè)可以通過輿情分析、情感挖掘等以用戶為中心的數(shù)據(jù)驅(qū)動(dòng)方法,精準(zhǔn)挖掘消費(fèi)者的興趣與偏好,做出有針對(duì)性的個(gè)性化需求預(yù)測(cè),為用戶提供個(gè)性化的產(chǎn)品和服務(wù)。6.1.2大數(shù)據(jù)決策的趨勢(shì)可視化分析方法2在科學(xué)計(jì)算以及商業(yè)智能(BusinessIntelligence,簡(jiǎn)稱BI)領(lǐng)域,數(shù)據(jù)可視化一直是重要的方法和手段。大數(shù)據(jù)可視化旨在利用計(jì)算機(jī)自動(dòng)化分析能力的同時(shí),充分挖掘人對(duì)于可視化信息的認(rèn)知能力優(yōu)勢(shì),將人、機(jī)進(jìn)行有機(jī)融合,借助人機(jī)交互式分析方法和交互技術(shù),包括圖形圖像處理、計(jì)算機(jī)視覺及用戶界面,通過表達(dá)、建模以及對(duì)立體、表面、屬性及動(dòng)畫等圖形化手段,幫助人們更好地理解和利用數(shù)據(jù),找出大數(shù)據(jù)背后隱藏的信息并轉(zhuǎn)化知識(shí)以及規(guī)律。大數(shù)據(jù)可視化已經(jīng)在用戶畫像、社交網(wǎng)絡(luò)分析、地理信息系統(tǒng)等領(lǐng)域得到廣泛應(yīng)用。例如滴滴利用滴滴出行平臺(tái)海量軌跡、起訖點(diǎn)(起點(diǎn)和終點(diǎn))等出行數(shù)據(jù),對(duì)全國(guó)重點(diǎn)城市交通運(yùn)行狀況和信號(hào)燈路口自適應(yīng)控制狀況進(jìn)行了客觀精細(xì)的可視化呈現(xiàn)。6.2.1大數(shù)據(jù)可視化的概念12首先數(shù)據(jù)可視化仍并未深入地結(jié)合人機(jī)交互的理論和技術(shù),因此難以全面地支持可視分析的人機(jī)交互過程。數(shù)據(jù)規(guī)模不斷變大、數(shù)據(jù)維度更高、非結(jié)構(gòu)化數(shù)據(jù)層出不窮,大數(shù)據(jù)本身的特點(diǎn)也對(duì)數(shù)據(jù)可視化提出了更為迫切的需求。在大數(shù)據(jù)時(shí)代下,傳統(tǒng)的數(shù)據(jù)可視化技術(shù),例如折線圖、餅狀圖等已很難滿足需求:大數(shù)據(jù)的數(shù)據(jù)集體量過大,開發(fā)中難以找準(zhǔn)最具有意義的圖像效果來展示。大數(shù)據(jù)使用多種數(shù)據(jù)源,難以從多源異構(gòu)數(shù)據(jù)中找出統(tǒng)一的范式來展示。如何為用戶創(chuàng)建有吸引力的信息圖和熱點(diǎn)圖,如何為決策提供建議方案并創(chuàng)造商業(yè)價(jià)值。多源質(zhì)量體量大數(shù)據(jù)可視化技術(shù)面臨的挑戰(zhàn)主要體現(xiàn)在以下四個(gè)方面:高速面對(duì)實(shí)際應(yīng)用中海量的實(shí)時(shí)數(shù)據(jù)流時(shí)如何高速地生成可視化方案。

大數(shù)據(jù)可視化的實(shí)施是一系列數(shù)據(jù)的轉(zhuǎn)換過程。首先用戶得到原始數(shù)據(jù),通過對(duì)原始數(shù)據(jù)標(biāo)準(zhǔn)化、結(jié)構(gòu)化的處理,把它們整理成數(shù)據(jù)表;將這些數(shù)值轉(zhuǎn)換成視覺結(jié)構(gòu)(包括形狀、位置、尺寸、值、方向、色彩、紋理等),通過視覺的方式把它表現(xiàn)出來;將視覺結(jié)構(gòu)進(jìn)行組合,把它轉(zhuǎn)換成圖形傳遞給用戶,用戶通過人機(jī)交互的方式進(jìn)行反向轉(zhuǎn)換,去更好地了解數(shù)據(jù)背后有什么問題和規(guī)律。大數(shù)據(jù)可視化的實(shí)施步驟主要為四步:需求分析;建設(shè)數(shù)據(jù)倉庫/數(shù)據(jù)集市模型;數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、加載(ETL);建立可視化分析場(chǎng)景。6.2.2實(shí)施步驟1.需求分析需求分析是大數(shù)據(jù)可視化項(xiàng)目開展的前提,要描述項(xiàng)目背景與目的、可視化目標(biāo)、可視化范圍、業(yè)務(wù)需求和功能需求等,明確實(shí)施單位對(duì)可視化的期望和需求。需求分析的內(nèi)容包括需要分析的主題、各主題可能查看的角度、企業(yè)各方面的規(guī)律、用戶的需求等。2.建設(shè)數(shù)據(jù)倉庫/數(shù)據(jù)集市模型數(shù)據(jù)倉庫/數(shù)據(jù)集市的模型是在需求分析的基礎(chǔ)上建立起來的提供數(shù)據(jù)支持的戰(zhàn)略集合。數(shù)據(jù)倉庫/數(shù)據(jù)集市的建模除了數(shù)據(jù)庫的ER(實(shí)體-聯(lián)系)建模和關(guān)系建模外,還包括專門針對(duì)數(shù)據(jù)倉庫的維度建模。維度建模的關(guān)鍵在于明確哪些維度對(duì)主題分析有用,如何使用現(xiàn)有數(shù)據(jù)生成維表,選取適當(dāng)?shù)闹笜?biāo)來“度量”主題,以及如何使用現(xiàn)有數(shù)據(jù)生成事實(shí)表。3.數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、加載(ETL)數(shù)據(jù)抽取是指將數(shù)據(jù)倉庫/集市需要的數(shù)據(jù)從各個(gè)業(yè)務(wù)系統(tǒng)中抽離出來,因?yàn)槊總€(gè)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)質(zhì)量不同,所以要對(duì)每個(gè)數(shù)據(jù)源建立不同的抽取程序,數(shù)據(jù)的抽取需要使用接口將源數(shù)據(jù)傳送到清洗和轉(zhuǎn)換階段。數(shù)據(jù)清洗的目的是保證抽取的源數(shù)據(jù)的質(zhì)量符合數(shù)據(jù)倉庫/集市的要求并保持?jǐn)?shù)據(jù)的一致性。數(shù)據(jù)轉(zhuǎn)換是整個(gè)ETL過程的核心部分,主要是對(duì)源數(shù)據(jù)進(jìn)行計(jì)算和放大。數(shù)據(jù)加載是按照數(shù)據(jù)倉庫/集市模型中各個(gè)實(shí)體之間的關(guān)系將數(shù)據(jù)加載到目標(biāo)表中。4.建立可視化場(chǎng)景建立可視化場(chǎng)景是對(duì)數(shù)據(jù)倉庫/集市中的數(shù)據(jù)進(jìn)行分析處理的成果,用戶能夠借此從多個(gè)角度查看企業(yè)/單位的運(yùn)營(yíng)狀況,按照不同的主題和方式探查組織業(yè)務(wù)內(nèi)容的核心數(shù)據(jù),從而作出更精準(zhǔn)的預(yù)測(cè)和判斷。

基于可視化信息對(duì)象的分類,大數(shù)據(jù)可視化方法包括文本可視化、網(wǎng)絡(luò)可視化、時(shí)空數(shù)據(jù)可視化和多維數(shù)據(jù)可視化等。6.2.3主要方法1.

文本可視化文本信息是大數(shù)據(jù)時(shí)代非結(jié)構(gòu)化數(shù)據(jù)類型的典型代表,是互聯(lián)網(wǎng)中最主要的信息類型,也是物聯(lián)網(wǎng)各種傳感器采集后生成的主要信息類型,人們?nèi)粘9ぷ骱蜕钪薪佑|最多的電子文檔也是以文本形式存在。文本可視化的意義在于能夠?qū)⑽谋局刑N(yùn)含的語義特征(例如詞頻與重要度、邏輯結(jié)構(gòu)、主題聚類、動(dòng)態(tài)演化規(guī)律等)直觀地展示出來。如圖6-1所示,典型的文本可視化技術(shù)是標(biāo)簽云(WordClouds或

TagClouds)詞云圖。它將關(guān)鍵詞根據(jù)詞頻或其他規(guī)則進(jìn)行排序,按照一定規(guī)律進(jìn)行布局排列,用大小、顏色、字體等圖形屬性對(duì)關(guān)鍵詞進(jìn)行可視化。目前,大多數(shù)標(biāo)簽云用字體大小代表該關(guān)鍵詞的重要性,在互聯(lián)網(wǎng)應(yīng)用中,多用于快速識(shí)別網(wǎng)絡(luò)媒體的主題熱度。圖6-1標(biāo)簽云此外,文本中通常蘊(yùn)含著邏輯層次結(jié)構(gòu)和一定的敘述模式,為了對(duì)結(jié)構(gòu)語義進(jìn)行可視化,研究者提出了文本的語義結(jié)構(gòu)可視化技術(shù),以便于對(duì)聚類中的關(guān)系予以展示。如圖6-2所示,DocuBurst以放射狀層次圓環(huán)的形式展示文本結(jié)構(gòu)。這種結(jié)構(gòu)的圖常被稱為旭日?qǐng)D,它用環(huán)形布局巧妙地展示了文本語義結(jié)構(gòu)的層級(jí)關(guān)系,外圈的單詞是內(nèi)圈單詞的下一層,用顏色的深淺來體現(xiàn)詞頻的高低。圖6-2

圓環(huán)文本語義結(jié)構(gòu)樹(旭日?qǐng)D)2.

網(wǎng)絡(luò)(圖)可視化網(wǎng)絡(luò)關(guān)聯(lián)關(guān)系是大數(shù)據(jù)中最常見的關(guān)系,如互聯(lián)網(wǎng)與社交網(wǎng)絡(luò)。層次結(jié)構(gòu)數(shù)據(jù)也屬于網(wǎng)絡(luò)信息的一種特殊情況。網(wǎng)絡(luò)可視化的主要任務(wù)是基于網(wǎng)絡(luò)節(jié)點(diǎn)和連接的拓?fù)潢P(guān)系,直觀地展示網(wǎng)絡(luò)中潛在的模式關(guān)系,例如節(jié)點(diǎn)或邊聚集性。由于大數(shù)據(jù)相關(guān)的網(wǎng)絡(luò)往往具有動(dòng)態(tài)演化性,因此,如何在靜態(tài)的網(wǎng)絡(luò)拓?fù)潢P(guān)系可視化基礎(chǔ)上對(duì)動(dòng)態(tài)網(wǎng)絡(luò)的特征進(jìn)行可視化,也是重要的研究?jī)?nèi)容。傳統(tǒng)的網(wǎng)絡(luò)可視化技術(shù)有H狀樹(H-Tree)、圓錐樹(ConeTree)、氣球圖(BalloonView)、放射圖(RadialGraph)、三維放射圖(3DRadial)、雙曲樹(HyperbolicTree)、樹圖(Treemaps)等技術(shù)。然而對(duì)于具有海量節(jié)點(diǎn)和邊的大規(guī)模網(wǎng)絡(luò),隨著節(jié)點(diǎn)和邊的數(shù)目不斷增多,在規(guī)模達(dá)到百萬以上時(shí),可視化界面中會(huì)出現(xiàn)節(jié)點(diǎn)和邊大量聚集、重疊和覆蓋問題,使得分析者難以辨識(shí)可視化效果。圖簡(jiǎn)化(GraphSimplification)方法是處理此類大規(guī)模圖可視化的主要手段,有兩種方法:一種是聚集處理網(wǎng)絡(luò)中的邊,例如基于邊捆綁(EdgeBundling)的方法,使得復(fù)雜網(wǎng)絡(luò)可視化效果更為清晰(如圖6-3所示);另一種是通過層次聚類與多尺度交互,將大規(guī)模圖轉(zhuǎn)化為層次化樹結(jié)構(gòu),并通過多尺度交互來對(duì)不同層次的圖進(jìn)行可視化。如ASK-Graphview能夠?qū)ηf級(jí)別的點(diǎn)邊圖進(jìn)行分層可視化。這些方法為大數(shù)據(jù)時(shí)代大規(guī)模圖可視化提供了有力的支持。

圖6-3

基于邊捆綁的大規(guī)模密集圖可視化3.

時(shí)空數(shù)據(jù)可視化時(shí)空數(shù)據(jù)是指帶有地理位置與時(shí)間標(biāo)簽的數(shù)據(jù)。傳感器與移動(dòng)終端的迅速普及,使得時(shí)空數(shù)據(jù)成為大數(shù)據(jù)時(shí)代典型的數(shù)據(jù)類型。時(shí)空數(shù)據(jù)可視化與地理制圖學(xué)相結(jié)合,重點(diǎn)對(duì)時(shí)間與空間維度以及與之相關(guān)的信息對(duì)象屬性建立可視化表征,對(duì)與時(shí)間和空間密切相關(guān)的模式及規(guī)律進(jìn)行展示。大數(shù)據(jù)環(huán)境下時(shí)空數(shù)據(jù)的高維性、實(shí)時(shí)性等特點(diǎn),也是時(shí)空數(shù)據(jù)可視化的重點(diǎn)。時(shí)空數(shù)據(jù)可視化的重點(diǎn),就是要反映信息對(duì)象隨時(shí)間進(jìn)展與空間位置所發(fā)生的行為變化。流式地圖Flowmap是一種典型的方法,可將時(shí)間事件流與地圖進(jìn)行融合。圖6-4所示為使用Flowmap分別對(duì)北京市公交站牌商業(yè)價(jià)值可視化的例子。當(dāng)數(shù)據(jù)規(guī)模不斷增大時(shí),傳統(tǒng)Flowmap面臨大量的圖元交叉、覆蓋等問題,這也是大數(shù)據(jù)環(huán)境下時(shí)空數(shù)據(jù)可視化的主要問題之一。圖6-4流式地圖4.

多維數(shù)據(jù)可視化多維數(shù)據(jù)指的是具有多個(gè)維度屬性的數(shù)據(jù)變量,廣泛存在于基于傳統(tǒng)關(guān)系數(shù)據(jù)庫以及數(shù)據(jù)倉庫的應(yīng)用中,如企業(yè)信息系統(tǒng)以及商業(yè)智能系統(tǒng)。多維數(shù)據(jù)可視化的目標(biāo)是探索多維數(shù)據(jù)項(xiàng)的分布規(guī)律和模式,并揭示不同維度屬性之間的隱含關(guān)系。多維可視化的基本方法包括基于幾何圖形、基于圖標(biāo)、基于像素、基于層次結(jié)構(gòu)、基于圖結(jié)構(gòu)以及混合方法。其中,基于幾何圖形的多維可視化方法是近年來主要的研究方向。散點(diǎn)圖(Scatterplot)是最為常用的多維可視化方法。二維散點(diǎn)圖(圖6-5a)將多個(gè)維度中的兩個(gè)維度屬性值集合映射至兩條軸上,在二維軸確定的平面內(nèi)通過圖形標(biāo)記的不同視覺元素來反映其他維度屬性值,例如,可通過不同形狀、顏色、尺寸等來代表連續(xù)或離散的屬性值。二維散點(diǎn)圖使用二維坐標(biāo)系,僅能繪制兩個(gè)變量,它可以適當(dāng)?shù)財(cái)U(kuò)展,以顯示更多的信息或者推廣到三維數(shù)據(jù),如圖6-5右圖所示。散點(diǎn)圖適合對(duì)有限數(shù)目的較為重要的維度進(jìn)行可視化,通常不適于需要對(duì)所有維度同時(shí)進(jìn)行展示的情況。大數(shù)據(jù)背景下,除了數(shù)據(jù)規(guī)模擴(kuò)張帶來的挑戰(zhàn)外,數(shù)據(jù)高維問題也是研究的重點(diǎn)。圖6-5二維和三維散點(diǎn)圖a)二維散點(diǎn)圖b)三維散點(diǎn)圖平行坐標(biāo)(ParallelCoordinates)是應(yīng)用最為廣泛的一種多維可視化技術(shù),將維度與坐標(biāo)軸建立映射,在多個(gè)平行軸之間以直線或曲線映射表示多維信息。圖6-6所示為利用機(jī)器學(xué)習(xí)鳶尾花數(shù)據(jù)集構(gòu)造的平行坐標(biāo)圖。近年來,研究者將平行坐標(biāo)與散點(diǎn)圖等其他可視化技術(shù)進(jìn)行集成,提出了平行坐標(biāo)散點(diǎn)圖(ParallelCoordinatePlots,PCP),將散點(diǎn)圖集成在平行坐標(biāo)中,支持分析者從多個(gè)角度同時(shí)使用多種可視化技術(shù)進(jìn)行分析。圖6-6平行坐標(biāo)圖

大數(shù)據(jù)可視化的常用工具主要包括Tableau、Echart、D3、Three.js等。數(shù)據(jù)可視化的基本層級(jí)包括數(shù)據(jù)統(tǒng)計(jì)圖表化、數(shù)據(jù)結(jié)果展示化和數(shù)據(jù)分析可視化。Tableau側(cè)重于數(shù)據(jù)分析可視化層級(jí),可以實(shí)時(shí)、動(dòng)態(tài)、人機(jī)交互地分析數(shù)據(jù),探索規(guī)律,查找問題。Echarts側(cè)重于數(shù)據(jù)統(tǒng)計(jì)圖表化層面,即使用傳統(tǒng)的統(tǒng)計(jì)性圖表來表示數(shù)據(jù),用戶可以通過其看到歷史數(shù)據(jù)的統(tǒng)計(jì)和解讀。D3側(cè)重于在數(shù)據(jù)結(jié)果展示層級(jí),可以產(chǎn)生多樣的圖形來展示多維度、交互性更強(qiáng)的數(shù)據(jù)。下面對(duì)這些工具進(jìn)行介紹。6.2.4常用工具1.

TableauTableau是一款用于數(shù)據(jù)可視分析的商業(yè)智能軟件,提供從連接到協(xié)作的整套功能。用戶可以基于軟件UI交互創(chuàng)建和分發(fā)交互式和可共享的儀表板,以圖形和圖表的形式描繪數(shù)據(jù)的趨勢(shì),變化和密度;它支持連接本地或云端數(shù)據(jù),關(guān)系數(shù)據(jù)源和大數(shù)據(jù)源來獲取及處理數(shù)據(jù)。軟件允許數(shù)據(jù)混合和實(shí)時(shí)協(xié)作、拖動(dòng)式交互式操作,實(shí)時(shí)、動(dòng)態(tài)地生成多種類型的圖表。Tableau獨(dú)特的特性是用戶可以通過簡(jiǎn)單的拖動(dòng)操作實(shí)現(xiàn)數(shù)據(jù)可視化。用戶不需要編寫任何復(fù)雜的腳本,任何理解業(yè)務(wù)問題的人都可以使用。Tableau允許多個(gè)數(shù)據(jù)庫的組合,可以幫助分析時(shí)段、維度和度量復(fù)雜的大數(shù)據(jù)。使用Tableau需要非常細(xì)致的規(guī)劃來創(chuàng)建良好的儀表板,以下是創(chuàng)建有效儀表板時(shí)應(yīng)該遵循的設(shè)計(jì)流程。它涉及定位數(shù)據(jù)并使用適當(dāng)類型的連接來讀取數(shù)據(jù)。包括從源數(shù)據(jù)中選擇所需的列進(jìn)行分析。這涉及將所需的可視化方法(如特定圖表或圖形類型)應(yīng)用于正在分析的數(shù)據(jù)。應(yīng)用可視化技術(shù)選擇尺寸和度量連接到數(shù)據(jù)源以TableauDesktop10.3軟件自帶的超市示例數(shù)據(jù)為例,如圖6-7所示該數(shù)據(jù)中包含了訂單信息、區(qū)域信息、客戶信息、產(chǎn)品信息以及銷售利潤(rùn)信息。在導(dǎo)入超市數(shù)據(jù)后,Tableau會(huì)自動(dòng)把數(shù)據(jù)分為維度(可以理解為“定性”數(shù)據(jù),如地區(qū)、客戶、產(chǎn)品等)和度量(可以理解為“定量”數(shù)據(jù),如銷售額、利潤(rùn)等)。圖6-7超市數(shù)據(jù)示例圖6-8是客戶氣泡圖,每一個(gè)氣泡代表一個(gè)客戶,橫軸表示銷售額,縱軸表示利潤(rùn)。圖6-8客戶氣泡圖圖6-9所示是客戶交易量排行柱狀圖。橫軸是交易量,縱軸是客戶名稱。在儀表板中還可以根據(jù)地區(qū)、省份、年份進(jìn)行篩選,交互式地實(shí)現(xiàn)對(duì)每個(gè)客戶銷售情況的把控,以便對(duì)不同價(jià)值分類的客戶采取不同的策略。若想進(jìn)一步學(xué)習(xí)Tableau,可通過查閱Tableau官網(wǎng)的免費(fèi)教學(xué)資源以及可視化案例(/zh-cn/solutions/gallery),或參考BenJones的書籍《CommunicatigDatawithTableau》。圖6-9客戶交易量排行柱狀圖2.

EChartsEcharts由百度商業(yè)前端數(shù)據(jù)可視化團(tuán)隊(duì)研發(fā),是一個(gè)使用JavaScript實(shí)現(xiàn)的開源可視化庫,可以流暢地運(yùn)行在PC和移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE8~IE11,Chrome,F(xiàn)irefox,Safari等),底層依賴矢量圖形庫ZRender,提供直觀、交互豐富、可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。它具備以下特性。1)豐富的可視化類型ECharts提供了常規(guī)的統(tǒng)計(jì)圖表,用于地理數(shù)據(jù)可視化的地圖、熱力圖、線圖,用于關(guān)系數(shù)據(jù)可視化的關(guān)系圖、Treemap、旭日?qǐng)D,多維數(shù)據(jù)可視化的平行坐標(biāo),還有用于BI的漏斗圖,儀表盤,并且支持圖與圖之間的混搭。除了已經(jīng)內(nèi)置的包含了豐富功能的圖表,ECharts還可以自定義圖形,用戶只需要傳入一個(gè)renderItem函數(shù),就可以從數(shù)據(jù)映射到任何想要的圖形。2)多種數(shù)據(jù)格式無需轉(zhuǎn)換,可直接使用ECharts內(nèi)置的dataset屬性(4.0+)支持直接傳入包括二維表、key-value等多種格式的數(shù)據(jù)源,通過簡(jiǎn)單的設(shè)置,encode屬性就可以完成從數(shù)據(jù)到圖形的映射,省去了大部分場(chǎng)景下數(shù)據(jù)轉(zhuǎn)換的步驟,而且多個(gè)組件能夠共享一份數(shù)據(jù)而不用復(fù)制。3)千萬數(shù)據(jù)的前端展示通過增量渲染技術(shù)(支持用戶對(duì)數(shù)據(jù)分塊后加載,參見Echarts官網(wǎng)示例:/examples/zh/editor.html?c=lines-ny),配合各種細(xì)致的優(yōu)化,ECharts能夠展現(xiàn)千萬級(jí)的數(shù)據(jù)量,并且在這個(gè)數(shù)據(jù)量級(jí)依然能夠進(jìn)行流暢的縮放、平移等交互操作。ECharts同時(shí)提供了對(duì)流加載(支持交互的無阻塞,參見Echars官網(wǎng)實(shí)例:/examples/zh/editor.html?c=lines-airline)的支持,用戶可以使用WebSocket或者對(duì)數(shù)據(jù)分塊后加載,不需要漫長(zhǎng)地等待所有數(shù)據(jù)加載完再進(jìn)行繪制。4)移動(dòng)端優(yōu)化ECharts針對(duì)移動(dòng)端交互做了細(xì)致的優(yōu)化,例如,在移動(dòng)端小屏上支持用手指在坐標(biāo)系中進(jìn)行縮放、平移。細(xì)粒度的模塊化和打包機(jī)制可以讓ECharts在移動(dòng)端不會(huì)占用太多前端內(nèi)存。5)深度的交互式數(shù)據(jù)探索ECharts提供了圖例、視覺映射、數(shù)據(jù)區(qū)域縮放、tooltip、數(shù)據(jù)刷等交互組件,可以進(jìn)行多維度數(shù)據(jù)篩取、視圖縮放、細(xì)節(jié)展示等交互操作。6)動(dòng)態(tài)數(shù)據(jù)ECharts由數(shù)據(jù)驅(qū)動(dòng),數(shù)據(jù)的改變驅(qū)動(dòng)圖表展現(xiàn)的改變。因此動(dòng)態(tài)數(shù)據(jù)的實(shí)現(xiàn)也變得異常簡(jiǎn)單,只需要獲取數(shù)據(jù)并填入數(shù)據(jù),Echarts就會(huì)找到兩組數(shù)據(jù)之間的差異,然后通過合適的動(dòng)畫去表現(xiàn)數(shù)據(jù)的變化。配合timeline組件,還能夠在更高的時(shí)間維度上去表現(xiàn)數(shù)據(jù)的信息。圖6-10為ECharts的柱狀圖繪制的簡(jiǎn)單示例。若想進(jìn)一步學(xué)習(xí)ECharts,可通過查閱ECharts官網(wǎng)的免費(fèi)教學(xué)資源或W3CschoolEcharts教程(/echarts_tutorial/)來進(jìn)行。圖6-10ECharts柱狀圖繪制的簡(jiǎn)單示例3.

D3D3的全稱是Data-DrivenDocuments,是一個(gè)基于web標(biāo)準(zhǔn)的JavaScript庫,JavaScript文件的擴(kuò)展名通常為.js,故D3也被稱為D3.js。D3借助HTML、SVG和CSS來處理數(shù)據(jù),它結(jié)合了強(qiáng)大的可視化組件和數(shù)據(jù)驅(qū)動(dòng)的DOM操作方法,使用戶可以借助于目前瀏覽器的強(qiáng)大功能自由地對(duì)數(shù)據(jù)進(jìn)行可視化D3提供了各種簡(jiǎn)單易用的函數(shù),大大簡(jiǎn)化了JavaScript操作數(shù)據(jù)的難度。用戶只需要輸入簡(jiǎn)單的數(shù)據(jù),就能將數(shù)據(jù)轉(zhuǎn)換為豐富的圖表,幾乎可以滿足所有開發(fā)需求。由于它本質(zhì)上是JavaScript,所以用戶也可以通過用JavaScript實(shí)現(xiàn)所有D3的功能。D3不是一個(gè)框架,因此沒有操作上的限制。沒有框架的限制,用戶可以完全按照自己的意愿來表達(dá)數(shù)據(jù)。但D3代碼相對(duì)于之前介紹的幾種可視化工具來說較為復(fù)雜,需要用戶具有一定的JavaScript基礎(chǔ)。與ECharts相比,D3不會(huì)生成事先定義好的圖表,而是給用戶提供一些方法用來生成帶數(shù)據(jù)的標(biāo)簽,綁定可視化的屬性,如何制作圖表需要由用戶自己來定義。例如,用戶可以根據(jù)一組數(shù)據(jù)生成一個(gè)表格也可以生成一個(gè)可以過渡和交互的SVG圖形。另外,D3還提供了很多數(shù)據(jù)處理的方法,用戶可以通過這些方法生成優(yōu)化的數(shù)據(jù)模型??偟膩碚f,ECharts等可以提供更方便的圖表組件,滿足大部分的需求,而D3可以提供更豐富的自定義功能,適合定制化。D3的運(yùn)行速度很快,支持大數(shù)據(jù)集和動(dòng)態(tài)交互以及動(dòng)畫。D3用了一種與jQuery一樣的鏈?zhǔn)秸Z法,這樣通過“.”就把多個(gè)操作鏈接起來,在執(zhí)行邏輯上更加清晰。鏈?zhǔn)秸Z法的關(guān)鍵就是每個(gè)操作函數(shù)都有返回值,這個(gè)返回值可以執(zhí)行當(dāng)前操作的對(duì)象,也可以是其他對(duì)象,在D3中要注意,“.append(‘path’)”方法的返回值是新創(chuàng)建的元素對(duì)象,而不是調(diào)用這個(gè)方法的元素對(duì)象。d3-selection是D3.js的一系列選擇集API,這些方法都有返回值,有的返回的是當(dāng)前的選擇集,有的則返回新的選擇集。圖6-11所示為采用D3繪制的引力網(wǎng)絡(luò)(/mbostock/afecf1ce04644ad9036ca146d2084895),代碼參考MikeBostock的示例。若要進(jìn)一步學(xué)習(xí)D3,可通過查閱D3官網(wǎng)的免費(fèi)教學(xué)資源或項(xiàng)目文檔(/d3/d3/wiki/Tutorials)進(jìn)行。圖6-11D3引力網(wǎng)絡(luò)繪制的簡(jiǎn)單示例4.

Three.JSThree.js是一款開源的主流3D繪圖JS引擎,Three表示3D,js表示JavaScript。JavaScript是運(yùn)行在網(wǎng)頁端的腳本語言,Three.js和D3.JS一樣是運(yùn)行在瀏覽器上的。Three.js作為一款運(yùn)行在瀏覽器中的3D引擎,用戶可以用它創(chuàng)建各種三維場(chǎng)景,包括了攝影機(jī)、光影、材質(zhì)等各種對(duì)象。Three.js作為WebGL(WebGraphicsLibeary)的開源框架,簡(jiǎn)化了WebGL編程。WebGL是HTML5技術(shù)生態(tài)鏈中最為令人振奮的標(biāo)準(zhǔn)之一,把Web帶入3D的時(shí)代。WebGL是一種網(wǎng)頁3D繪圖協(xié)議,允許把JavaScript和OpenGLES2.0結(jié)合在一起,WebGL可以為HTML5Canvas提供硬件3D加速渲染,Web開發(fā)人員可以借助系統(tǒng)顯卡來在瀏覽器里更流暢地展示3D場(chǎng)景和模型,還能創(chuàng)建復(fù)雜的導(dǎo)航和數(shù)據(jù)視覺化。WebGL技術(shù)標(biāo)準(zhǔn)免去了開發(fā)網(wǎng)頁專用渲染插件的困擾,可用于創(chuàng)建具有復(fù)雜3D結(jié)構(gòu)的網(wǎng)站頁面及3D網(wǎng)頁游戲等。圖6-12所示為使用Three.js編寫的行星系圖。若想進(jìn)一步學(xué)習(xí)Three.js,可通過查閱Three.js官網(wǎng)的免費(fèi)教學(xué)資源或通過GitHub項(xiàng)目地址(/mrdoob/three.js/)進(jìn)行。圖6-12Three.js示例機(jī)器學(xué)習(xí)方法3機(jī)器學(xué)習(xí)(MachineLearning,ML)是近21世紀(jì)興起的一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等學(xué)科。機(jī)器學(xué)習(xí)的理論主要是設(shè)計(jì)和分析一些讓計(jì)算機(jī)可以自動(dòng)“學(xué)習(xí)”的算法,是一類從數(shù)據(jù)中自動(dòng)分析獲得規(guī)律,然后利用規(guī)律對(duì)未知數(shù)據(jù)進(jìn)行預(yù)測(cè)的方法。因?yàn)闄C(jī)器學(xué)習(xí)算法中涉及了大量的統(tǒng)計(jì)學(xué)理論,因此機(jī)器學(xué)習(xí)與統(tǒng)計(jì)推斷學(xué)聯(lián)系尤為密切,也被稱為統(tǒng)計(jì)學(xué)習(xí)理論。圖6-13TomMitchell對(duì)于機(jī)器學(xué)習(xí)的定義何謂“機(jī)器學(xué)習(xí)”,學(xué)界尚未有統(tǒng)一的定義。來自卡內(nèi)基梅隆大學(xué)的TomMitchell教授對(duì)于機(jī)器學(xué)習(xí)的定義是,對(duì)于某類任務(wù)T和性能度量P,如果一個(gè)計(jì)算機(jī)程序在T上以P衡量的性能隨著經(jīng)驗(yàn)E而自我完善,那么稱這個(gè)計(jì)算機(jī)程序在從經(jīng)驗(yàn)E中學(xué)習(xí),如圖6-13所示。在Goodfellow、Bengio和Courville合著的經(jīng)典圖書DeepLearning中,機(jī)器學(xué)習(xí)被定義為,其本質(zhì)上屬于應(yīng)用統(tǒng)計(jì)學(xué),更多地關(guān)注如何用計(jì)算機(jī)統(tǒng)計(jì)地估計(jì)復(fù)雜函數(shù),而不太關(guān)注如何為這些函數(shù)估算置信區(qū)間。6.3.1概述分類(Classification)回歸(Regression)數(shù)據(jù)集是記錄的集合,其中每一條記錄都是對(duì)一個(gè)事件或?qū)ο蟮拿枋?,稱為一個(gè)示例(Instance)或樣本。屬性反映事件或?qū)ο笤谀撤矫娴谋憩F(xiàn)或性質(zhì)的事項(xiàng),又稱為特征(Feature)。屬性上的取值稱為屬性值(AttributeValue)。屬性組成的空間,又稱為屬性空間或樣本空間。由于空間中的每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)坐標(biāo)向量,因此一個(gè)示例也稱為一個(gè)“特征向量”。訓(xùn)練是從數(shù)據(jù)中學(xué)得模型的過程,又稱為學(xué)習(xí)(Learning),這個(gè)過程通過執(zhí)行某個(gè)學(xué)習(xí)算法來完成。訓(xùn)練過程中使用的數(shù)據(jù)稱為“訓(xùn)練數(shù)據(jù)”(TrainingData),其中的每個(gè)樣本稱為一個(gè)訓(xùn)練樣本(TrainingSample)。訓(xùn)練樣本組成的集合是訓(xùn)練集。預(yù)測(cè)任務(wù)是希望通過對(duì)訓(xùn)練集進(jìn)行學(xué)習(xí),建立一個(gè)從輸入空間到輸出空間的映射。根據(jù)學(xué)習(xí)任務(wù),機(jī)器學(xué)習(xí)可分為分類和回歸,分類預(yù)測(cè)的是離散值,回歸預(yù)測(cè)的是連續(xù)值。訓(xùn)練(Training)訓(xùn)練集(TrainingSet)屬性(Attribute)屬性空間(AttributeSpace)特征向量(FeatureVector)數(shù)據(jù)集和(DataSet)樣本(Sample)機(jī)器學(xué)習(xí)的基本術(shù)語過擬合(Overfitting)欠擬合(Underfitting)測(cè)試是在學(xué)得模型后,使用模型進(jìn)行預(yù)測(cè)的過程。用來預(yù)測(cè)的樣本稱為"測(cè)試樣本"。將訓(xùn)練中的個(gè)體分成若干組,自動(dòng)形成的簇可能對(duì)應(yīng)一些潛在的概念劃分,這些概念劃分就是聚類。這些概念劃分都是事先不知道的,通常,訓(xùn)練樣本中也沒有標(biāo)記信息。錯(cuò)誤率是分類錯(cuò)誤的樣本數(shù)占樣本總數(shù)的比例,而相應(yīng)的精度則是分類正確的樣本數(shù)占樣本總數(shù)的的比例,其等于1-錯(cuò)誤率。當(dāng)學(xué)習(xí)器把訓(xùn)練樣本學(xué)得“太好”,很可能已經(jīng)把訓(xùn)練樣本自身的一些特點(diǎn)當(dāng)作了所有潛在樣本都會(huì)具有的一般性質(zhì),這樣就會(huì)導(dǎo)致泛化性能下降,這種現(xiàn)象在機(jī)器學(xué)習(xí)中稱為過擬合。與“過擬合”相對(duì)的是“欠擬合"(Underfitting),這是指對(duì)訓(xùn)練樣本的一般性質(zhì)尚未學(xué)好。錯(cuò)誤率(ErrorRate)精度(Accuracy)聚類(Clustering)測(cè)試(Testing)測(cè)試樣本(TestingSample)機(jī)器學(xué)習(xí)的基本術(shù)語根據(jù)訓(xùn)練數(shù)據(jù)是否擁有標(biāo)記(關(guān)于示例結(jié)果的信息),機(jī)器學(xué)習(xí)算法可以分為以下兩類。1)監(jiān)督學(xué)習(xí)(SupervisedLearning):通過已有的一部分輸入數(shù)據(jù)與輸出數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系生成一個(gè)函數(shù),將輸入映射到合適的輸出,如分類。監(jiān)督學(xué)習(xí)用于訓(xùn)練有標(biāo)簽的數(shù)據(jù),對(duì)于其他沒有標(biāo)簽的數(shù)據(jù),則需要預(yù)估。2)非監(jiān)督學(xué)習(xí)(UnsupervisedLearning):直接對(duì)輸入數(shù)據(jù)集進(jìn)行建模,如聚類。非監(jiān)督學(xué)習(xí)用于對(duì)無標(biāo)簽數(shù)據(jù)集(數(shù)據(jù)沒有預(yù)處理)的處理,需要發(fā)掘其內(nèi)在關(guān)系的時(shí)候。1.交叉驗(yàn)證法(CrossValidation)交叉驗(yàn)證法先將數(shù)據(jù)集D劃分為K個(gè)大小相似的互斥子集,即D=D1∪D2∪...∪Dk,Di∩Dj=0(i≠j)。每個(gè)子集Di都盡可能保持?jǐn)?shù)據(jù)分布的一致性,即從D中通過分層采樣得到,然后每次用k-1個(gè)子集的并集作為訓(xùn)練集,余下的那個(gè)子集作為測(cè)試集。此時(shí)可獲得k組訓(xùn)練/測(cè)試集,從而可進(jìn)行k次訓(xùn)練和測(cè)試,最終返回的是這k個(gè)測(cè)試結(jié)果的均值,通常把交叉驗(yàn)證法稱為“k折交叉驗(yàn)證”(k-foldCrossValidation)。k最常用的取值是10,此時(shí)稱其為10折交叉驗(yàn)證。6.3.2模型評(píng)估2.查準(zhǔn)率(Precision)、查全率(Recall)和F1(F-Measure)查準(zhǔn)率、查全率和F1是機(jī)器學(xué)習(xí)的常用性能度量指標(biāo)。此處首先介紹混淆矩陣,分類結(jié)果混淆矩陣如表6-1所示。真實(shí)情況預(yù)測(cè)結(jié)果正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例)

表6-1分類結(jié)果混淆矩陣3.查準(zhǔn)率查全率(P-R)和受試者工作特征(ROC)曲線P-R曲線是以查準(zhǔn)率為y軸、查全率為x軸做的圖,是綜合評(píng)價(jià)整體結(jié)果的評(píng)估指標(biāo)。圖6-14所示是P-R曲線示意圖。在進(jìn)行比較時(shí),若一個(gè)學(xué)習(xí)器的PR曲線被另一個(gè)學(xué)習(xí)器的曲線完全包住,說明后者的性能優(yōu)于前者,比如圖6-14中的A優(yōu)于C。但是當(dāng)兩條曲線交叉時(shí),例如圖6-14中的A、B兩條曲線,這時(shí)一般引入“平衡點(diǎn)”(BEP)來度量,即“查準(zhǔn)率=查全率”時(shí)的取值,值越大代表分類器性能越好,因此圖6-14中的A優(yōu)于B。圖6-14P-R曲線示意圖ROC曲線是以“真正比率”(TPR)為y軸,以“假正比率”(FPR)為x軸做的圖,如圖6-15所示。其中,對(duì)角線CD對(duì)應(yīng)隨機(jī)猜測(cè)的模型,而A點(diǎn)(0,1)則對(duì)應(yīng)理想模型。

圖6-15ROC曲線示意圖

監(jiān)督學(xué)習(xí)是根據(jù)已標(biāo)記的訓(xùn)練數(shù)據(jù)(有已知類別的樣本)來學(xué)習(xí),其主要任務(wù)涉及分類問題和回歸問題。監(jiān)督學(xué)習(xí)通過對(duì)訓(xùn)練樣本的學(xué)習(xí),得到從樣本特征到樣本的標(biāo)簽之間的映射關(guān)系(也被稱為假設(shè)函數(shù)),利用該映射得到新的樣本的標(biāo)簽,實(shí)現(xiàn)分類或回歸?;貧w問題與分類問題的本質(zhì)都是建立映射關(guān)系,其根本區(qū)別在于輸出空間。回歸問題的輸出空間是一個(gè)度量空間,即定義了一個(gè)度量去衡量輸出值與真實(shí)值之間的誤差大小。分類問題的輸出空間并不是度量空間,而是定性地區(qū)分分類結(jié)果的正確與否。下面介紹監(jiān)督學(xué)習(xí)的幾種常用算法。6.3.3監(jiān)督學(xué)習(xí)1.邏輯回歸(LogisticRegression)邏輯回歸是一種被廣泛使用的分類算法,是典型的線性分類器,通過訓(xùn)練數(shù)據(jù)中的正負(fù)樣本,學(xué)習(xí)樣本特征到樣本標(biāo)簽之間的假設(shè)函數(shù)。由于算法的復(fù)雜度低、容易實(shí)現(xiàn)等特點(diǎn),因此在工業(yè)界得到了廣泛的應(yīng)用,例如,利用LogisticRegression算法實(shí)現(xiàn)廣告的點(diǎn)擊率預(yù)估。分類問題通??梢苑譃榫€性可分與線性不可分兩種。如果一個(gè)分類問題可以使用線性函數(shù)判別正確分類,則稱該問題為線性可分問題,如圖6-16a所示;否則為線性不可分問題,如圖6-16b所示。圖6-16

線性可分和線性不可分a)線性可分b)線性不可分

>>>fromsklearnimportdatasets>>>fromsklearn.linear_modelimportLogisticRegression>>>fromsklearn.model_selectionimporttrain_test_split

>>>iris=datasets.load_iris()>>>X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.3,random_state=23)>>>clf=LogisticRegression(multi_class='multinomial',penalty='l2',solver='saga',tol=0.1)>>>clf.fit(X_train,y_train)>>>print("precision:",clf.score(X_test,y_test))precision:0.9333333333333333LogisticRegression()函數(shù)的參數(shù)如表6-2所示。表6-2LogisticRegression()函數(shù)的參數(shù)參數(shù)內(nèi)容penalty正則化項(xiàng),字符串,分別是:'l1','l2','elasticnet'或'none',默認(rèn)='l2'dual是否對(duì)偶化,邏輯型,默認(rèn)=Falsetol算法停止的閾值,浮點(diǎn)型,默認(rèn)=1e-4C正則強(qiáng)度的倒數(shù),浮點(diǎn)型,默認(rèn)=1.0fit_intercept是否將常量添加到?jīng)Q策函數(shù),

邏輯型,默認(rèn)=Falseclass_weight各類別的權(quán)重,字典或或'balanced',默認(rèn)=Nonerandom_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=Nonesolver求解算法,字符串,分別是:'newton-cg','lbfgs','liblinear','sag','saga',默認(rèn)='liblinear'multi_class多類別的求解算法,字符串,分別是:’ovr','multinomial','auto',默認(rèn)='ovr'verbose輸出顯示,整數(shù),默認(rèn)=0warm_start是否初始化,

邏輯型,默認(rèn)=Falsen_jobs使用CPU內(nèi)核數(shù)量,整數(shù),默認(rèn)=Nonel1_ratioElastic-Net混合參數(shù),浮點(diǎn)型,默認(rèn)=None2.支持向量機(jī)(SupportVectorMachines,SVM)

圖6-17

支持向量和間隔

>>>fromsklearnimportdatasets>>>fromsklearn.linear_modelimportLogisticRegression>>>fromsklearn.model_selectionimporttrain_test_split>>>iris=datasets.load_iris()>>>X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.3,random_state=23)>>>clf=svm.SVC(decision_function_shape='ovo',gamma='scale',random_state=23,tol=0.1)>>>clf.fit(X_train,y_train)>>>print("precision:",clf.score(X_test,y_test))precision:1.0SVC函數(shù)的參數(shù)如表6-3所示。表6-3SVC函數(shù)參數(shù)參數(shù)內(nèi)容C正則強(qiáng)度的倒數(shù),浮點(diǎn)型,默認(rèn)=1.0kernel核函數(shù),字符串,分別是:'linear','poly','rbf','sigmoid','precomputed'或者是自定義函數(shù),默認(rèn)='rbf';degreeploy核函數(shù)的度,整數(shù),默認(rèn)=3gammarbf、poly、Sigmoid核的系數(shù),浮點(diǎn)數(shù),默認(rèn)='auto'coef0ploy、sigmoid核函數(shù)的常數(shù)項(xiàng),浮點(diǎn)數(shù),默認(rèn)=0.0shrinking是否使用收縮式啟發(fā)算法,邏輯型,默認(rèn)=Truetol算法停止的閾值,浮點(diǎn)型,默認(rèn)=1e-3cache_size內(nèi)核緩存的大?。ㄒ訫B為單位),浮點(diǎn)數(shù)class_weight各類別的權(quán)重,字典或'balanced',默認(rèn)=Noneverbose是否允許冗余輸出,邏輯型,默認(rèn)=Falsemax_iter最大迭代次數(shù),整數(shù),默認(rèn)=-1,表示無限制decision_function_shape多分類任務(wù)的融合策略,字符串,分別是:'ovo','ovr',默認(rèn)='ovr’random_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=NoneSVM算法也可以用于回歸問題,這里以模擬生成數(shù)據(jù)為例,分別使用線性核和非線性核對(duì)數(shù)據(jù)進(jìn)行擬合回歸并將結(jié)果可視化呈現(xiàn)。>>>importnumpyasnp>>>fromsklearn.svmimportSVR>>>importmatplotlib.pyplotasplt#模擬生成數(shù)據(jù)>>>X=np.sort(5*np.random.rand(30,1),axis=0)>>>y=np.cos(X).ravel()>>>y[::5]+=3*(0.5-np.random.rand(6))#使用三種不同的核函數(shù)進(jìn)行SVM回歸>>>svr_rbf=SVR(kernel='rbf',gamma=0.1,epsilon=.1)>>>svr_lin=SVR(kernel='linear',gamma='auto')>>>svr_poly=SVR(kernel='poly',gamma='auto',degree=3,epsilon=.1,coef0=1)Python中通過Matplotlib模塊將3種不同核函數(shù)的效果進(jìn)行展示,如圖6-18所示。由cos函數(shù)加噪聲模擬出的數(shù)據(jù),使用徑向基核函數(shù)的回歸效果較好,而使用線性核函數(shù)存在欠擬合的風(fēng)險(xiǎn),使用多項(xiàng)式核函數(shù)則可能造成過擬合。圖6-18SVM回歸的效果>>>svrs=[svr_rbf,svr_lin,svr_poly]>>>kernel_label=['徑向基','線性','多項(xiàng)式']>>>model_color=['m','c','g']>>>plt.rcParams['font.sans-serif']=['SimHei']>>>fig,axes=plt.subplots(nrows=1,ncols=3,figsize=(12,8),sharey=True)>>>forix,svrinenumerate(svrs):axes[ix].plot(X,svr.fit(X,y).predict(X),color=model_color[ix],lw=3,label='{}核函數(shù)'.format(kernel_label[ix])) axes[ix].scatter(X[svr.support_],y[svr.support_],facecolor="none",edgecolor=model_color[ix],s=50) axes[ix].legend(loc='uppercenter',bbox_to_anchor=(0.5,1.1),ncol=1,fancybox=True,shadow=True)>>>fig.suptitle("SVM回歸",fontsize=14)>>>plt.show()3.決策樹(DecisionTree)在分類問題中,決策樹算法通過樣本中某一維屬性的值將樣本劃分到不同的類別中。以二分類問題為例,數(shù)據(jù)集如表6-4所示。示例數(shù)據(jù)有5個(gè)樣本,樣本屬性為“是否用鰓呼吸”和“有無魚鰭”。決策樹算法是基于樹形結(jié)構(gòu)來進(jìn)行決策的。對(duì)如表6-4所示的數(shù)據(jù),首先通過屬性“是否用鰓呼吸”判斷樣本是否為魚。

是否用鰓呼吸有無魚鰭是否為魚鯊魚是有是鯡魚是有是河蚌是無否鯨魚否有否海豚否有否表6-4

示例數(shù)據(jù)集如圖6-19所示,通過屬性“是否用鰓呼吸”可將一部分樣本區(qū)分,即不用鰓呼吸的不是魚;再對(duì)剩下的樣本利用第二維屬性“有無魚鰭”進(jìn)行劃分,得到了最終的決策,即不用鰓呼吸的不是魚,用鰓呼吸但是沒有魚鰭的也不是魚,用鰓呼吸同時(shí)有魚鰭的才是魚。對(duì)于一個(gè)新的樣本“鯨鯊”,其樣本屬性為{用鰓呼吸,有魚鰭},符合上述對(duì)魚的判斷,因此,認(rèn)為鯨鯊為魚。利用學(xué)習(xí)到的決策樹模型,對(duì)于一個(gè)新的樣本,算法可以正確地做出決策,判斷其是否為魚。圖6-19

決策樹示例

>>>fromsklearnimportdatasets>>>fromsklearnimporttree>>>fromsklearn.model_selectionimporttrain_test_split>>>iris=datasets.load_iris()>>>X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.3,random_state=23)>>>clf=tree.DecisionTreeClassifier()>>>clf.fit(X_train,y_train)>>>print("precision:",clf.score(X_test,y_test))precision:0.9777777777777777Python可通過export_graphviz導(dǎo)出器以Graphviz格式導(dǎo)出決策樹的結(jié)構(gòu),需要預(yù)先安裝graphviz和Python模塊,命令如下:以下是將上述訓(xùn)練得到的決策樹模型的結(jié)構(gòu)導(dǎo)出的示例:輸出的決策樹模型如圖6-20所示。#需要預(yù)先安裝Anaconda以管理python包和環(huán)境condainstallpython-graphviz>>>importgraphviz>>>dot_data=tree.export_graphviz(clf,out_file=None)>>>graph=graphviz.Source(dot_data)>>>graph.render("iris")圖6-20

決策樹輸出示例DecisionTreeClassifier函數(shù)的參數(shù)如表6-5所示。表6-5DecisionTreeClassifier函數(shù)的參數(shù)參數(shù)內(nèi)容criterion節(jié)點(diǎn)分裂的度量,字符串,默認(rèn)='gini'splitter節(jié)點(diǎn)分裂的度量,字符串,默認(rèn)='best'max_depth樹的最大深度,整數(shù)或None,默認(rèn)=Nonemin_samples_split拆分內(nèi)部節(jié)點(diǎn)所需的最少樣本量,整數(shù)或浮點(diǎn)數(shù),默認(rèn)=2min_samples_leaf節(jié)點(diǎn)的最小樣本數(shù),整數(shù)或浮點(diǎn)型,默認(rèn)=1min_weight_fraction_leaf葉子節(jié)點(diǎn)所有樣本權(quán)重和的最小值,浮點(diǎn)型,默認(rèn)=0.max_features最大特征數(shù)量,整數(shù)、浮點(diǎn)型、字符串、或None,默認(rèn)=Nonerandom_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=Nonemax_leaf_nodes最大葉子節(jié)點(diǎn)數(shù)量,整數(shù)或None,默認(rèn)=Nonemin_impurity_decrease樹增長(zhǎng)的閾值,浮點(diǎn)型,默認(rèn)=0min_impurity_split算法停止的閾值,浮點(diǎn)型,默認(rèn)=1e-7class_weight類別的權(quán)重,字典或'balanced',默認(rèn)=Nonepresort是否對(duì)數(shù)據(jù)進(jìn)行預(yù)排序,邏輯型,默認(rèn)=False決策樹算法也可用于回歸問題,以模擬生成數(shù)據(jù)為例,分別對(duì)深度為3和6的決策樹進(jìn)行擬合,如圖6-21所示,樹的深度過深存在過擬合的風(fēng)險(xiǎn)。>>>importnumpyasnp>>>fromsklearn.treeimportDecisionTreeRegressor>>>importmatplotlib.pyplotasplt#模擬生成數(shù)據(jù)>>>rng=np.random.RandomState(1)>>>X=np.sort(5*rng.rand(100,1),axis=0)>>>y=np.sin(X).ravel()>>>y[::5]+=3*(0.5-rng.rand(20))#使用不同深度的決策樹進(jìn)行回歸>>>regr_1=DecisionTreeRegressor(max_depth=3)>>>regr_2=DecisionTreeRegressor(max_depth=6)>>>regr_1.fit(X,y)>>>regr_2.fit(X,y)>>>X_test=np.arange(0.0,5.0,0.01)[:,np.newaxis]>>>y_1=regr_1.predict(X_test)>>>y_2=regr_2.predict(X_test)#展示預(yù)測(cè)效果>>>plt.figure()>>>plt.scatter(X,y,s=20,edgecolor="black",c="darkorange",label="data")>>>plt.plot(X_test,y_1,color="cornflowerblue",label="max_depth=2",linewidth=2)>>>plt.plot(X_test,y_2,color="yellowgreen",label="max_depth=5",linewidth=2)>>>plt.title("決策樹回歸")>>>plt.legend()>>>plt.show()圖6-21決策樹回歸可視化結(jié)果4.集成學(xué)習(xí)(EnsembleLearning)集成學(xué)習(xí)是一種新的學(xué)習(xí)策略,對(duì)于一個(gè)復(fù)雜的分類問題,可訓(xùn)練多個(gè)分類器,利用這些分類器來解決同一個(gè)問題。例如,在醫(yī)學(xué)方面,面對(duì)一個(gè)新型的或者罕見的疾病時(shí),通常會(huì)組織多個(gè)醫(yī)學(xué)專家會(huì)診,通過結(jié)合這些專家的意見,最終給出治療的方案。在集成學(xué)習(xí)中,首先學(xué)習(xí)多個(gè)分類器,然后結(jié)合這些分類器對(duì)于同一個(gè)樣本的預(yù)測(cè)結(jié)果給出判斷。集成學(xué)習(xí)的泛化能力比單個(gè)學(xué)習(xí)算法強(qiáng)得多。在集成學(xué)習(xí)方法中,根據(jù)多個(gè)分類器學(xué)習(xí)方式的不同,可以分為:Bagging算法和Boosting算法。Bagging(BootstrapAggregating)算法通過對(duì)訓(xùn)練樣本有放回的抽取產(chǎn)生多個(gè)訓(xùn)練數(shù)據(jù)的子集,并在每一個(gè)訓(xùn)練集子集上訓(xùn)練一個(gè)分類器,最終分類結(jié)果是由多個(gè)分類器投票產(chǎn)生的。Bagging算法的整個(gè)過程如圖6-22所示。如圖6-22所示,對(duì)于一個(gè)分類問題而言,假設(shè)有n個(gè)分類器,每次通過有放回地從原始數(shù)據(jù)集中抽取訓(xùn)練樣本,分別訓(xùn)練這n個(gè)分類器{??_1,??_2,?,??_??},最終,通過組合n個(gè)分類器的結(jié)果作為最終的預(yù)測(cè)結(jié)果。圖6-22Bagging算法過程Boosting算法的整個(gè)過程如圖6-23所示。與Bagging算法不同,Boosting算法通過順序地給訓(xùn)練集中的數(shù)據(jù)項(xiàng)重新加權(quán)創(chuàng)造不同的基礎(chǔ)學(xué)習(xí)器。Boosting算法的核心思想是重復(fù)應(yīng)用一個(gè)基礎(chǔ)學(xué)習(xí)器來修改訓(xùn)練數(shù)據(jù)集,這樣在預(yù)定數(shù)量的迭代下可以產(chǎn)生一系列的基礎(chǔ)學(xué)習(xí)器。在訓(xùn)練開始,所有的數(shù)據(jù)項(xiàng)都被初始化為同一個(gè)權(quán)重,在這次初始化之后,每次增強(qiáng)的迭代都會(huì)生成一個(gè)適應(yīng)加權(quán)之后的訓(xùn)練數(shù)據(jù)集的基礎(chǔ)學(xué)習(xí)器。每一次迭代的錯(cuò)誤率都會(huì)計(jì)算出來,而且正確劃分的數(shù)據(jù)項(xiàng)的權(quán)重會(huì)被降低,然后錯(cuò)誤劃分的數(shù)據(jù)項(xiàng)權(quán)重將會(huì)增大。Boosting算法的最終模型是一系列基礎(chǔ)學(xué)習(xí)器的線性組合,而且系數(shù)依賴于各個(gè)基礎(chǔ)學(xué)習(xí)器的表現(xiàn)。Boosting算法有很多版本,目前使用最廣泛的是AdaBoost算法和GBDT(梯度提升)算法。圖6-23Boosting算法過程

假設(shè)訓(xùn)練樣本的個(gè)數(shù)為m,則對(duì)于每一棵決策樹的輸入樣本的個(gè)數(shù)都為m,且這m個(gè)樣本是通過從訓(xùn)練集中有放回地隨機(jī)抽取得到的。假設(shè)訓(xùn)練樣本特征的個(gè)數(shù)為n,對(duì)于每一棵決策樹的樣本特征,是從該n個(gè)特征中隨機(jī)挑選k個(gè),然后從這k個(gè)輸入特征里選擇一個(gè)最好的進(jìn)行分裂。每棵樹都一直這樣分裂下去,直到該節(jié)點(diǎn)的所有訓(xùn)練樣本都屬于同一類。決策樹分裂過程不需要剪枝。

>>>fromsklearnimportdatasets>>>fromsklearn.model_selectionimporttrain_test_split>>>fromsklearn.ensembleimportGradientBoostingClassifier>>>fromsklearn.ensembleimportGradientBoostingClassifier>>>fromsklearn.ensembleimportRandomForestClassifier>>>iris=datasets.load_iris()>>>X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.3,random_state=23)>>>GBDT_clf=GradientBoostingClassifier(n_estimators=1000)>>>GBDT_clf.fit(X_train,y_train)>>>Ada_clf=AdaBoostClassifier(n_estimators=1000)>>>Ada_clf.fit(X_train,y_train)>>>Rf_clf=RandomForestClassifier(n_estimators=1000)>>>Rf_clf.fit(X_train,y_train)>>>print("GBDTprecision:",GBDT_clf.score(X_test,y_test))>>>print("AdaBoostprecision:",Ada_clf.score(X_test,y_test))>>>print("RandomForestprecision:",Rf_clf.score(X_test,y_test))>>>GBDTprecision:0.9777777777777777>>>AdaBosstprecision:1.0>>>RandomForestprecision:0.9777777777777777

AdaBoostClassifier函數(shù)的參數(shù)解釋如表6-6所示。表6-6AdaBoostClassifier函數(shù)的參數(shù)參數(shù)內(nèi)容base_estimator基分類器,默認(rèn)=Nonen_estimators迭代次數(shù),整數(shù),默認(rèn)=50learning_rate學(xué)習(xí)率,浮點(diǎn)型,默認(rèn)=1.algorithmboosting算法,取值分別有:'SAMME'和'SAMME.R,默認(rèn)='SAMME.R'random_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=NoneGradientBoostingClassifier函數(shù)的參數(shù)解釋如表6-7所示。表6-7AdaBoostClassifier函數(shù)的參數(shù)參數(shù)內(nèi)容loss損失函數(shù),'deviance','exponential',默認(rèn)='deviance'learning_rate學(xué)習(xí)率,浮點(diǎn)型,默認(rèn)=0.1n_estimators迭代步數(shù),整數(shù),默認(rèn)=100subsample子采樣比例,浮點(diǎn)型,默認(rèn)=1.0criterion節(jié)點(diǎn)分裂的度量,字符串,默認(rèn)='friedman_mse'min_samples_split拆分內(nèi)部節(jié)點(diǎn)所需的最少樣本量,整數(shù)或浮點(diǎn)數(shù),默認(rèn)=2min_samples_leaf節(jié)點(diǎn)的最小樣本數(shù),整數(shù)或浮點(diǎn)型,默認(rèn)=1min_weight_fraction_leaf葉子節(jié)點(diǎn)所有樣本權(quán)重和的最小值,浮點(diǎn)型,默認(rèn)=0.max_depth樹的最大深度,整數(shù),默認(rèn)=3min_impurity_decrease樹增長(zhǎng)的閾值,浮點(diǎn)型,默認(rèn)=0min_impurity_split子樹劃分的閾值,浮點(diǎn)型,默認(rèn)=1e-7;init:初始的弱分類器,默認(rèn)=Nonerandom_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=Nonemax_features最大特征數(shù)量,整數(shù)、浮點(diǎn)型、字符串、或None,默認(rèn)=Noneverbose是否允許冗余輸出,整數(shù),默認(rèn)=0max_leaf_nodes最大葉子節(jié)點(diǎn)數(shù)量,整數(shù)或None,默認(rèn)=Nonewarm_start是否初始化,邏輯型,默認(rèn)=Falsepresort是否對(duì)數(shù)據(jù)進(jìn)行預(yù)排序,邏輯型或'auto',默認(rèn)='auto'validation_fraction浮點(diǎn)型,可選,默認(rèn)0.1tol算法停止的閾值,浮點(diǎn)型,默認(rèn)=1e-4n_iter_no_change是否將使用早期停止來終止訓(xùn)練,整數(shù),默認(rèn)=NoneRandomForestClassifier函數(shù)的參數(shù)解釋如表6-8所示。參數(shù)內(nèi)容n_estimators迭代步數(shù),整數(shù),默認(rèn)=10criterion節(jié)點(diǎn)分裂的度量,字符串,默認(rèn)='gini_mse'max_depth樹的最大深度,整數(shù),默認(rèn)=3min_samples_split拆分內(nèi)部節(jié)點(diǎn)所需的最少樣本量,整數(shù)或浮點(diǎn)數(shù),默認(rèn)=2min_samples_leaf節(jié)點(diǎn)的最小樣本數(shù),整數(shù)或浮點(diǎn)型,默認(rèn)=1min_weight_fraction_leaf葉子節(jié)點(diǎn)所有樣本權(quán)重和的最小值,浮點(diǎn)型,默認(rèn)=0.max_features最大特征數(shù)量,整數(shù)、浮點(diǎn)型、字符串、或None,默認(rèn)=’auto’max_leaf_nodes最大葉子節(jié)點(diǎn)數(shù)量,整數(shù)或None,默認(rèn)=Nonemin_impurity_decrease樹增長(zhǎng)的閾值,浮點(diǎn)型,默認(rèn)=0min_impurity_split子樹劃分的閾值,浮點(diǎn)型,默認(rèn)=1e-7init初始的弱分類器,默認(rèn)=Nonebootstrap是否有放回的采樣,邏輯型,默認(rèn)=Falseoob_score是否使用現(xiàn)成的樣本來估計(jì)泛化精度,邏輯型,默認(rèn)=Truerandom_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=Nonen_jobs使用的進(jìn)程數(shù),整數(shù)或None,默認(rèn)=Noneverbose是否允許冗余輸出,整數(shù),默認(rèn)=0warm_start是否初始化,邏輯型,默認(rèn)=Falseclass_weight:類別的權(quán)重,字典或'balanced',默認(rèn)=None表6-8AdaBoostClassifier函數(shù)的參數(shù)AdaBoost、梯度提升、隨機(jī)森林等集成算法比單個(gè)的決策樹更為廣泛地應(yīng)用到回歸問題上,這3種算法在模擬數(shù)據(jù)集上的回歸效果比較如圖6-24所示,梯度提升和隨機(jī)森林的回歸效果非常相近。>>>importnumpyasnp>>>importmatplotlib.pyplotasplt>>>fromsklearn.ensembleimportGradientBoostingRegressor>>>fromsklearn.ensembleimportAdaBoostRegressor>>>fromsklearn.ensembleimportRandomForestRegressor#模擬生成數(shù)據(jù)集>>>rng=np.random.RandomState(1)>>>X=np.linspace(0,6,100)[:,np.newaxis]>>>y=np.sin(X).ravel()+np.sin(6*X).ravel()+rng.normal(0,0.1,X.shape[0])>>>est=GradientBoostingRegressor(n_estimators=500,random_state=23)>>>regr=AdaBoostRegressor(n_estimators=500,random_state=23)>>>rfreg=RandomForestRegressor(n_estimators=500,random_state=23)>>>est.fit(X,y)>>>regr.fit(X,y)>>>rfreg.fit(X,y)>>>y_1=est.predict(X)>>>y_2=regr.predict(X)>>>y_3=rfreg.predict(X)>>>plt.rcParams['font.sans-serif']=['SimHei']>>>plt.figure()>>>plt.scatter(X,y,c="k")>>>plt.plot(X,y_1,c="y",label="GBDT擬合曲線",linewidth=2)>>>plt.plot(X,y_2,c="r",label="AdaBoost擬合曲線",linewidth=2)>>>plt.plot(X,y_3,c="g",label="AdaBoost擬合曲線",linewidth=2)>>>plt.title("GBDT、AdaBoost和RandomForest回歸")>>>plt.legend()>>>plt.show()

圖6-243種算法的回歸結(jié)果

無監(jiān)督學(xué)習(xí)的輸入數(shù)據(jù)中沒有任何的標(biāo)簽。無監(jiān)督學(xué)習(xí)的關(guān)鍵特點(diǎn)是傳遞給算法的數(shù)據(jù)在內(nèi)部結(jié)構(gòu)非常豐富,而訓(xùn)練的目標(biāo)和獎(jiǎng)勵(lì)卻非常稀少。無監(jiān)督學(xué)習(xí)方法主要包括降維和聚類,以下分別就降維和聚類介紹幾種常用算法及其實(shí)現(xiàn)過程。6.3.4無監(jiān)督學(xué)習(xí)1.降維

在Python的sklearn庫中,可分別使用decomposition.PCA()、svd()函數(shù)實(shí)現(xiàn)主成分分析和奇異值分解。以鶯尾花數(shù)據(jù)集為例,首先從sklearn模塊中載入鶯尾花數(shù)據(jù)集,由于數(shù)據(jù)集的維度超過3,無法直接可視化特征和類別的信息,因此可以考慮先使用主成分分析方法對(duì)特征進(jìn)行降維,然后選取前兩個(gè)主成分(累計(jì)方差貢獻(xiàn)率超過了97%)作為圖形的橫軸和縱軸,最后將類別信息標(biāo)注成不同的顏色,如圖6-25所示。>>>importnumpyasnp>>>fromsklearnimportdecomposition>>>fromscipy.linalgimportsvd>>>fromsklearnimportdatasets>>>fromsklearn.preprocessingimportscale>>>frommatplotlibimportpyplotasplt>>>iris=datasets.load_iris()>>>iris_X=scale(iris.data,with_mean=True,with_std=True,axis=0)#使用PCA方法>>>pca=decomposition.PCA(n_components=2)>>>iris_X_prime=pca.fit_transform(iris_X)>>>pca.explained_variance_ratio_#使用SVD方法>>>U,S,V=svd(iris_X,full_matrices=False)>>>x_t=U[:,:2]#繪圖>>>plt.rcParams['font.sans-serif']=['SimHei']>>>f,ax=plt.subplots(1,2,sharex=True,sharey=True)>>>ax[0].scatter(iris_X_prime[:,0],iris_X_prime[:,1],c=iris.target)>>>ax[0].set_title("選取前兩個(gè)主成分")#為更好地展示SVD的效果,將x,y軸縮放10倍>>>ax[1].scatter(x_t[:,0]*10,x_t[:,1]*10,c=iris.target)>>>ax[1].set_title("選取前兩個(gè)奇異值")圖6-25PCA及SVD可視化實(shí)例decomposition.PCA函數(shù)的參數(shù)解釋如表6-9所示。

svd函數(shù)的參數(shù)解釋如表6-10所示。表6-9decomposition.PCA函數(shù)的參數(shù)參數(shù)內(nèi)容n_components要保留的維度,整數(shù),浮點(diǎn)數(shù),無或字符串copy是否復(fù)制原始數(shù)據(jù)一份,邏輯型,默認(rèn)=Truewhiten是否標(biāo)準(zhǔn)化,邏輯型,默認(rèn)=Falsesvd_solver指定SVD的方法,'auto','full','arpack','randomized'tol計(jì)算的奇異值的公差,浮點(diǎn)型,默認(rèn)=.0iterated_powersvd_solver='randomized''時(shí)計(jì)算出的冪方法的迭代次數(shù),整數(shù)或'auto',默認(rèn)='auto'random_state隨機(jī)數(shù)種子,整數(shù),默認(rèn)=None表6-10svd函數(shù)的參數(shù)參數(shù)內(nèi)容a要分解的矩陣,(M,N),M行N列full_matrices邏輯型,默認(rèn)=Truecompute_uv邏輯型,默認(rèn)=Trueoverwrite_a是否覆蓋原矩陣,邏輯型,默認(rèn)=Falsecheck_finite是否檢查輸入矩陣僅包含有限數(shù),邏輯型lapack_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論