自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Python進(jìn)行相關(guān)性分析,5行代碼就夠了

開發(fā) 后端
相關(guān)性分析是指對多個具備相關(guān)關(guān)系的變量進(jìn)行分析,從而衡量變量間的相關(guān)程度或密切程度。相關(guān)性可以應(yīng)用到所有數(shù)據(jù)的分析過程中,任何事物之間都是存在一定的聯(lián)系。相關(guān)性用R(相關(guān)系數(shù))表示,R的取值范圍是[-1, 1]。

1.相關(guān)和因果是一回事嗎

相關(guān)性不等于因果。用x1和x2作為兩個變量進(jìn)行解釋,相關(guān)意味著x1和x2是邏輯上的并列相關(guān)關(guān)系,而因果聯(lián)系可以解釋為因?yàn)閤1所以x2(或因?yàn)閤2所以x1)的邏輯關(guān)系,二者是完全不同的。

[[278758]]

用一個運(yùn)營示例來說明二者的關(guān)系:做商品促銷活動時,通常都會以較低的價格進(jìn)行銷售,以此來實(shí)現(xiàn)較高的商品銷量;隨著商品銷售的提升,也給線下物流配送體系帶來了更大的壓力,在該過程中通常會導(dǎo)致商品破損量的增加。

本案例中,商品低價與破損量增加并不是因果關(guān)系,即不能說因?yàn)樯唐穬r格低所以商品破損量增加;二者的真實(shí)關(guān)系是都是基于促銷這個大背景下,低價和破損量都是基于促銷產(chǎn)生的。

相關(guān)性的真實(shí)價值不是用來分析“為什么”的,而是通過相關(guān)性來描述無法解釋的問題背后真正成因的方法。相關(guān)性的真正的價值是能知道“是什么”,即無論通過何種因素對結(jié)果產(chǎn)生影響,最終出現(xiàn)的規(guī)律就是二者會一起增加或降低等。

仍然是上面的案例,通過相關(guān)性分析我們可以知道,商品價格低和破損量增加是相伴發(fā)生的,這意味著當(dāng)價格低的時候(通常是做銷售活動,也有可能產(chǎn)品質(zhì)量問題、物流配送問題、包裝問題等),我們就想到破損量可能也會增加。但是到底由什么導(dǎo)致的破損量增加,是無法通過相關(guān)性來得到的。

2.相關(guān)系數(shù)低就是不相關(guān)嗎

R(相關(guān)系數(shù))低就是不相關(guān)嗎?其實(shí)不是。

R的取值可以為負(fù),R=-0.8代表的相關(guān)性要高于R=0.5。負(fù)相關(guān)只是意味著兩個變量的增長趨勢相反,因此需要看R的絕對值來判斷相關(guān)性的強(qiáng)弱。

即使R的絕對值低,也不一定說明變量間的相關(guān)性低,原因是相關(guān)性衡量的僅僅是變量間的線性相關(guān)關(guān)系,變量間除了線性關(guān)系外,還包括指數(shù)關(guān)系、多項(xiàng)式關(guān)系、冪關(guān)系等,這些“非線性相關(guān)”的相關(guān)性不在R(相關(guān)性分析)的衡量范圍之內(nèi)。

3.代碼實(shí)操:Python相關(guān)性分析

本示例中,將使用Numpy進(jìn)行相關(guān)性分析。源文件data5.txt位于“附件-chapter3”中。附件下載地址:

http://www.dataivy.cn/book/python_book_v2.zip

  1. import numpy as np # 導(dǎo)入庫 
  2. data = np.loadtxt('data5.txt', delimiter='\t') # 讀取數(shù)據(jù)文件 
  3. x = data[:, :-1] # 切分自變量 
  4. correlation_matrix = np.corrcoef(x, rowvar=0) # 相關(guān)性分析 
  5. print(correlation_matrix.round(2)) # 打印輸出相關(guān)性結(jié)果 

示例中實(shí)現(xiàn)過程如下:

  1. 先導(dǎo)入Numpy庫;
  2. 使用Numpy的loadtxt方法讀取數(shù)據(jù)文件,數(shù)據(jù)文件以tab分隔;
  3. 矩陣切片,切分出自變量用來做相關(guān)性分析;
  4. 使用Numpy的corrcoef方法做相關(guān)性分析,通過參數(shù)rowvar = 0控制對列做分析;
  5. 打印輸出相關(guān)性矩陣,使用round方法保留2位小數(shù)。結(jié)果如下:
  1. [[ 1. -0.04 0.27 -0.05 0.21 -0.05 0.19 -0.03 -0.02] 
  2.  [-0.04 1. -0.01 0.73 -0.01 0.62 0. 0.48 0.51] 
  3.  [ 0.27 -0.01 1. -0.01 0.72 0. 0.65 0.01 0.02] 
  4.  [-0.05 0.73 -0.01 1. 0.01 0.88 0.01 0.7 0.72] 
  5.  [ 0.21 -0.01 0.72 0.01 1. 0.02 0.91 0.03 0.03] 
  6.  [-0.05 0.62 0. 0.88 0.02 1. 0.03 0.83 0.82] 
  7.  [ 0.19 0. 0.65 0.01 0.91 0.03 1. 0.03 0.03] 
  8.  [-0.03 0.48 0.01 0.7 0.03 0.83 0.03 1. 0.71] 
  9.  [-0.02 0.51 0.02 0.72 0.03 0.82 0.03 0.71 1. ]] 

