網站首頁 編程語言 正文
Pandas 計算相關性系數corr()
相關:數據之間有關聯,相互有影響
如:A和B 存在一定的相關性,A對B存在一定程度的影響,A變化,B也會有一定的變化
- 如果A和B相等 或者 B可以由A經過計算得到---->完全相關
- 如果B是由 A和C計算得到 ---->并且 A可以計算出B的大部分 -----> A和B 強度相關
- 如果B是由 A和C計算得到 ---->并且 A可以計算出B的小部分 -----> A和B 弱度相關
- 如果 A和B 毫無關系 ----> 不相關
如果B和 A相關:
- A的增大導致B的減小 —> 負相關
- A的增大導致B的增大 —> 正相關
相關性系數:衡量相關性強弱的
其范圍是[-1,1],絕對值越靠近0,表示不相關,絕對值越靠近1,表示相關性越強
小于 0 表示負相關;大于 0 表示正相關。
構造如下數據
import pandas as pd data = pd.DataFrame( data={ 'age': [2,7,10,16,20], 'height': [70,90,143,166,178], 'score': [98,37,103,76,53] } )
使用corr()方法計算相關性系數:
# 計算相關性系數的列 必須都是數值型的數據! corr = data.loc[:, ["age","height"]].corr()?? ??? ?# 會計算兩兩列之間的相關性系數 print("corr\n", corr) """ corr ? ? ? ? ? ? age ? height age ? ? 1.00000 ?0.96043 height ?0.96043 ?1.00000 """
自身與自身的相關性系數為 1
計算多列相關性系數:
corr = data.loc[:, ["age","height","score"]].corr() print("corr\n", corr) """ corr ? ? ? ? ? ? ?age ? ?height ? ? score age ? ? 1.000000 ?0.960430 -0.340053 height ?0.960430 ?1.000000 -0.096782 score ?-0.340053 -0.096782 ?1.000000 """
pandas相關系數-DataFrame.corr()參數
DataFrame.corr(method='pearson', min_periods=1)
參數說明
-
method
:可選值為{‘pearson’, ‘kendall’, ‘spearman’} -
pearson
:Pearson相關系數來衡量兩個數據集合是否在一條線上面,即針對線性數據的相關系數計算,針對非線性數據便會有誤差。 -
kendall
:用于反映分類變量相關性的指標,即針對無序序列的相關系數,非正太分布的數據 -
spearman
:非線性的,非正太分布的數據的相關系數 -
min_periods
:樣本最少的數據量 - 返回值:各類型之間的相關系數DataFrame表格。
為區分不同參數之間的區別,我們實驗如下:
from pandas import DataFrame import pandas as pd x=[a for a in range(100)] #構造一元二次方程,非線性關系 def y_x(x): return 2*x**2+4 y=[y_x(i) for i in x] data=DataFrame({'x':x,'y':y}) #查看下data的數據結構 data.head() Out[34]: x y 0 0 4 1 1 6 2 2 12 3 3 22 4 4 36 data.corr() Out[35]: x y x 1.000000 0.967736 y 0.967736 1.000000 data.corr(method='spearman') Out[36]: x y x 1.0 1.0 y 1.0 1.0 data.corr(method='kendall') Out[37]: x y x 1.0 1.0 y 1.0 1.0
因為y經由函數構造出來,x和y的相關系數為1,但從實驗結構可知pearson系數,針對非線性數據有一定的誤差。
需要說明,數據之間的相關關系,并不代表其之間的因果關系,相關系數為1,只能說明二者之間具備完全相關性,但不能說y是x的果。
原文鏈接:https://blog.csdn.net/weixin_45760274/article/details/123655196
相關推薦
- 2023-02-07 C#實現加密bat文件的示例詳解_C#教程
- 2023-02-02 C++調用matlab引擎實現三維圖的繪制_C 語言
- 2022-01-18 獲取當前的日期 格式為YYYY-MM-dd 和時間戳轉時間
- 2021-11-04 詳解C++中的const和constexpr_C 語言
- 2022-06-19 WPF項目在設計界面調用后臺代碼_實用技巧
- 2022-10-17 C++右值引用與move和forward函數的使用詳解_C 語言
- 2022-07-16 Date 轉為 LocalDate
- 2023-04-01 一文帶你深入了解Python中的二次移動平均法_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支