W003

例3.2 协方差矩阵、Pearson相关系数矩阵、Spearman秩相关系数矩阵

例3.2 问题描述:
绘制鸢尾花数据集的4个属性间的散点图,并计算各属性之间的协方差矩阵、Pearson相关系数矩阵和Spearman秩相关系数矩阵。
Python

import numpy as np;
from sklearn import datasets;
import matplotlib.pyplot as plt;
import scipy.stats as st;

#第3章第3.1.1节,例3.2
Iris_ds = datasets.load_iris();
X = Iris_ds.data;
y = Iris_ds.target;
print(X); #输出X矩阵
print(y); #输出y向量

fig = plt.figure();
ax1 = fig.add_subplot(231);
ax1.scatter(X[:, 0], X[:, 1]);
ax2 = fig.add_subplot(232);
ax2.scatter(X[:, 0], X[:, 2]);
ax3 = fig.add_subplot(233);
ax3.scatter(X[:, 0], X[:, 3]);
ax3 = fig.add_subplot(234);
ax3.scatter(X[:, 1], X[:, 2]);
ax3 = fig.add_subplot(235);
ax3.scatter(X[:, 1], X[:, 3]);
ax3 = fig.add_subplot(236);
ax3.scatter(X[:, 2], X[:, 3]);
plt.show();
covMatrix = np.cov(X.transpose());
corrMatrix = np.corrcoef(X.transpose());
spearResult = st.spearmanr(X);
spearMatrix = spearResult.correlation;
print(covMatrix);
print(corrMatrix);
print(spearMatrix);
print(spearResult.pvalue);

C++ #include "orsci.h"
#include "orsci_dm.h"
using namespace orsci;
using namespace dm;
mdouble X = dmt::dataset::iris::iris_X(); mdouble covMatrix = X.cov(); mdouble corrMatrix = X.corr_pearson(); mdouble spearMatrix = X.corr_spearman(); cout << covMatrix << endl; cout << corrMatrix << endl; cout << spearMatrix << endl;
输出

展示矩阵(略),结果参见《数据分析与数据挖掘建模与工具》。

书籍 姜维.《数据分析与数据挖掘》、《数据分析与数据挖掘建模与工具》,电子工业出版社, 2023,2024。
软件 Python,C++(附加orsci包)。