python特征值函數(shù) python 函數(shù) 屬性

特征值,特征向量,標(biāo)準(zhǔn)正交向量組與numpy

使用python的數(shù)值計算庫numpy來計算矩陣的特征值,特征向量與標(biāo)準(zhǔn)正交向量組

創(chuàng)新互聯(lián)成立于2013年,先為臨汾等服務(wù)建站,臨汾等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為臨汾企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

1.求矩陣 的特征值和各特征值所對應(yīng)的特征向量

2.求矩陣 的特征值和各特征值所對應(yīng)的特征向量

3.由向量組 構(gòu)造一組標(biāo)準(zhǔn)正交向量組

python求特征值和特征向量

拍子在求特征值和特征向量的過程中,你可以一定要變成這些正確編寫,正確之后的話就能夠直接出來了。

Python數(shù)據(jù)分析在數(shù)學(xué)建模中的應(yīng)用匯總(持續(xù)更新中?。?/h2>

1、Numpy常用方法使用大全(超詳細(xì))

1、Series和DataFrame簡單入門

2、Pandas操作CSV文件的讀寫

3、Pandas處理DataFrame,Series進(jìn)行作圖

1、Matplotlib繪圖之屬性設(shè)置

2、Matplotlib繪制誤差條形圖、餅圖、等高線圖、3D柱形圖

1、層次分析法(AHP)——算數(shù)平均值法、幾何平均值法、特征值法(Python實(shí)現(xiàn),超詳細(xì)注釋)

2、Python實(shí)現(xiàn)TOPSIS分析法(優(yōu)劣解距離法)

3、Python實(shí)現(xiàn)線性插值和三次樣條插值

4、Python實(shí)現(xiàn)線性函數(shù)的擬合算法

5、Python實(shí)現(xiàn)統(tǒng)計描述以及計算皮爾遜相關(guān)系數(shù)

6、Python實(shí)現(xiàn)迪杰斯特拉算法和貝爾曼福特算法求解最短路徑

python pca怎么得到主成份

一般步驟來實(shí)現(xiàn)PCA算法

(1)零均值化

假如原始數(shù)據(jù)集為矩陣dataMat,dataMat中每一行代表一個樣本,每一列代表同一個特征。零均值化就是求每一列的平均值,然后該列上的所有數(shù)都減去這個均值。也就是說,這里零均值化是對每一個特征而言的,零均值化都,每個特征的均值變成0。實(shí)現(xiàn)代碼如下:

[python]?view plain?copy

def?zeroMean(dataMat):

meanVal=np.mean(dataMat,axis=0)?????#按列求均值,即求各個特征的均值

newData=dataMat-meanVal

return?newData,meanVal

函數(shù)中用numpy中的mean方法來求均值,axis=0表示按列求均值。

該函數(shù)返回兩個變量,newData是零均值化后的數(shù)據(jù),meanVal是每個特征的均值,是給后面重構(gòu)數(shù)據(jù)用的。

(2)求協(xié)方差矩陣

[python]?view plain?copy

newData,meanVal=zeroMean(dataMat)

covMat=np.cov(newData,rowvar=0)

numpy中的cov函數(shù)用于求協(xié)方差矩陣,參數(shù)rowvar很重要!若rowvar=0,說明傳入的數(shù)據(jù)一行代表一個樣本,若非0,說明傳入的數(shù)據(jù)一列代表一個樣本。因?yàn)閚ewData每一行代表一個樣本,所以將rowvar設(shè)置為0。

covMat即所求的協(xié)方差矩陣。

(3)求特征值、特征矩陣

調(diào)用numpy中的線性代數(shù)模塊linalg中的eig函數(shù),可以直接由covMat求得特征值和特征向量:

[python]?view plain?copy

eigVals,eigVects=np.linalg.eig(np.mat(covMat))

eigVals存放特征值,行向量。

eigVects存放特征向量,每一列帶別一個特征向量。

特征值和特征向量是一一對應(yīng)的

(4)保留主要的成分[即保留值比較大的前n個特征]

