小白自学——房价预测(六)

数据分析(三)

接下来我们再探究各个顺序变量(ordinal variable)和price之间的关系,用斯皮尔曼等级相关系数(Spearman’s rank-order correlation)来计算相关性

plt.figure(figsize=(12, 10))
plt.subplot(211)
sns.boxplot(y='bathrooms', x='price', data=kc_train, orient='h')
plt.subplot(212)
sns.boxplot(y='grade', x='price', data=kc_train, orient='h')
plt.show()

在这里插入图片描述
这里我们可以看出,bathrooms和garde等连续变量是具有等级的特性,我们就可以用斯皮尔曼相关系数来计算他们的与price的相关性。

from scipy.stats import spearmanr

r, p = spearmanr(kc_train['floors'], kc_train['price'])
print ('floors 和 price 斯皮尔曼相关系数为 %s,其中 p = %s' %(r,p))
r, p = spearmanr(kc_train['bedrooms'], kc_train['price'])
print ('bedrooms 和 price 斯皮尔曼相关系数为 %s,其中 p = %s' %(r,p))
r, p = spearmanr(kc_train['bathrooms'], kc_train['price'])
print ('bathrooms 和 price 斯皮尔曼相关系数为 %s,其中 p = %s' %(r,p))
r, p = spearmanr(kc_train['grade'], kc_train['price'])
print ('grade 和 price 斯皮尔曼相关系数为 %s,其中 p = %s' %(r,p))

a,b:是一维或二维数组,b是可选的。
axis:整型或者空值,如果axis = 0(默认值),则每列代表一个变量,并在行中进行观察。如果axis = 1,则转换关系:每行代表一个变量,而列包含观察值。
nan_policy : {‘propagate’, ‘raise’, ‘omit’}, 都是可选的,定义输入包含nan时的处理方式。'propagate’返回nan,'raise’抛出错误,‘omit’执行忽略nan值的计算。默认为’propagate’。
在这里插入图片描述
我们就可以得出以下几个结论:
连续变量中sqft_living、sqft_above、sqft_basement与price之间存在极强的相关关系
二元变量basement_present、renovated与price之间存在一定的相关关系,但是关联度较小
几个顺序变量(floors、bedrooms、bathrooms、grade)都与price之间存在相关关系。

这里讲个知识点——斯皮尔曼(spearman)相关系数和皮尔森(pearson)相关系数的区别。
1.连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman相关系数也可以,效率没有pearson相关系数高。
2.上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
3.两个定序测量数据之间也用spearman相关系数,不能用pearson相关系数。

pearson相关通常是用来计算等距及等比数据或者说连续数据之间的相关的,这类数据的取值不限于整数,如前后两次考试成绩的相关就适合用pearson相关。
spearman相关专门用于计算等级数据之间的关系,这类数据的特点是数据有先后等级之分但连续两个等级之间的具体分数差异却未必都是相等的,比如第一名和第二名的分数差就未必等于第二名和第三名的分数差。两次考试的排名数据适用于spearman相关。
spearman相关只能计算等级数据,但pearson相关却既可以用来算等级相关,也可以算连续数据的相关,只不过一般默认用pearson相关计算连续数据的相关。
如果数据中没有重复值, 并且当两个变量完全单调相关时,斯皮尔曼相关系数则为+1或−1。
Pearson相关系数(Pearson CorrelationCoefficient)是用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA自学笔记——设计与验证JMB FPGA(可编程逻辑门阵列)是一种可编程的硬件平台,可以实现各种数字电路的设计与验证。本文将简要介绍使用FPGA自学设计与验证JMB(低功耗、高效能、集成度高的多媒体芯片)的过程。 首先,我们需要了解JMB的功能和特性。JMB是一种面向多媒体应用的芯片,具备低功耗、高效能和高集成度的优势。我们需要详细研究JMB的硬件架构和内部模块,包括处理器核、存储器模块、图像和音频处理模块等。 接下来,我们可以使用FPGA开发板来设计和验证JMB。首先,我们需要熟悉FPGA设计工具,例如Vivado或Quartus等。这些工具提供了图形化界面和硬件描述语言(HDL)等设计方法。我们可以使用HDL编写JMB的功能模块,并将其综合为FPGA可执行的位流文件。 在设计完成后,我们需要验证JMB的功能和性能。我们可以使用仿真工具(例如ModelSim或ISE Simulator)来模拟JMB在不同情况下的行为。通过设计测试程序并运行仿真,我们可以验证JMB的各个模块是否正确地工作,是否满足设计要求。 在验证完成后,我们可以将位流文件下载到FPGA开发板中进行智能芯片的物理实现和测试。通过与外部设备的连接以及相关测试程序的运行,我们可以验证JMB在实际硬件中的功能和性能。 总结起来,学习FPGA设计与验证JMB,我们需要熟悉JMB的硬件架构和内部模块,并使用FPGA开发工具进行设计与验证。通过仿真和物理实现测试,我们可以验证JMB的功能和性能。这些过程需要理论知识和实践经验的结合,希望这些笔记能够给你提供一些参考和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值