Python數(shù)據(jù)分析與實(shí)戰(zhàn)(微課版)課件 第5、6章 matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ);使用scikit-learn構(gòu)建模型_第1頁
Python數(shù)據(jù)分析與實(shí)戰(zhàn)(微課版)課件 第5、6章 matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ);使用scikit-learn構(gòu)建模型_第2頁
Python數(shù)據(jù)分析與實(shí)戰(zhàn)(微課版)課件 第5、6章 matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ);使用scikit-learn構(gòu)建模型_第3頁
Python數(shù)據(jù)分析與實(shí)戰(zhàn)(微課版)課件 第5、6章 matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ);使用scikit-learn構(gòu)建模型_第4頁
Python數(shù)據(jù)分析與實(shí)戰(zhàn)(微課版)課件 第5、6章 matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ);使用scikit-learn構(gòu)建模型_第5頁
已閱讀5頁,還剩100頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ)1seaborn基礎(chǔ)繪圖目錄Matplotlib基礎(chǔ)繪圖2pyecharts基礎(chǔ)繪圖31.掌握pyplot基礎(chǔ)語法(1)創(chuàng)建畫布與創(chuàng)建子圖在pyplot中,創(chuàng)建畫布以及創(chuàng)建并選擇子圖的函數(shù)/方法,其中各類函數(shù)和方法中的matplotilb.pyploy簡寫為plt,如下表。pyplot繪圖基礎(chǔ)語法與常用參數(shù)函數(shù)/方法名稱函數(shù)/方法作用plt.figure創(chuàng)建一個(gè)空白畫布,可以指定畫布大小、像素figure.add_subplot()創(chuàng)建并選中子圖,可以指定子圖的行數(shù)、列數(shù)和選中圖片的編號(2)添加畫布內(nèi)容添加標(biāo)題、添加坐標(biāo)軸名稱、繪制圖形等步驟是并列的,是沒有先后順序的。在pyplot中,添加各類標(biāo)簽和圖例的常用函數(shù),如下表。pyplot繪圖基礎(chǔ)語法與常用參數(shù)函數(shù)名稱函數(shù)作用plt.title在當(dāng)前圖形中添加標(biāo)題,可以指定標(biāo)題的名稱、位置、顏色、字體大小等參數(shù)plt.xlabel在當(dāng)前圖形中添加x軸標(biāo)簽,可以指定位置、顏色、字體大小等參數(shù)plt.ylabel在當(dāng)前圖形中添加y軸標(biāo)簽,可以指定位置、顏色、字體大小等參數(shù)在pyplot中,添加各類標(biāo)簽和圖例的常用函數(shù),如下表(續(xù)表)。pyplot繪圖基礎(chǔ)語法與常用參數(shù)函數(shù)名稱函數(shù)作用plt.xlim指定當(dāng)前圖形x軸的范圍,只能確定一個(gè)數(shù)值區(qū)間,而無法使用字符串標(biāo)識plt.ylim指定當(dāng)前圖形y軸的范圍,只能確定一個(gè)數(shù)值區(qū)間,而無法使用字符串標(biāo)識plt.xticks獲取或設(shè)置x軸的當(dāng)前刻度位置和標(biāo)簽plt.yticks獲取或設(shè)置y軸的當(dāng)前刻度位置和標(biāo)簽plt.legend指定當(dāng)前圖形的圖例,可以指定圖例的大小、位置、標(biāo)簽(3)保存與顯示圖形在pyplot中,主要用于保存和顯示圖形,常用函數(shù)只有兩個(gè),如下表。pyplot繪圖基礎(chǔ)語法與常用參數(shù)函數(shù)名稱函數(shù)作用plt.savefig保存繪制的圖形,可以指定圖形的分辨率、邊緣的顏色等參數(shù)plt.show在本機(jī)顯示圖形2.設(shè)置pyplot的動態(tài)rc參數(shù)pyplot使用rc配置文件來自定義圖形的各種默認(rèn)屬性,被稱為rc配置或rc參數(shù)。所有存儲在字典變量中的rc參數(shù),都被稱為rcParams。在pyplot中,線條中常用的rc參數(shù)名稱、解釋與取值如下表。pyplot繪圖基礎(chǔ)語法與常用參數(shù)rc參數(shù)名稱解釋取值lines.linewidth線條寬度取0~10之間的數(shù)值,默認(rèn)為1.5lines.linestyle線條樣式可取“-”“--”“-.”“:”4種。默認(rèn)為“-”lines.marker線條上點(diǎn)的形狀可取“o”“D”“h”“.”“,”“S”等20種,默認(rèn)為Nonelines.markersize點(diǎn)的大小取0~10之間的數(shù)值,默認(rèn)為1lines.linestyle參數(shù)4中取值及意義如下表。lines.marker參數(shù)的20種取值及其所代表的意義如下表。pyplot繪圖基礎(chǔ)語法與常用參數(shù)lines.linestyle取值意義‘-’實(shí)線‘--’長虛線‘-.’點(diǎn)線‘:’短虛線lines.marker取值意義‘o’圓圈‘D’菱形‘h’六邊形1lines.marker參數(shù)的20種取值及其所代表的意義如下表(續(xù)表)。pyplot繪圖基礎(chǔ)語法與常用參數(shù)lines.marker取值意義‘H’六邊形2‘-’水平線‘8’八邊形‘p’五邊形‘,’像素‘+’加號‘None’無‘.’點(diǎn)lines.marker參數(shù)的20種取值及其所代表的意義如下表(續(xù)表)。pyplot繪圖基礎(chǔ)語法與常用參數(shù)lines.marker取值意義‘s’正方形‘*’星號‘d’小菱形‘v’一角朝下的三角形‘<’一角朝左的三角形‘>’一角朝右的三角形‘^’一角朝上的三角形‘|’豎線‘x’X1.繪制散點(diǎn)圖散點(diǎn)圖(ScatterDiagram)又稱為散點(diǎn)分布圖,是以一個(gè)特征為橫坐標(biāo),以另一個(gè)特征為縱坐標(biāo),利用坐標(biāo)點(diǎn)(散點(diǎn))的分布形態(tài)反映特征間的統(tǒng)計(jì)關(guān)系的一種圖形。散點(diǎn)圖可以提供兩類關(guān)鍵信息,具體內(nèi)容如下。特征之間是否存在數(shù)值或數(shù)量的關(guān)聯(lián)趨勢,關(guān)聯(lián)趨勢是線性的還是非線性的。如果某一個(gè)點(diǎn)或某幾個(gè)點(diǎn)偏離大多數(shù)點(diǎn),那么這些點(diǎn)就是離群值,通過散點(diǎn)圖可以一目了然,從而可以進(jìn)一步分析這些離群值是否在建模分析中產(chǎn)生較大的影響。使用Matplotlib繪制進(jìn)階圖形scatter函數(shù)的基本使用格式如下。在pyplot中,繪制散點(diǎn)圖的函數(shù)為scatter,scatter函數(shù)的常用參數(shù)及其說明,如下表。使用Matplotlib繪制進(jìn)階圖形參數(shù)名稱參數(shù)說明x,y接收float或array。表示x軸和y軸對應(yīng)的數(shù)據(jù)。無默認(rèn)值s接收float或array。表示指定點(diǎn)的大小,若傳入一維數(shù)組,則表示每個(gè)點(diǎn)的大小。默認(rèn)為Nonec接收顏色或array。表示指定點(diǎn)的顏色,若傳入一維數(shù)組,則表示每個(gè)點(diǎn)的顏色。默認(rèn)為Nonemarker接收特定str。表示繪制的點(diǎn)的類型。默認(rèn)為Nonealpha接收float。表示點(diǎn)的透明度。默認(rèn)為Nonematplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,*,edgecolors=None,plotnonfinite=False,data=None,**kwargs)2.繪制折線圖折線圖(LineChart)是一種將數(shù)據(jù)點(diǎn)按照順序連接起來的圖形,可以看作是將散點(diǎn)圖按照x軸坐標(biāo)順序連接起來的圖形。在pyplot中繪制折線圖的函數(shù)為plot,plot函數(shù)的基本使用格式如下。使用Matplotlib繪制進(jìn)階圖形matplotlib.pyplot.plot(*args,scalex=True,scaley=True,data=None,**kwargs)plot函數(shù)常用參數(shù)及其說明如下表。使用Matplotlib繪制進(jìn)階圖形參數(shù)名稱參數(shù)說明x,y接收array。表示x軸和y軸對應(yīng)的數(shù)據(jù)。無默認(rèn)值scalex,scaley接收bool。表示這些參數(shù)確定視圖限制是否適合于數(shù)據(jù)限制。默認(rèn)為Truedata接收可索引對象。表示具有標(biāo)簽數(shù)據(jù)的對象。默認(rèn)為Nonecolor接收特定str。表示指定線條的顏色。默認(rèn)為Nonelinestyle接收特定str。表示指定線條類型。默認(rèn)為“-”marker接收特定str。表示繪制的點(diǎn)的類型。默認(rèn)為Nonealpha接收float。表示點(diǎn)的透明度。默認(rèn)為None其中color參數(shù)的8種常用顏色的縮寫如下表。使用Matplotlib繪制進(jìn)階圖形顏色縮寫代表的顏色b藍(lán)色g綠色r紅色c青色m品紅y黃色k黑色w白色3.繪制柱形圖柱形圖(BarChart)的核心思想是對比,常用于顯示一段時(shí)間內(nèi)的數(shù)據(jù)變化或顯示各項(xiàng)之間的比較情況。pyplot中繪制柱形圖的函數(shù)為bar,bar函數(shù)的基本使用格式如下。使用Matplotlib繪制進(jìn)階圖形matplotlib.pyplot.bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kwargs)bar函數(shù)的常用參數(shù)及其說明如下表。使用Matplotlib繪制進(jìn)階圖形參數(shù)名稱參數(shù)說明x接收array或float。表示x軸數(shù)據(jù)。無默認(rèn)值height接收array或float。表示指定柱形圖的高度。無默認(rèn)值width接收array或float。表示指定柱形圖的寬度。默認(rèn)為0.8bottom接收array或float。表示指定柱形的起始位置。默認(rèn)為Nonealign接收str。表示整個(gè)柱形圖與x軸的對齊方式,可選center和edge。默認(rèn)為centerdata接收可索引對象。表示具有標(biāo)簽數(shù)據(jù)的對象。默認(rèn)為None4.繪制餅圖餅圖(PieGraph)是將各項(xiàng)的大小與各項(xiàng)總和的比例顯示在一張“餅”中,以“餅”的大小來確定每一項(xiàng)數(shù)據(jù)的占比。pyplot中繪制餅圖的函數(shù)為pie,pie函數(shù)的基本使用格式如下。使用Matplotlib繪制進(jìn)階圖形matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=0,radius=1,counterclock=True,wedgeprops=None,textprops=None,center=0,0,frame=False,rotatelabels=False,*,normalize=None,hatch=None,data=None)pie函數(shù)的常用參數(shù)及其說明如下表。使用Matplotlib繪制進(jìn)階圖形參數(shù)名稱參數(shù)說明x接收array。表示用于繪制餅圖的數(shù)據(jù)。無默認(rèn)值explode接收array。表示指定餅塊距離餅圖圓心的偏移距離。默認(rèn)為Nonelabels接收list。表示指定每一項(xiàng)數(shù)據(jù)的標(biāo)簽名稱。默認(rèn)為Nonecolor接收特定str或包含顏色字符串的array。表示餅圖顏色。默認(rèn)為Noneautopct接收特定str。表示指定數(shù)值的顯示方式。默認(rèn)為Nonepctdistance接收float。表示每個(gè)餅圖切片的中心與autopct生成的文本之間的比率。默認(rèn)為0.6labeldistance接收float。表示繪制的餅圖標(biāo)簽離圓心的距離。默認(rèn)為1.1radius接收float。表示餅圖的半徑。默認(rèn)為15.繪制箱線圖箱線圖(Boxplot)也稱箱須圖,其繪制需使用常用的統(tǒng)計(jì)量,便能提供有關(guān)數(shù)據(jù)位置和分散情況的關(guān)鍵信息,尤其在比較不同特征時(shí),更可表現(xiàn)其分散程度差異。pyplot中繪制箱線圖的函數(shù)為boxplot,boxplot函數(shù)的基本使用格式如下。使用Matplotlib繪制進(jìn)階圖形matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,bootstrap=None,usermedians=None,conf_intervals=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfliers=None,boxprops=None,labels=None,flierprops=None,medianprops=None,meanprops=None,capprops=None,whiskerprops=None,manage_ticks=True,autorange=False,zorder=None,capwidths=None,*,data=None)boxplot函數(shù)的常用參數(shù)及其說明,如下表。使用Matplotlib繪制進(jìn)階圖形參數(shù)名稱參數(shù)說明x接收array。表示用于繪制箱線圖的數(shù)據(jù)。無默認(rèn)值notch接收bool。表示中間箱體是否有缺口。默認(rèn)為Nonesym接收特定str。表示指定異常點(diǎn)形狀。默認(rèn)為Nonevert接收bool。表示圖形是縱向或橫向。默認(rèn)為Nonepositions接收array。表示圖形位置。默認(rèn)為Nonewidths接收float或array。表示每個(gè)箱體的寬度。默認(rèn)為Nonelabels接收sequence。表示指定每個(gè)數(shù)據(jù)集的標(biāo)簽。默認(rèn)為None1seaborn基礎(chǔ)繪圖目錄Matplotlib基礎(chǔ)繪圖2pyecharts基礎(chǔ)繪圖31.了解seaborn中的基礎(chǔ)圖形在seaborn庫繪制圖形之前需要掌握其繪圖基礎(chǔ),包括基礎(chǔ)圖形、繪圖風(fēng)格和調(diào)色板等。使用Matplotlib庫繪制圖形使用了較長的代碼,而使用seaborn庫繪制圖形僅僅用了幾行代碼即可達(dá)到相同的效果。seaborn庫與Matplotlib庫不同的是,seaborn庫無法靈活的定制圖形的風(fēng)格。seaborn繪圖基礎(chǔ)2.了解seaborn的繪圖風(fēng)格(1)主題樣式在seaborn庫中含有darkgrid(灰色背景+白網(wǎng)格)、whitegrid(白色背景+黑網(wǎng)格)、dark(僅灰色背景)、white(僅白色背景)和ticks(坐標(biāo)軸帶刻度)5種預(yù)設(shè)的主題。darkgrid與whitegrid主題有助于在繪圖時(shí)進(jìn)行定量信息的查找。dark與white主題有助于防止網(wǎng)格與表示數(shù)據(jù)的線條混淆ticks主題有助于體現(xiàn)少量特殊的數(shù)據(jù)元素結(jié)構(gòu)。seaborn繪圖基礎(chǔ)使用set_style函數(shù)的基本使用格式如下。set_style函數(shù)的常用參數(shù)及其說明如下表。seaborn繪圖基礎(chǔ)seaborn.set_style(style=None,rc=None)參數(shù)名稱參數(shù)說明style接收str。表示設(shè)置的圖形主題風(fēng)格,可選darkgrid,whitegrid,dark,white,ticks。默認(rèn)為Nonerc接收dict。表示用于覆蓋預(yù)設(shè)seaborn樣式字典中的值的參數(shù)映射。默認(rèn)為None(2)元素縮放在seaborn庫中通過set_context函數(shù)可以設(shè)置輸出圖片元素的大小尺寸。set_context函數(shù)的基本使用格式如下。set_context函數(shù)的常用參數(shù)及其說明如下表。seaborn繪圖基礎(chǔ)seaborn.set_context(context=None,font_scale=1,rc=None)參數(shù)名稱參數(shù)說明context接收str。表示設(shè)置的縮放類型,可選paper、notebook、talk,poster。默認(rèn)為Nonefont_scale接收float。表示單獨(dú)的縮放因子以獨(dú)立縮放字體元素的大小。默認(rèn)為1rc接收dict。表示參數(shù)映射以覆蓋預(yù)設(shè)的seaborn上下文字典中的值。默認(rèn)為None(3)邊框控制在seaborn庫中,可以使用despine函數(shù)移除任意位置的邊框,調(diào)節(jié)邊框的位置,修剪邊框的長短。despine函數(shù)的基本使用格式如下。seaborn繪圖基礎(chǔ)seaborn.despine(fig=None,ax=None,top=True,right=True,left=False,bottom=False,offset=None,trim=False)despine函數(shù)的常用參數(shù)及其說明如下表。seaborn繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明top接收bool。表示刪除頂部邊框。默認(rèn)為Trueright接收bool。表示刪除右側(cè)邊框。默認(rèn)為Trueleft接收bool。表示刪除左側(cè)邊框。默認(rèn)為Falsebottom接收bool。表示刪除底部邊框。默認(rèn)為Falseoffset接收int或dict。表示邊框與軸的距離。無默認(rèn)值trim接收bool。表示將邊框限制為每個(gè)非指定軸上的最小和最大主刻度。默認(rèn)為False3.熟悉seaborn的調(diào)色板顏色在可視化中非常重要,可用于代表各種特征,并且提高整個(gè)圖的觀賞性。如果有效的使用顏色,那么可以顯示數(shù)據(jù)中的圖案。如果顏色使用不當(dāng),那么將會隱藏?cái)?shù)據(jù)中圖案。常用于調(diào)色板的函數(shù)及其作用如下表。seaborn繪圖基礎(chǔ)函數(shù)名稱函數(shù)作用diverging_palette用于創(chuàng)建離散調(diào)色板choose_diverging_palette啟動交互式小部件選擇不同的調(diào)色板,與diverging_palette函數(shù)功能相對應(yīng)color_palette用于返回定義調(diào)色板的顏色列表或連續(xù)顏色圖set_palette用于設(shè)置調(diào)色板,為所有圖設(shè)置默認(rèn)顏色周期常用于調(diào)色板的函數(shù)及其作用如下表。seaborn繪圖基礎(chǔ)函數(shù)名稱函數(shù)作用hls_palette用于控制調(diào)色板顏色的亮度和飽和xkcd_palette使用xkcd顏色中的顏色名稱創(chuàng)建調(diào)色板cubehelix_palette用于創(chuàng)建連續(xù)調(diào)色板light_palette用于創(chuàng)建顏色從淺色到深色的連續(xù)調(diào)色板dark_palette用于創(chuàng)建顏色從深色到深色混合的連續(xù)調(diào)色板choose_light_palette啟動一個(gè)交互式小部件以創(chuàng)建一個(gè)淺色連續(xù)調(diào)色板choose_dark_palette啟動交互式小部件以創(chuàng)建深色連續(xù)調(diào)色板(1)定性調(diào)色板當(dāng)需要區(qū)分沒有固有排序的數(shù)據(jù)離散區(qū)塊時(shí),定性(或分類)調(diào)色板是較佳選擇。在導(dǎo)入seaborn庫后,默認(rèn)顏色周期將更改為一組10種顏色。使用圓形顏色系統(tǒng),在需要使用比默認(rèn)顏色循環(huán)中設(shè)置的顏色更多時(shí),常使用圓形顏色系統(tǒng)設(shè)置圖案顏色。使用xkcd顏色,xkcd是對隨機(jī)的RGB顏色空間的命名,產(chǎn)生了954個(gè)顏色,可以隨時(shí)通過xkcd_rgb字典裝飾器調(diào)用,也可以通過xkcd_palette函數(shù)自定義調(diào)色板。seaborn繪圖基礎(chǔ)(2)連續(xù)調(diào)色板當(dāng)數(shù)據(jù)存在一定順序時(shí),通常使用連續(xù)映射,連續(xù)調(diào)色板的設(shè)置方法如下。ColorBrewer庫。cubehelix調(diào)色板。自定義連續(xù)調(diào)色板。seaborn繪圖基礎(chǔ)在ColorBrewer庫中,連續(xù)調(diào)色板名稱及漸變順序如下表。seaborn繪圖基礎(chǔ)名稱漸變順序YlOrRd黃橙紅YlOrBr黃橙棕YlGnBu黃綠藍(lán)YlGn黃綠Reds紅RdPu紅紫Purples紫PuRd紫紅PuBuGn紫藍(lán)綠在ColorBrewer庫中,連續(xù)調(diào)色板名稱及漸變順序如下表(續(xù)表)。seaborn繪圖基礎(chǔ)名稱漸變順序PuBu紫藍(lán)OrRd橙紅Oranges橙色Greys灰色Greens綠GnBu綠藍(lán)BuP藍(lán)紫BuGn藍(lán)綠Blues藍(lán)cubehelix_palette函數(shù)的基本使用格式如下。cubehelix_palette函數(shù)的常用參數(shù)及其說明如下表。seaborn繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明n_color接收int。表示調(diào)色板中顏色數(shù)目。默認(rèn)為6start接收0~3的float。表示指定開始時(shí)的色調(diào)。默認(rèn)為0rot接收float。表示指定在調(diào)色板旋轉(zhuǎn)范圍(次數(shù))。默認(rèn)為0.4light接收0~1的float。表示顏色明亮程度。默認(rèn)為0.85dark接收0~1的float。表示顏色深暗程度。默認(rèn)為0.15as_cmap接收bool。表示是否返回Matplotlib顏色映射對象。默認(rèn)為Falseseaborn.cubehelix_palette(n_colors=6,start=0,rot=0.4,gamma=1.0,hue=0.8,light=0.85,dark=0.15,reverse=False,as_cmap=False)(3)離散調(diào)色板離散調(diào)色板用于當(dāng)數(shù)據(jù)的高值和低值都有非常重要的數(shù)據(jù)意義的情況下,數(shù)據(jù)中通常有一個(gè)定義明確的中點(diǎn)。選擇離散調(diào)色板的規(guī)則是,起始色調(diào)和結(jié)束色調(diào)具有相似的亮度和飽和度,并且經(jīng)過色調(diào)偏移后在中點(diǎn)處和諧的相遇。離散調(diào)色板的設(shè)置情況如下。默認(rèn)中較好的離散調(diào)色板自定義離散調(diào)色板seaborn繪圖基礎(chǔ)在seaborn庫中可以使用diverging_palette函數(shù)(及choose_diverging_palette函數(shù)啟動交互式小部件)為離散數(shù)據(jù)創(chuàng)建自定義調(diào)色板。diverging_palette函數(shù)的基本使用格式如下。seaborn繪圖基礎(chǔ)seaborn.diverging_palette(h_neg,h_pos,s=75,l=50,sep=1,n=6,center='light',as_cmap=False)diverging_palette函數(shù)的常用參數(shù)及其說明如下表。seaborn繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明h_neg接收0~359之間的float。表示調(diào)色板負(fù)面范圍色調(diào)。無默認(rèn)值h_pos接收0~359之間的float。表示調(diào)色板正面范圍色調(diào)。無默認(rèn)值s接收0~100之間的float。表示兩個(gè)范圍色調(diào)飽和度。默認(rèn)為75l接收0~100之間的float。表示兩個(gè)范圍色調(diào)亮度。默認(rèn)為50n接收int。表示調(diào)色板顏色數(shù)目。默認(rèn)值為6center接收str。表示調(diào)色板中心是明或暗,可選light、dark。默認(rèn)為lightas_cmap接收bool。表示是否返回Matplotlib顏色映射對象。默認(rèn)為False(4)設(shè)置默認(rèn)調(diào)色板color_palette函數(shù)還有一個(gè)與之相對應(yīng)的函數(shù),即set_palette函數(shù)。set_palette函數(shù)接受與color_palette函數(shù)相同的參數(shù),可更改默認(rèn)的Matplotlib參數(shù),更改后所有的調(diào)色板配置將變?yōu)樵O(shè)置的調(diào)色板配置。seaborn繪圖基礎(chǔ)熱力圖(HeatChart)通過顏色的深淺表示數(shù)據(jù)的分布,顏色越淺數(shù)據(jù)越大,可以一眼就分辨出數(shù)據(jù)的分布情況,非常方便。在seaborn庫中,可以使用heatmap函數(shù)繪制熱力圖。heatmap函數(shù)的基本使用格式如下。使用seaborn繪制基礎(chǔ)圖形seaborn.heatmap(data,vmin=None,vmax=None,cmap=None,center=None,robust=False,annot=None,fmt='.2g',annot_kws=None,linewidths=0,linecolor='white',cbar=True,cbar_kws=None,cbar_ax=None,square=False,xticklabels='auto',yticklabels='auto',mask=None,ax=None,**kwargs)heatmap函數(shù)的主要參數(shù)及說明如下表。使用seaborn繪制基礎(chǔ)圖形參數(shù)名稱參數(shù)說明data接收可轉(zhuǎn)換為ndarray的二維矩形數(shù)據(jù)集。表示用于繪圖的數(shù)據(jù)集。無默認(rèn)值vmin,vmax接收float。表示顏色映射的值的范圍。默認(rèn)為Nonecmap接收色彩映射或顏色列表。表示數(shù)值到顏色空間的映射。默認(rèn)為Nonecenter接收float。表示以0為中心發(fā)散顏色。默認(rèn)為Nonerobust接收bool。如果為True且vmin或vmax為None,那么則使用魯棒分位數(shù)表示映射范圍。默認(rèn)為Falseheatmap函數(shù)的主要參數(shù)及說明如下表(續(xù)表)。使用seaborn繪制基礎(chǔ)圖形參數(shù)名稱參數(shù)說明annot接收bool或矩形數(shù)據(jù)集。表示是否在每個(gè)單元格顯示數(shù)值。默認(rèn)為Nonefmt接收str。表示添加注釋時(shí)使用的字符串格式代碼。默認(rèn)為.2glinewidths接收float。表示劃分每個(gè)單元格的線寬。默認(rèn)為0linecolor接收str。表示劃分每個(gè)單元的線條顏色。默認(rèn)為whitesquare接收bool。表示是否使每個(gè)單元格為方形。默認(rèn)為False1seaborn基礎(chǔ)繪圖目錄Matplotlib基礎(chǔ)繪圖2pyecharts基礎(chǔ)繪圖31.了解初始配置項(xiàng)初始配置項(xiàng)是在初始化對象中進(jìn)行配置的,可以設(shè)置畫布的長與寬、網(wǎng)頁標(biāo)題、圖表主題、背景色等。初始配置項(xiàng)是通過options模塊中的InitOpts類實(shí)現(xiàn)的,可以將init_opts作為參數(shù)傳遞。InitOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classInitOpts(width='900px',height='500px',chart_id=None,renderer=RenderType.CANVAS,page_title='Awesome-pyecharts',theme='white',bg_color=None,js_host='',animation_opts=AnimationOpts())InitOpts類的部分參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明width接收str。表示圖表畫布寬度。默認(rèn)為900pxheight接收str。表示圖表畫布高度。默認(rèn)為500pxchart_id接收str。表示圖表ID,圖表唯一標(biāo)識,可用于在多個(gè)圖表合并時(shí)進(jìn)行圖表之間的區(qū)分。默認(rèn)為Nonerenderer接收str。表示渲染風(fēng)格,可選canvas或svg。默認(rèn)為canvaspage_title接收str。表示網(wǎng)頁標(biāo)題。默認(rèn)為Awesome-pyechartstheme接收str。表示圖表主題。默認(rèn)為whitebg_color接收str。表示圖表背景顏色。默認(rèn)為None2.了解系列配置項(xiàng)(1)文字樣式配置項(xiàng)文字樣式配置項(xiàng)是通過options模塊中的TextStyleOpts類實(shí)現(xiàn)的,可以將text_style_opts作為參數(shù)傳遞給set_series_opts()方法。TextStyleOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classTextStyleOpts(color=None,font_style=None,font_weight=None,font_family=None,font_size=None,align=None,vertical_align=None,line_height=None,background_color=None,border_color=None,border_width=None,border_radius=None,padding=None,shadow_color=None,shadow_blur=None,width=None,height=None,rich=None)TextStyleOpts類的部分參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明color接收str。表示文字顏色。默認(rèn)為Nonefont_style接收str。表示文字字體風(fēng)格,可選normal、italic、oblique。默認(rèn)為Nonefont_weight接收str。表示主標(biāo)題字體的粗細(xì),可選normal、bold、bolder、lighter。默認(rèn)為Nonefont_family接收str。表示文字的字體系列。默認(rèn)為Nonefont_size接收Numeric。表示文字的字體大小。默認(rèn)為NoneTextStyleOpts類的部分參數(shù)及其說明如下表(續(xù)表)。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明align接收str。表示文字水平對齊方式。默認(rèn)為Nonevertical_align接收str。表示文字垂直對齊方式。默認(rèn)為Noneline_height接收str。表示行高。默認(rèn)為Nonebackground_color接收str。表示文字塊背景色。默認(rèn)為Noneborder_color接收str。表示文字塊邊框顏色。默認(rèn)為Noneborder_width接收Numeric。表示文字塊邊框?qū)挾?。默認(rèn)為None(2)標(biāo)簽配置項(xiàng)標(biāo)簽配置項(xiàng)是通過options模塊中的LabelOpts類實(shí)現(xiàn)的,可以將label_opts作為參數(shù)傳遞給set_series_opts()方法。LabelOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classLabelOpts(is_show=True,position='top',color=None,distance=None,font_size=12,font_style=None,font_weight=None,font_family=None,rotate=None,margin=8,interval=None,horizontal_align=Nonevertical_align=None,formatter=None,background_color=None,border_color=None,border_width=None,border_radius=None,padding=None,text_width=None,text_height=None,overflow=None,rich=None)LabelOpts類的部分參數(shù)名稱及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明is_show接收bool。表示是否顯示標(biāo)簽。默認(rèn)為Trueposition接收str、Sequence。表示標(biāo)簽的位置。默認(rèn)為topcolor接收str。表示文字的顏色。默認(rèn)為Nonefont_family接收str。表示文字的字體系列。默認(rèn)為Nonefont_size接收Numeric。表示文字的字體大小。默認(rèn)為12font_weight接收str。表示文字字體的粗細(xì),可選normal、bold、bolder、lighter。默認(rèn)為Nonerotate接收Numeric。表示標(biāo)簽旋轉(zhuǎn)角度,從-90度到90度。默認(rèn)為Nonehorizontal_align接收str。表示文字水平對齊方式,默認(rèn)為None(3)線樣式配置項(xiàng)線樣式配置項(xiàng)是通過options模塊中的LineStyleOpts類實(shí)現(xiàn)的,可以將line_style_opts作為參數(shù)傳遞給set_series_opts()方法。LineStyleOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classLineStyleOpts(is_show=True,width=1,opacity=1,curve=0,type_='solid',color=None)LineStyleOpts類的參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明is_show接收bool。表示是否顯示線。默認(rèn)為Truewidth接收Numeric。表示線的寬度。默認(rèn)為1opacity接收Numeric。表示圖形透明度,支持從0到1的數(shù)字。默認(rèn)為1curve接收Numeric。表示線的彎曲度,0表示完全不彎曲。默認(rèn)為0type_接收str。表示線的類型,常用solid、dashed、dotted。默認(rèn)為solidcolor接收str。表示線的顏色。默認(rèn)為None(4)標(biāo)記點(diǎn)配置項(xiàng)標(biāo)記點(diǎn)配置項(xiàng)是通過options模塊中的MarkPointOpts類實(shí)現(xiàn)的,可以將markpoint_opts作為參數(shù)傳遞給set_series_opts()方法。MarkPointOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classMarkPointOpts(data=None,symbol=None,symbol_size=None,label_opts=LabelOpts(position='inside',color='#fff')MarkPointOpts類的參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明data接收Sequence。表示標(biāo)記點(diǎn)數(shù)據(jù)。默認(rèn)為Nonesymbol接收str。表示標(biāo)記的圖形,提供的標(biāo)記類型包括circle、rect、roundrect、triangle、diamond、pin、arrow、None。默認(rèn)為Nonesymbol_size接收Numeric。表示標(biāo)記的大小,可以設(shè)置成單一的數(shù)字,如10;也可以使用數(shù)組分開表示寬和高,例如,[20,10]表示標(biāo)記寬為20,高為10。默認(rèn)為None3.了解全局配置項(xiàng)(1)標(biāo)題配置項(xiàng)標(biāo)題配置項(xiàng)是通過options模塊中的TitleOpts類實(shí)現(xiàn)的,可以將title_opts作為參數(shù)傳遞給set_global_opts()方法。TitleOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classTitleOpts(is_show=True,title=None,title_link=None,title_target=None,subtitle=None,subtitle_link=None,subtitle_target=None,pos_left=None,pos_right=None,pos_top=None,pos_bottom=None,padding=5,item_gap=10,text_align="auto",text_vertical_align="auto",is_trigger_event=False,title_textstyle_opts=None,subtitle_textstyle_opts=None)TitleOpts類的部分參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明is_show接收bool。表示是否顯示標(biāo)題組件。默認(rèn)為Truetitle接收str。表示主標(biāo)題文本,支持使用\n換行。默認(rèn)為Nonetitle_link接收str。表示主標(biāo)題跳轉(zhuǎn)URL鏈接。默認(rèn)為Nonetitle_target接收str。表示主標(biāo)題跳轉(zhuǎn)鏈接方式,可選self、blank,self表示當(dāng)前窗口打開,blank表示新窗口打開。默認(rèn)為Nonesubtitle接收str。表示副標(biāo)題文本,支持使用\n換行。默認(rèn)為Nonesubtitle_link接收str。表示副標(biāo)題跳轉(zhuǎn)URL鏈接。默認(rèn)為Nonesubtitle_target接收str。表示副標(biāo)題跳轉(zhuǎn)鏈接方式。默認(rèn)為Noneitem_gap接收Numeric。表示主副標(biāo)題之間的間距。默認(rèn)為10title_textstyle_opts接收dict。表示主標(biāo)題字體樣式配置項(xiàng)。默認(rèn)為Nonesubtitle_textstyle_opts接收dict。表示副標(biāo)題字體樣式配置項(xiàng)。默認(rèn)為None(2)圖例配置項(xiàng)圖例配置項(xiàng)是通過options模塊中的LegendOpts類實(shí)現(xiàn)的,可以將legend_opts作為參數(shù)傳遞給set_global_opts()方法。LegendOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classLegendOpts(type_=None,selected_mode=None,is_show=True,pos_left=None,pos_right=None,pos_top=None,pos_bottom=None,orient=None,align=None,padding=5,item_gap=10,item_width=25,item_height=14,inactive_color=None,textstyle_opts=None,legend_icon=None,background_color="transparent",border_color="#ccc",border_width=1,border_radius=0,page_button_item_gap=5,page_button_gap=None,page_button_position="end",page_formatter="{current}/{total}",page_icon=None,page_icon_color="#2f4554",page_icon_inactive_color="#aaa",page_icon_size=15,is_page_animation=None,page_animation_duration_update=800,selector=False,selector_position="auto",selector_item_gap=7,selector_button_gap=10)LegendOpts類的參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明type_接收str。表示圖例的類型,可選plain、scroll,plain表示普通圖例,scroll表示可滾動翻頁的圖例。默認(rèn)為Noneis_show接收bool。表示是否顯示圖例組件,默認(rèn)為Trueorient接收str。表示圖例列表的布局朝向,可選horizontal、vertical。默認(rèn)為Noneitem_gap接收int。表示圖例每項(xiàng)之間的間隔。默認(rèn)為10pos_left接收str、Numeric。表示圖例組件離容器左側(cè)的距離。默認(rèn)為Nonepos_right接收str、Numeric。表示圖例組件離容器右側(cè)的距離。默認(rèn)為Nonepos_top接收str、Numeric。表示圖例組件離容器上側(cè)的距離。默認(rèn)為Nonepos_bottom接收str、Numeric。表示圖例組件離容器下側(cè)的距離。默認(rèn)為None(3)坐標(biāo)軸配置項(xiàng)坐標(biāo)軸配置項(xiàng)是通過options模塊中的AxisOpts類實(shí)現(xiàn)的,可以將xaxis_opts或yaxis_opts作為參數(shù)傳遞給set_global_opts()方法。AxisOpts類的基本使用格式如下。pyecharts繪圖基礎(chǔ)classAxisOpts(type_=None,name=None,is_show=True,is_scale=False,is_inverse=False,name_location='end',name_gap=15,name_rotate=None,interval=None,grid_index=0,position=None,offset=0,split_number=5,boundary_gap=None,min_=None,max_=None,min_interval=0,max_interval=None,axisline_opts=None,axistick_opts=None,axislabel_opts=None,axispointer_opts=None,name_textstyle_opts=None,splitarea_opts=None,splitline_opts=SplitLineOpts(),minor_tick_opts=None,minor_split_line_opts=None)AxisOpts類的部分參數(shù)及其說明如下表。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明type_接收str。表示坐標(biāo)軸類型,可選value、category、time、log,value表示數(shù)值軸,適用于連續(xù)數(shù)據(jù);category表示類目軸,適用于離散的類目數(shù)據(jù);time表示時(shí)間軸,適用于連續(xù)的時(shí)序數(shù)據(jù);log表示對數(shù)軸,適用于對數(shù)數(shù)據(jù)。默認(rèn)為Nonename接收str。表示坐標(biāo)軸名稱。默認(rèn)為Noneis_show接收bool。表示是否顯示x坐標(biāo)軸。默認(rèn)為Trueis_inverse接收bool。表示是否反向坐標(biāo)軸。默認(rèn)為Falsename_gap接收Numeric。表示坐標(biāo)軸名稱與軸線之間的距離。默認(rèn)為15AxisOpts類的部分參數(shù)及其說明如下表(續(xù)表)。pyecharts繪圖基礎(chǔ)參數(shù)名稱參數(shù)說明name_rotate接收Numeric。表示坐標(biāo)軸名字旋轉(zhuǎn)角度值。默認(rèn)為Noneposition接收str。表示x軸的位置,可選top、bottom,top表示在上側(cè),bottom表示在下側(cè)。默認(rèn)為Nonesplit_number接收Numeric。表示坐標(biāo)軸的分割段數(shù)。默認(rèn)為5min_接收str、Numeric。表示坐標(biāo)軸刻度最小值。默認(rèn)為Nonemax_接收str、Numeric。表示坐標(biāo)軸刻度最大值。默認(rèn)為None1.繪制3D散點(diǎn)圖3D散點(diǎn)圖(3DScatter)與基本散點(diǎn)圖類似,區(qū)別主要是3D散點(diǎn)圖是在三維空間的散點(diǎn)圖,基本散點(diǎn)圖是在二維平面上的散點(diǎn)圖。Scatter3D類的基本使用格式如下。使用pyecharts繪制交互式圖形classScatter3D(init_opts=opts.InitOpts()).add(series_name,data,grid3d_opacity=1,shading=None,itemstyle_opts=None,xaxis3d_opts=opts.Axis3DOpts(),yaxis3d_opts=opts.Axis3DOpts(),zaxis3d_opts=opts.Axis3DOpts(),grid3d_opts=opts.Grid3DOpts(),encode=None).set_series_opts().set_global_opts()Scatter3D類的add()方法常用參數(shù)及其說明如下表。使用pyecharts繪制交互式圖形參數(shù)名稱參數(shù)說明series_name接收str,表示系列名稱。無默認(rèn)值data接收Sequence,表示系列數(shù)據(jù),每一行是一個(gè)數(shù)據(jù)項(xiàng),每一列表示一個(gè)維度的數(shù)據(jù)。無默認(rèn)值grid3d_opacity接收float。表示3D笛卡兒坐標(biāo)系的透明度(點(diǎn)的透明度)。默認(rèn)為1,表示完全不透明xaxis3d_opts表示添加x軸數(shù)據(jù)項(xiàng)yaxis3d_opts表示添加y軸數(shù)據(jù)項(xiàng)zaxis3d_opts表示添加z軸數(shù)據(jù)項(xiàng)2.繪制漏斗圖漏斗圖(FunnelChart)也稱倒三角圖,漏斗圖將數(shù)據(jù)呈現(xiàn)為幾個(gè)階段,每個(gè)階段的數(shù)據(jù)都是整體的一部分,從一個(gè)階段到另一個(gè)階段數(shù)據(jù)自上而下逐漸下降。在pyecharts庫中,可使用Funnel類繪制漏斗圖。Funnel類的基本使用格式如下。使用pyecharts繪制交互式圖形classFunnel(init_opts=opts.InitOpts()).add(series_name,data_pair,is_selected=True,color=None,sort_='descending',gap=0,label_opts=opts.LabelOpts(),tooltip_opts=None,itemstyle_opts=None).set_series_opts().set_global_opts()Funnel類的常用參數(shù)及其說明如下表。使用pyecharts繪制交互式圖形參數(shù)名稱參數(shù)說明series_name接收str,表示系列名稱,可用于顯示tooltip,以及篩選legend圖例。無默認(rèn)值data_pair接收Sequence,表示數(shù)據(jù)項(xiàng),格式為[(鍵1,值1),(鍵2,值2)]。無默認(rèn)值is_selected接收bool,表示是否選中圖例。默認(rèn)為Truecolor接收str,表示系列名稱顏色。默認(rèn)為Nonesort_接收str,表示數(shù)據(jù)排序,可以取ascending、descending、None(按data順序)。默認(rèn)為descendinggap接收Numeric,表示數(shù)據(jù)圖形間距。默認(rèn)為03.繪制詞云圖詞云圖(WordCloud)可對文字中出現(xiàn)頻率較高的“關(guān)鍵詞”予以視覺上的突出,形成“關(guān)鍵詞云層”或“關(guān)鍵詞渲染”。在pyecharts庫中,可使用WordCloud類繪制詞云圖。WordCloud類的基本使用格式如下。使用pyecharts繪制交互式圖形classWordCloud(init_opts=opts.InitOpts()).add(series_name,data_pair,shape='circle',mask_image=None,word_gap=20,word_size_range=None,rotate_step=45,pos_left=None,pos_top=None,pos_right=None,pos_bottom=None,width=None,height=None,is_draw_out_of_bound=False,tooltip_opts=None,textstyle_opts=None,emphasis_shadow_blur=None,emphasis_shadow_color=None).set_series_opts().set_global_opts()WordCloud類的常用參數(shù)及其說明如下表。使用pyecharts繪制交互式圖形參數(shù)名稱參數(shù)說明series_name接收str,表示系列名稱,用于tooltip的顯示,legend的圖例篩選。無默認(rèn)值data_pair接收Sequence,表示系列數(shù)據(jù)項(xiàng),形如[(word1,count1),(word2,count2)]。無默認(rèn)值shape接收str,表示詞云圖輪廓,可選circle、cardioid、diamond、triangle-forward、triangle、pentagon。默認(rèn)是circlemask_image接收str,表示自定義的圖片(目前支持jpg、jpeg、png、ico的格式)。默認(rèn)為Noneword_gap接收Numeric,表示單詞間隔。默認(rèn)為20word_size_range接收Numeric序列,表示單詞字體大小范圍。默認(rèn)為Nonerotate_step接收Numeric,表示旋轉(zhuǎn)單詞角度。默認(rèn)為45WordCloud類的常用參數(shù)及其說明如下表(續(xù)表)。使用pyecharts繪制交互式圖形參數(shù)名稱參數(shù)說明pos_left接收str,表示距離左側(cè)的距離。默認(rèn)為Nonepos_top接收str,表示距離頂部的距離。默認(rèn)為Nonepos_right接收str,表示距離右側(cè)的距離。默認(rèn)為Nonepos_bottom接收str,表示距離底部的距離。默認(rèn)為Nonewidth接收str,表示詞云圖的寬度。默認(rèn)為Noneheight接收str,表示詞云圖的高度。默認(rèn)為Noneis_draw_out_of_bound接收bool,表示是否允許詞云圖的數(shù)據(jù)展示在畫布范圍之外。默認(rèn)為False本章介紹了pyplot繪圖的基本語法和常用參數(shù),并通過Matplotlib庫繪制體現(xiàn)特征間相關(guān)關(guān)系的散點(diǎn)圖、體現(xiàn)特征間趨勢關(guān)系的折線圖、體現(xiàn)特征內(nèi)部數(shù)據(jù)分布的柱形圖和餅圖,以及體現(xiàn)特征內(nèi)部數(shù)據(jù)分散情況的箱線圖。介紹了seaborn庫的基礎(chǔ)圖形、繪圖風(fēng)格和調(diào)色板,并通過seaborn庫繪制熱力圖。最后介紹了pyecharts繪圖的初始配置項(xiàng)、系列配置項(xiàng)和全局配置項(xiàng),并介紹了3D散點(diǎn)圖、漏斗圖和詞云圖交互式圖形的繪制方法。小結(jié)使用scikit-learn構(gòu)建模型目錄1構(gòu)建并評價(jià)聚類模型使用sklearn轉(zhuǎn)換器處理數(shù)據(jù)2構(gòu)建并評價(jià)分類模型3構(gòu)建并評價(jià)回歸模型4加載datasets模塊中的數(shù)據(jù)集數(shù)據(jù)集加載函數(shù)數(shù)據(jù)集任務(wù)類型數(shù)據(jù)集加載函數(shù)數(shù)據(jù)集任務(wù)類型load_boston回歸load_breast_cancer分類、聚類fetch_california_housing回歸load_iris分類、聚類load_digits分類load_wine分類load_diabetes回歸load_linnerud回歸sklearn庫的datasets模塊集成了部分?jǐn)?shù)據(jù)分析的經(jīng)典數(shù)據(jù)集,讀者可以使用這些數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理、建