第三步得到了特征值向量eigVals,假設(shè)里面有m個特征值,我們可以對其排序,排在前面的n個特征值所對應(yīng)的特征向量就是我們要保留的,它們組成了新的特征空間的一組基n_eigVect。將零均值化后的數(shù)據(jù)乘以n_eigVect就可以得到降維后的數(shù)據(jù)。代碼如下:

[python]?view plain?copy

eigValIndice=np.argsort(eigVals)????????????#對特征值從小到大排序

n_eigValIndice=eigValIndice[-1:-(n+1):-1]???#最大的n個特征值的下標(biāo)

n_eigVect=eigVects[:,n_eigValIndice]????????#最大的n個特征值對應(yīng)的特征向量

lowDDataMat=newData*n_eigVect???????????????#低維特征空間的數(shù)據(jù)

reconMat=(lowDDataMat*n_eigVect.T)+meanVal??#重構(gòu)數(shù)據(jù)

return?lowDDataMat,reconMat

代碼中有幾點(diǎn)要說明一下,首先argsort對特征值是從小到大排序的,那么最大的n個特征值就排在后面,所以eigValIndice[-1:-(n+1):-1]就取出這個n個特征值對應(yīng)的下標(biāo)?!緋ython里面,list[a:b:c]代表從下標(biāo)a開始到b,步長為c。】

Python 數(shù)據(jù)可視化:分類特征統(tǒng)計圖

上一課已經(jīng)體驗(yàn)到了 Seaborn 相對 Matplotlib 的優(yōu)勢,本課將要介紹的是 Seaborn 對分類數(shù)據(jù)的統(tǒng)計,也是它的長項。

針對分類數(shù)據(jù)的統(tǒng)計圖,可以使用 sns.catplot 繪制,其完整參數(shù)如下:

本課使用演繹的方式來學(xué)習(xí),首先理解這個函數(shù)的基本使用方法,重點(diǎn)是常用參數(shù)的含義。

其他的參數(shù),根據(jù)名稱也能基本理解。

下面就依據(jù) kind 參數(shù)的不同取值,分門別類地介紹各種不同類型的分類統(tǒng)計圖。

讀入數(shù)據(jù)集:

然后用這個數(shù)據(jù)集制圖,看看效果:

輸出結(jié)果:

毫無疑問,這里繪制的是散點(diǎn)圖。但是,該散點(diǎn)圖的橫坐標(biāo)是分類特征 time 中的三個值,并且用 hue='kind' 又將分類特征插入到圖像中,即用不同顏色的的點(diǎn)代表又一個分類特征 kind 的值,最終得到這些類別組合下每個記錄中的 pulse 特征值,并以上述圖示表示出來。也可以理解為,x='time', hue='kind' 引入了圖中的兩個特征維度。

語句 ① 中,就沒有特別聲明參數(shù) kind 的值,此時是使用默認(rèn)值 'strip'。

與 ① 等效的還有另外一個對應(yīng)函數(shù) sns.stripplot。

輸出結(jié)果:

② 與 ① 的效果一樣。

不過,在 sns.catplot 中的兩個參數(shù) row、col,在類似 sns.stripplot 這樣的專有函數(shù)中是沒有的。因此,下面的圖,只有用 sns.catplot 才能簡潔直觀。

輸出結(jié)果:

不過,如果換一個叫角度來說,類似 sns.stripplot 這樣的專有函數(shù),表達(dá)簡單,參數(shù)與 sns.catplot 相比,有所精簡,使用起來更方便。

仔細(xì)比較,sns.catplot 和 sns.stripplot 兩者還是稍有區(qū)別的,雖然在一般情況下兩者是通用的。

因此,不要追求某一個是萬能的,各有各的用途,存在即合理。

不過,下面的聲明請注意: 如果沒有非常的必要,比如繪制分區(qū)圖,在本課中后續(xù)都演示如何使用專有名稱的函數(shù)。

前面已經(jīng)初步解釋了這個函數(shù),為了格式完整,這里再重復(fù)一下,即 sns.catplot 中參數(shù) kind='strip'。

