首页 > 编程知识 正文

斯皮尔曼相关系数检验表,斯皮尔曼相关性分析条件

时间:2023-05-03 10:53:05 阅读:237368 作者:4410

ajdtk相关系数(ajdtk等级相关系数),可以用来计算单调性,计算思路是:

首先将值做排序判断排序的序号之间的相关系数

更多详情请参考:https://zh.wikipedia.org/wiki/%E6%96%AF%E7%9A%AE%E5%B0%94%E6%9B%BC%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0

工具类:

def spearmanr_selection(x_data, y_data): """ajdtk相关系数""" from scipy.stats import spearmanr param_dict = [] for col_name, c_data in x_data.iteritems(): sp = spearmanr(c_data, y_data)[0] param_dict.append([col_name, abs(sp)]) feature_df = pd.DataFrame(param_dict) feature_df.sort_values(by=1, ascending=False, inplace=True) return feature_df

得到的feature_df中的value值越大,说明相关性越强,这个特征越重要

示例 import pandas as pdfrom sklearn.datasets import make_regression, make_classificationdef spearmanr_selection(x_data, y_data): """ajdtk相关系数""" from scipy.stats import spearmanr param_dict = [] for col_name, c_data in x_data.iteritems(): sp = spearmanr(c_data, y_data)[0] param_dict.append([col_name, abs(sp)]) feature_df = pd.DataFrame(param_dict) feature_df.sort_values(by=1, ascending=False, inplace=True) return feature_dfif __name__ == '__main__': value_x, value_y = make_classification(n_samples=1000, n_classes=4, n_features=10, n_informative=8) df_x = pd.DataFrame(value_x, columns=['f_1', 'f_2', 'f_3', 'f_4', 'f_5', 'f_6', "f_7", "f_8", "f_9", "f_10"]) df_y = pd.Series(value_y) # 下面是筛选单变量特征 feature_df = spearmanr_selection(df_x, df_y) for col_index, value in feature_df.iterrows(): print(value[0], ":", value[1])

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。