模等操作,以及熟悉sklearn的數(shù)據(jù)處理流程和建模流程。datasets模塊常用數(shù)據(jù)集的加載函數(shù)及其解釋,如下表所示。

使用sklearn進(jìn)行數(shù)據(jù)預(yù)處理時(shí)需要用到sklearn提供的統(tǒng)一接口——轉(zhuǎn)換器(Transformer)。加載datasets模塊中的數(shù)據(jù)集fromsklearn.datasetsimportload_diabetes#加載diabetes數(shù)據(jù)集diabetes=load_diabetes()#將數(shù)據(jù)集賦值給diabetes變量print('diabetes數(shù)據(jù)集的長度為:',len(diabetes))#使用len函數(shù)查看數(shù)據(jù)集長度print('diabetes數(shù)據(jù)集的類型為:',type(diabetes))#使用type函數(shù)查看數(shù)據(jù)集類型diabetes數(shù)據(jù)集的長度為:8diabetes數(shù)據(jù)集的類型為:<class'sklearn.utils.Bunch'>

如果需要加載某個(gè)數(shù)據(jù)集,那么可以將對應(yīng)的函數(shù)賦值給某個(gè)變量。加載diabetes數(shù)據(jù)集,如以下代碼。加載datasets模塊中的數(shù)據(jù)集diabetes_data=diabetes['data']#獲取數(shù)據(jù)集的數(shù)據(jù)diabetes_target=diabetes['target']#獲取數(shù)據(jù)集的標(biāo)簽diabetes_names=diabetes['feature_names']#獲取數(shù)據(jù)集的特征名diabetes_desc=diabetes['DESCR']#獲取數(shù)據(jù)集的描述信息查看對應(yīng)信息只需print()輸入對應(yīng)變量名即可加載后的數(shù)據(jù)集可以視為一個(gè)字典,幾乎所有的sklearn數(shù)據(jù)集均可以使用如下屬性分別獲取數(shù)據(jù)集的數(shù)據(jù)、標(biāo)簽、特征名稱和描述信息。datatargetfeature_namesDESCR獲取sklearn自帶數(shù)據(jù)集的內(nèi)部信息,如以下代碼。將數(shù)據(jù)集劃分為訓(xùn)練集和測試集