如果非要將此函數(shù)翻譯為漢語,可以稱之為“條狀散點(diǎn)圖”。以分類特征為一坐標(biāo)軸,在另外一個坐標(biāo)軸上,根據(jù)分類特征,將該分類特征數(shù)據(jù)所在記錄中的連續(xù)值沿坐標(biāo)軸描點(diǎn)。

從語句 ② 的結(jié)果圖中可以看到,這些點(diǎn)雖然縱軸的數(shù)值有相同的,但是沒有將它們重疊。因此,我們看到的好像是“一束”散點(diǎn),實(shí)際上,所有點(diǎn)的橫坐標(biāo)都應(yīng)該是相應(yīng)特征分類數(shù)據(jù),也不要把分類特征的值理解為一個范圍,分散開僅僅是為了圖示的視覺需要。

輸出結(jié)果:

④ 相對 ② 的圖示,在于此時同一縱軸值的都重合了——本來它們的橫軸值都是一樣的。實(shí)現(xiàn)此效果的參數(shù)是 jitter=0,它可以表示點(diǎn)的“振動”,如果默認(rèn)或者 jitter=True,意味著允許描點(diǎn)在某個范圍振動——語句 ② 的效果;還可設(shè)置為某個 0 到 1 的浮點(diǎn),表示許可振動的幅度。請對比下面的操作。

輸出結(jié)果:

語句 ② 中使用 hue='kind' 參數(shù)向圖中提供了另外一個分類特征,但是,如果感覺圖有點(diǎn)亂,還可以這樣做:

輸出結(jié)果:

dodge=True 的作用就在于將 hue='kind' 所引入的特征數(shù)據(jù)分開,相對 ② 的效果有很大差異。

并且,在 ⑤ 中還使用了 paletter='Set2' 設(shè)置了色彩方案。

sns.stripplot 函數(shù)中的其他有關(guān)參數(shù),請讀者使用幫助文檔了解。

此函數(shù)即 sns.catplot 的參數(shù) kind='swarm'。

輸出結(jié)果:

再繪制一張簡單的圖,一遍研究這種圖示的本質(zhì)。

輸出結(jié)果:

此圖只使用了一個特征的數(shù)據(jù),簡化表象,才能探究 sns.swarmplot 的本質(zhì)。它同樣是將該特征中的數(shù)據(jù),依據(jù)其他特征的連續(xù)值在圖中描點(diǎn),并且所有點(diǎn)在默認(rèn)情況下不彼此重疊——這方面與 sns.stripplot 一樣。但是,與之不同的是,這些點(diǎn)不是隨機(jī)分布的,它們經(jīng)過調(diào)整之后,均勻?qū)ΨQ分布在分類特征數(shù)值所在直線的兩側(cè),這樣能很好地表示數(shù)據(jù)的分布特點(diǎn)。但是,這種方式不適合“大數(shù)據(jù)”。

sns.swarmplot 的參數(shù)似乎也沒有什么太特殊的。下面使用幾個,熟悉一番基本操作。

在分類維度上還可以再引入一個維度,用不同顏色的點(diǎn)表示另外一種類別,即使用 hue 參數(shù)來實(shí)現(xiàn)。

輸出結(jié)果:

這里用 hue = 'smoker' 參數(shù)又引入了一個分類特征,在圖中用不同顏色來區(qū)分。

如果覺得會 smoker 特征的值都混在一起有點(diǎn)亂,還可以使用下面方式把他們分開——老調(diào)重彈。

輸出結(jié)果:

生成此效果的參數(shù)就是 dodge=True,它的作用就是當(dāng) hue 參數(shù)設(shè)置了特征之后,將 hue 的特征數(shù)據(jù)進(jìn)行分類。

sns.catplot 函數(shù)的參數(shù) kind 可以有三個值,都是用于繪制分類的分布圖:

下面依次對這三個專有函數(shù)進(jìn)行闡述。

網(wǎng)站欄目:python特征值函數(shù) python 函數(shù) 屬性
新聞來源:http://muchs.cn/article20/hggdco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、標(biāo)簽優(yōu)化軟件開發(fā)、微信公眾號面包屑導(dǎo)航、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)