相關(guān)性矩陣的左側(cè)和頂部都是相對的變量,從左到右、從上到下依次是列1到列9。從結(jié)果看出:

  • 第5列和第7列相關(guān)性較高,系數(shù)達(dá)到0.91。
  • 第4列和第6列相關(guān)性較高,系數(shù)達(dá)到0.88。
  • 第8列和第6列相關(guān)性較高,系數(shù)達(dá)到0.83。

為了更好地展示相關(guān)性結(jié)果,我們可以配合Matplotlib展示圖像。代碼如下:

  1. fig = plt.figure() # 調(diào)用figure創(chuàng)建一個繪圖對象 
  2. ax = fig.add_subplot(111) # 設(shè)置1個子網(wǎng)格并添加子網(wǎng)格對象 
  3. hot_img = ax.matshow(np.abs(correlation_matrix), vmin=0, vmax=1) 
  4.  # 繪制熱力圖,值域從0到1 
  5. fig.colorbar(hot_img) # 為熱力圖生成顏色漸變條 
  6. ticks = np.arange(0, 9, 1) # 生成0~9,步長為1 
  7. ax.set_xticks(ticks) # 生成x軸刻度 
  8. ax.set_yticks(ticks) # 設(shè)置y軸刻度 
  9. names = ['x' + str(i) for i in range(x.shape[1])] # 生成坐標(biāo)軸標(biāo)簽文字 
  10. ax.set_xticklabels(names) # 生成x軸標(biāo)簽 
  11. ax.set_yticklabels(names) # 生成y軸標(biāo)簽 

上述代碼的功能都已經(jīng)在注釋中注明。有以下幾點(diǎn)需要注意:

  • 由于相關(guān)性結(jié)果中看的是絕對值的大小,因此需要對correlation_matrix做取絕對值操作,其對應(yīng)的值域會變?yōu)閇0, 1]。
  • 原始數(shù)據(jù)中由于沒有列標(biāo)題,因此這里使用列表推導(dǎo)式生成從x0到x8代表原始的9個特征。

展示結(jié)果如圖所示。

用Python進(jìn)行相關(guān)性分析,5行代碼就夠了

從圖像中配合顏色可以看出:顏色越亮(彩色顏色為越黃),則相關(guān)性結(jié)果越高,因此從左上角到右下角呈現(xiàn)一條黃色斜線;而顏色較亮的第5列和第7列、第4列和第6列及第8列和第6列分別對應(yīng)x4和x6、x3和x5、x7和x5。

上述過程中,主要需要考慮的關(guān)鍵點(diǎn)是:如何理解相關(guān)性和因果關(guān)系的差異,以及如何應(yīng)用相關(guān)性。相關(guān)性分析除了可以用來分析不同變量間的相關(guān)伴生關(guān)系以外,也可以用來做多重共線性檢驗(yàn)。

代碼實(shí)操小結(jié):本節(jié)示例中,主要用了如下幾個知識點(diǎn)。

  • 通過Numpy的loadtxt方法讀取文本數(shù)據(jù)文件,并指定分隔符;
  • 對Numpy矩陣做切塊處理;
  • 使用Numpy中的corrcoef做相關(guān)性分析;
  • 使用round方法保留2位小數(shù);
  • 使用np.abs取絕對值;
  • 使用列表推導(dǎo)式生成新列表;
  • 使用Matplotlib的熱力圖配合相關(guān)性結(jié)果做圖像展示。

 

責(zé)任編輯:華軒 來源: 華章科技
相關(guān)推薦

2020-07-08 15:10:11

Python數(shù)據(jù)分析代碼

2010-03-05 09:40:08

Python遞歸

2010-03-10 19:34:45

Python主線程

2018-04-24 10:45:00

Python人工智能圖像識別

2010-03-12 14:51:47

Python布爾表達(dá)式

2013-05-22 14:02:34

2024-08-19 11:52:24

機(jī)器學(xué)習(xí)模型h-stat

2020-08-25 18:10:22

Python代碼線性回歸

2020-11-10 08:37:05

Python線性回歸機(jī)器學(xué)習(xí)

2021-07-28 13:29:57

大數(shù)據(jù)PandasCSV

2009-12-24 16:09:42

ADO.NET數(shù)據(jù)源

2020-10-06 15:59:38

AI

2017-11-21 08:42:23

災(zāi)難恢復(fù)計(jì)劃

2009-07-17 16:21:26

社交相關(guān)性排序算法

2014-05-29 17:11:59

優(yōu)化鏈接

2021-07-16 14:24:08

網(wǎng)絡(luò)犯罪加密貨幣網(wǎng)絡(luò)攻擊

2020-07-23 09:15:25

Python機(jī)器學(xué)習(xí)聚類分析

2021-04-11 08:30:40

VRAR虛擬現(xiàn)實(shí)技術(shù)

2018-09-26 11:02:46

微服務(wù)架構(gòu)組件

2022-08-01 11:33:09

用戶分析標(biāo)簽策略
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號