在數(shù)據(jù)分析過程中,為了保證模型在實(shí)際系統(tǒng)中能夠起到預(yù)期作用,一般需要將總樣本分劃分成獨(dú)立的3

部分如下。訓(xùn)練集(trainset)驗(yàn)證集(validationset)測試集(testset)

典型的劃分方式如下。

訓(xùn)練集數(shù)量,占總樣本數(shù)量的50%。

驗(yàn)證集數(shù)量,占總樣本數(shù)量的25%。

測試集數(shù)量,占總樣本數(shù)量的25%。用于估計(jì)模型用于確定網(wǎng)絡(luò)結(jié)構(gòu)或控制模型復(fù)雜程度的參數(shù)用于檢驗(yàn)最優(yōu)模型的性能將數(shù)據(jù)集劃分為訓(xùn)練集和測試集當(dāng)總樣本數(shù)據(jù)較少時(shí),使用上面的方法將樣本數(shù)據(jù)劃分為3部分將會不合適。常用的方法是留少部分樣本數(shù)據(jù)做測試集,然后對其余N個(gè)樣本采用K折交叉驗(yàn)證法。其基本步驟如下。

將樣本打亂。

均勻分成K份。

輪流選擇其中K-1份做訓(xùn)練,剩余的一份作為驗(yàn)證集。

