河南自己怎么做网站,资阳优化团队市场,建设一个网站需要些什么材料,做前端网站要注意哪些1.常见理解误区#xff08;1#xff09;计算出变量A和变量B的皮尔逊相关系数为0#xff0c;不代表A和B之间没有相关性#xff0c;只能说明A和B之间不存在线性相关关系。例#xff1a;温度和冰淇淋销量之间的散点图像如下#xff0c;可以发现大致成二次函数图像#xff0…1.常见理解误区1计算出变量A和变量B的皮尔逊相关系数为0不代表A和B之间没有相关性只能说明A和B之间不存在线性相关关系。例温度和冰淇淋销量之间的散点图像如下可以发现大致成二次函数图像随着温度升高销量也会增加达到峰值后随着温度升高销量反而下降。也就是说销量和温度之间是有关系的。不过计算温度和销量之间的皮尔逊相关系数却为0。这只能说明温度和销量之间没有线性相关关系而不能说二者不存在相关关系。图片来自于网络博客2皮尔逊相关系数并不稳定会受到异常点的影响。例如果不考虑最右侧的异常点x和y之间的相关系数应该为0即无论y取何值x都为固定值8。但是考虑了异常点后x和y的相关系数变为0.816。这也说明在进行数据分析之前需要对数据进行清洗去掉异常点、噪声数据使得分析结果更为可靠。3皮尔逊相关系数绝对值越大二者相关性越强答案是不一定。除了相关系数的大小我们更要关心相关系数的显著性。2.皮尔逊相关系数正确使用步骤第一步绘制散点图是否存在异常点。如果有异常点删除异常点。然后再看观察变量x和变量y之间的关系是否近似为一条直线如果是则计算皮尔逊相关系数。相关系数为(0,1]的正数表明x和y之间呈线性正相关相关系数为0表明二者不存在线性相关关系但不排除存在其他非线性相关关系相关系数为[-1,0)的负数表明x和y之间存在线性负相关关系。如果散点图并不类似于一条直线而是其他类型图像如二次函数图像、指数图像即使计算出皮尔逊相关系数也没有意义。3.python代码示例python sklearn库中datasets模块中有一个boston房价数据集可以使用load_boston()函数进行加载。print(load_boston().DESCR)#查看boston数据集基本信息#加载数据集并进行数据处理
from sklearn.datasets import load_boston
import pandas as pd
rawdata load_boston()#加载数据
features pd.DataFrame(rawdata.data,columns rawdata.feature_names)#提取特征集
label pd.DataFrame(rawdata.target,columns [target])#提取标签列boston pd.concat([features,label],axis 1)#合并特征集和标签列
print(boston)#绘制散点矩阵图由于boston矩阵共有14个属性全部属性两两绘制散点图过于庞大因此选择其中3个属性进行两两组合绘制散点图
import matplotlib.pyplot as plt
import seaborn as sb
sb.pairplot(data boston,vars [CRIM,INDUS,target])#CRIM,INDUS,target三个变量之间两两组合绘制散点图
plt.savefig(C:UsersCaraDesktopscatter fig.png)#绘图结果存到本地绘图如下3个变量两两组合绘制出6幅散点图其中有3幅会是重复的我们只需要看左下角3幅或右上角3幅即可。蓝色柱形图是变量的数值频率分布图。从散点图可以看出CRIM和INDUS并没有线性相关性。CRIM和target房价大致成负相关性图像接近指数函数非线性函数因此计算出的相关系数可能并不可靠。INDUS和target之间大致成负线性相关同时右侧存在几个异常点最终计算出的相关系数会受到异常点的影响。直观的认识需要精确的相关系数作为检验注释corr()方法默认的相关系数为皮尔逊也可以设置method 参数为其他类型的相关系数如 kendall, spearman。由于宽度限制中间列显示不完全可以设置参数#更改显示设置打印全部列
pd.set_option(display.max_columns,None)#若单行不够显示全部列将会换行显示
print(boston.corr())查看单个变量与其他变量间的皮尔逊相关系数由上可见犯罪率确实与房价呈负相关。不过没有显著性指标作为支持。如果需要同时返回皮尔逊相关系数和显著性指标则可以使用scipy库中stats模块中的stats模块下的pearsonr 函数。stats是一系列统计方法的集合如峰度、t检验、相关性、F检验……from scipy.stats import stats
help(stats.pearsonr)#使用scipy中的函数计算相关系数及显著性
from scipy.stats import stats
r,p_value stats.pearsonr(boston[CRIM],boston[target])#计算CRIM和target之间的相关系数和对应的显著性
print(相关系数为{:.3f},p值为{:.5f}.format(r,p_value))#相关系数保留3位小数p值保留5位小数p值远小于0.01表明CRIM和target 在1%的水平上存在显著的线性相关对应的相关系数为-0.388。不过使用这种方法缺点很明显不能一次性计算所有变量两两组合的相关性。最后绘制热力图直观展示变量间的线性相关性#绘制相关系数的热力图
import seaborn as sb
r_pearson boston.corr()
sb.heatmap(data r_pearson)换个色系sb.heatmap(data r_pearson,cmapYlGnBu)全部代码如下from sklearn.datasets import load_boston
import pandas as pd
#查看Boston数据集的基本信息
print(load_boston().DESCR)rawdata load_boston()#加载数据集
features pd.DataFrame(rawdata.data,columns rawdata.feature_names)#提取特征列
label pd.DataFrame(rawdata.target,columns [target])#提取房价列target列
boston pd.concat([features,label],axis 1)#组合特征列和房价列#绘制散点图
import matplotlib.pyplot as plt
import seaborn as sb
sb.pairplot(data boston,vars [CRIM,INDUS,target])
plt.savefig(C:UsersCaraDesktopscatter fig.png)#计算全部变量的相关性矩阵
print(boston.corr())#查看目标变量‘房价’与其他变量间的相关性
print(boston.corr()[target])#查看犯罪率CRIM与其他变量之间的关系
print(boston.corr()[CRIM])#更改显示设置打印全部列
pd.set_option(display.max_columns,None)
print(boston.corr())#使用scipy中的函数计算CRIM和target的相关系数及显著性
from scipy.stats import stats
r,p_value stats.pearsonr(boston[CRIM],boston[target])
print(相关系数为{:.3f},p值为{:.5f}.format(r,p_value))#绘制相关系数的热力图
import seaborn as sb
r_pearson boston.corr()
sb.heatmap(data r_pearson,cmapYlGnBu)#cmap设置色系参考【强烈推荐】清风数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.compython画热力图相关系数矩阵图_henbile的博客-CSDN博客_python 相关性热力图blog.csdn.net