計(jì)算預(yù)測誤差平方和。

將K次的預(yù)測誤差平方和的均值作為選擇最優(yōu)模型結(jié)構(gòu)的依據(jù)。將數(shù)據(jù)集劃分為訓(xùn)練集和測試集

在sklearn的model_selection模塊中提供了train_test_split函數(shù),可實(shí)現(xiàn)對數(shù)據(jù)集進(jìn)行拆分,train_test_split函數(shù)

的基本使用格式如下。train_test_split函數(shù)是最常用的數(shù)據(jù)劃分方法,在model_selection模塊中還提供了其他數(shù)據(jù)集劃分的函數(shù),如PredefinedSplit函數(shù)、ShuffleSplit函數(shù)等??梢酝ㄟ^查看官方文檔學(xué)習(xí)其使用方法。sklearn.model_selection.train_test_split(*arrays,test_size=None,train_size=None,random_state=None,shuffle=True,stratify=None)將數(shù)據(jù)集劃分為訓(xùn)練集和測試集train_test_split函數(shù)的常用參數(shù)及其說明如下表所示。數(shù)值型數(shù)據(jù)類型說明*arrays接收list、numpy數(shù)組、scipy-sparse矩陣、Pandas數(shù)據(jù)幀。表示需要劃分的數(shù)據(jù)集。若為分類回歸,則分別傳入數(shù)據(jù)和標(biāo)簽;若為聚類,則傳入數(shù)據(jù)。無默認(rèn)值test_size接收float、int。表示測試集的大小。若傳入為float型參數(shù)值,則應(yīng)介于0~1之間,表示測試集在總數(shù)據(jù)集中的占比;若傳入為int型參數(shù)值,則表示測試樣本的絕對數(shù)量。默認(rèn)為Nonetrain_size接收float、int。表示訓(xùn)練集的大小,傳入的參數(shù)值說明與test_size參數(shù)的參數(shù)值說明相似。默認(rèn)為Nonerandom_state接收int。表示用于隨機(jī)抽樣的偽隨機(jī)數(shù)發(fā)生器的狀態(tài)。默認(rèn)為Noneshuffle接收bool。表示在拆分?jǐn)?shù)據(jù)集前是否對數(shù)據(jù)進(jìn)行混洗。默認(rèn)為Truestratify接收array。表示用于保持拆分前類的分布平衡。默認(rèn)為None將數(shù)據(jù)集劃分為訓(xùn)練集和測試集查看對應(yīng)信息只需print()輸入對應(yīng)變量名.shape即可train_test_split函數(shù)可分別將傳入的數(shù)據(jù)集劃分為訓(xùn)練集和測試集。如果傳入的是一組數(shù)據(jù)集,那么生成的就是這一組數(shù)據(jù)集隨機(jī)劃分后的訓(xùn)練集和測試集,總共兩組。如果傳入的是兩組數(shù)據(jù)集,則生成的訓(xùn)練集和測試集分別兩組,總共4組。將diabetes數(shù)據(jù)集劃分為訓(xùn)練集和測試集,如以下代碼。fromsklearn.model_selectionimporttrain_test_split#加載diabetes數(shù)據(jù)集diabetes_data_train,diabetes_data_test,diabetes_target_train,diabetes_target_test=\#定義變量名train_test_split(diabetes_data,diabetes_target,test_size=0.2,random_state=42)#調(diào)用函數(shù)劃分?jǐn)?shù)據(jù)集使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維為了幫助用戶實(shí)現(xiàn)大量的特征處理相關(guān)操作,sklearn將相關(guān)的功能封裝為sklearn轉(zhuǎn)換器。轉(zhuǎn)換器主要包括3個(gè)方法:fit()、transform()和fit_transform()。sklearn轉(zhuǎn)換器的3種方法及其說明如下表所示。方法名稱方法說明fit()主要通過分析特征和目標(biāo)值來提取有價(jià)值的信息,這些信息可以是統(tǒng)計(jì)量、權(quán)值系數(shù)等transform()主要用于對特征進(jìn)行轉(zhuǎn)換。從可利用信息的角度分為無信息轉(zhuǎn)換和有信息轉(zhuǎn)換。無信息轉(zhuǎn)換是指不利用任何其他信息進(jìn)行轉(zhuǎn)換,如指數(shù)函數(shù)和對數(shù)函數(shù)轉(zhuǎn)換等。有信息轉(zhuǎn)換根據(jù)是否利用目標(biāo)值向量又可分為無監(jiān)督轉(zhuǎn)換和有監(jiān)督轉(zhuǎn)換。無監(jiān)督轉(zhuǎn)換指只利用特征的統(tǒng)計(jì)信息的轉(zhuǎn)換,如標(biāo)準(zhǔn)化和PCA降維等。有監(jiān)督轉(zhuǎn)換指既利用了特征信息又利用了目標(biāo)值信息的轉(zhuǎn)換,如通過模型選擇特征和LDA降維等fit_transform()即先調(diào)用fit()方法,然后調(diào)用transform()方法使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維目前,使用sklearn轉(zhuǎn)換器能夠?qū)崿F(xiàn)對傳入的NumPy數(shù)組進(jìn)行如下處理。標(biāo)準(zhǔn)化處理。歸一化處理。二值化處理。PCA降維等操作。在第4章中,基于pandas庫介紹了標(biāo)準(zhǔn)化處理的原理、概念與方法。但是在數(shù)據(jù)分析過程中,各類與特征處理相關(guān)的操作都需要對訓(xùn)練集和測試集分開進(jìn)行,需要將訓(xùn)練集的操作規(guī)則、權(quán)重系數(shù)等應(yīng)用到測試集中。如果使用pandas,那么應(yīng)用至測試集的過程相對煩瑣,使用sklearn轉(zhuǎn)換器可以解決這一困擾,因此需要持續(xù)學(xué)習(xí)新的技術(shù)和方法,從而提高工作效率和質(zhì)量。使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維sklearn除了提供離差標(biāo)準(zhǔn)化函數(shù)MinMaxScaler外,還提供了一系列數(shù)據(jù)預(yù)處理函數(shù),如下表所示。函數(shù)名稱函數(shù)說明StandardScaler對特征進(jìn)行標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化Normalizer對特征進(jìn)行歸一化Binarizer對定量特征進(jìn)行二值化處理OneHotEncoder對定性特征進(jìn)行獨(dú)熱編碼處理FunctionTransformer對特征進(jìn)行自定義函數(shù)變換使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維

sklearn除了提供基本的特征變換函數(shù)外,還提供了降維算法、特征選擇算法,這些算法的使用也是通過轉(zhuǎn)換器的方式進(jìn)行的。sklearn的decomposition模塊中提供了PCA類,可實(shí)現(xiàn)對數(shù)據(jù)集進(jìn)行PCA降維,PCA類的基本使用格式如下。classsklearn.decomposition.PCA(n_components=None,*,copy=True,whiten=False,svd_solver='auto',tol=0.0,iterated_power='auto',n_oversamples=10,power_iteration_normalizer='auto',random_state=None)使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維PCA類常用參數(shù)及其說明如下表所示。參數(shù)名稱參數(shù)說明n_components接收int、float、'mle'。表示降維后要保留的特征緯度數(shù)目。若未指定參數(shù)值,則表示所有特征均會被保留下來;若傳入為int型參數(shù)值,則表示將原始數(shù)據(jù)降低到n個(gè)維度;若傳入為float型參數(shù)值,則將根據(jù)樣本特征方差來決定降維后的維度數(shù)目;若賦值為“mle”,則將會使用MLE算法來根據(jù)特征的方差分布情況自動選擇一定數(shù)量的主成分特征來降維。默認(rèn)為Nonecopy接收bool。表示是否在運(yùn)行算法時(shí)將原始訓(xùn)練數(shù)據(jù)進(jìn)行復(fù)制。若為True,則運(yùn)行算法后原始訓(xùn)練數(shù)據(jù)的值不會有任何改變;若為False,則運(yùn)行算法后原始訓(xùn)練數(shù)據(jù)的值將會發(fā)生改變。默認(rèn)為Truewhiten接收bool。表示對降維后的特征進(jìn)行標(biāo)準(zhǔn)化處理,使得特征具有相同的方差。默認(rèn)為Falsesvd_solver接收str。表示使用的SVD算法,可選randomized、full、arpack、auto。randomized一般適用于數(shù)據(jù)量大,數(shù)據(jù)維度多,同時(shí)主成分?jǐn)?shù)目比例又較低的PCA降維。full是使用SciPy庫實(shí)現(xiàn)的傳統(tǒng)SVD算法。arpack和randomized的適用場景類似,區(qū)別在于,randomized使用的是sklearn自己的SVD實(shí)現(xiàn),而arpack直接使用了SciPy庫的sparseSVD實(shí)現(xiàn)。auto則代表PCA類會自動在上述3種算法中去權(quán)衡,選擇一個(gè)合適的SVD算法來降維。默認(rèn)為auto目錄1構(gòu)建并評價(jià)聚類模型使用sklearn轉(zhuǎn)換器處理數(shù)據(jù)2構(gòu)建并評價(jià)分類模型3構(gòu)建并評價(jià)回歸模型4使用sklearn估計(jì)器構(gòu)建聚類模型聚類的輸入是一組未被標(biāo)記的樣本,聚類根據(jù)數(shù)據(jù)自身的距離或相似度將它們劃分為若干組,劃分的原則是組內(nèi)(內(nèi)部)距離最小化,而組間(外部)距離最大化,如圖所示。使用sklearn估計(jì)器構(gòu)建聚類模型常用的聚類算法及其類別如下表所示。算法類別包括的主要算法劃分(分裂)方法K-Means算法(K-平均)、K-MEDOIDS算法(K-中心點(diǎn))和CLARANS算法(基于選擇的算法)層次分析方法BIRCH算法(平衡迭代歸約和聚類)、CURE算法(代表點(diǎn)聚類)和CHAMELEON算法(動態(tài)模型)基于密度的方法DBSCAN算法(基于高密度連接區(qū)域)、DENCLUE算法(密度分布函數(shù))和OPTICS算法(對象排序識別)基于網(wǎng)格的方法STING算法(統(tǒng)計(jì)信息網(wǎng)絡(luò))、CLIOUE算法(聚類高維空間)和WAVE-CLUSTER算法(小波變換)使用sklearn估計(jì)器構(gòu)建聚類模型sklearn常用的聚類算法模塊cluster提供的聚類算法及其適用范圍如下表所示。算法名稱參數(shù)適用范圍距離度量K-Means簇?cái)?shù)可用于樣本數(shù)目很大、聚類數(shù)目中等的場景點(diǎn)之間的距離Spectralclustering簇?cái)?shù)可用于樣本數(shù)目中等、聚類數(shù)目較小的場景圖距離Wardhierarchicalclustering簇?cái)?shù)可用于樣本數(shù)目較大、聚類數(shù)目較大的場景點(diǎn)之間

溫馨提示

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

最新文檔

評論

0/150

提交評論