【机器学习】数据集观察 | python |直方图,密度图,箱线图,统计数据,数据种类分布,相关性热力图

前言

参考教材:《机器学习 python实战》《机器学习》

一、肉眼观察(print)

我们用鸢尾花数据来完成本文的工作
首先在导入数据前,我们需要得到鸢尾花数据的CSV:
在这里插入图片描述
数据集可以通过以下指令自动下载到对应的环境文件夹中

from sklearn import datasets #导入数据集模块
iris = datasets.load_iris()#加载鸢尾花数据集

比如我电脑上自动下载的位置是:D:\Anaconda3\envs\python36\lib\site-packages\sklearn\datasets\data\iris.csv

紧接着我们粗暴观察一下数据集:

import pandas as pd
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data)

在这里插入图片描述
从图中可以看出,有行名也有列名,还有行数和列数。
现在,我们用直方图直观画出它的数据分布:

import pandas as pd
import matplotlib.pyplot as plt
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data)
data.hist(bins=50) #bins用来调整直方图的宽度
plt.show()

在这里插入图片描述
我们再画出它的密度图:

import pandas as pd
import matplotlib.pyplot as plt
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data)
data.plot(kind='density',subplots=True,layout=(2,3),sharex=False)#layout类似于matlab里的subplot
plt.show()

在这里插入图片描述
我们再画出它的箱线图:

import pandas as pd
import matplotlib.pyplot as plt
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data)
data.plot(kind='box',subplots=True,layout=(2,3),sharex=False)#layout类似于matlab里的subplot
plt.show()

在这里插入图片描述

二、数据类型

得到每一种数据的类型,是浮点数还是整数还是什么

import pandas as pd
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data.dtypes)

在这里插入图片描述

三、统计数据(平均值,方差等等)

import pandas as pd
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data.describe())

在这里插入图片描述
从上往下依次是:
记录数,平均值,标准方差,最小值,下四分位数,中位数,上四分位数,最大值。

四.数据种类分布

左边那列是列名,右边是个数

import pandas as pd
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data.groupby('class').size())

在这里插入图片描述

import pandas as pd
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data.groupby('class').size())

在这里插入图片描述
上面这张图只显示了一部分

五.相关性——肉眼

根据教材上的说法,如果数据特征的相关性比较高,那么某些算法的性能会降低。对于某些相关性高的变量,可以进行降维。
0表示无关,1表示完全正相关,-1表示完全负相关

import pandas as pd
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data.corr())

在这里插入图片描述

六.相关性——数据散点图

数据散点图可以很直观的看出因变量和自变量的大致变化趋势,而且可以瞬间画出所有图(巴适的很)

import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
array=data.values #从dataframe数据格式转为矩阵格式,重要的一步
X=array[:,:4] #输入特征
Y=array[:,4] #标签label
print(Y)
scatter_matrix(data,marker='o',c=Y,hist_kwds={'bins':50}) #marker是图片中数据类型,c是颜色用标签label就行,hist_kwds用来调整直方图宽度
plt.show()

在这里插入图片描述

七.相关性——热力图

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
file_name='D:/数学建模2022/算法/数据集观察/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data.corr())
sns.heatmap(data.corr(),linewidths=0.1,vmax=1.0, square=True,linecolor='white', annot=True)
plt.show()

在这里插入图片描述

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
利用R语言中的"performanceanalytics"软件包进行频率直方图分析和相关性分析可以帮助我们更好地理解和解释数据。 首先,我们可以使用"performanceanalytics"软件包中的函数,例如"Hist()",来创建频率直方图。此函数可以将数据集的值分组并绘制直方图,以显示每个值的频率。 例如,我们可以使用以下代码来创建一个简单的频率直方图: ``` library(performanceanalytics) data <- c(1, 2, 1, 3, 1, 2, 4, 3, 2, 1) # 这里只是一个示例数据集 hist <- Hist(data) plot(hist) ``` 这将创建一个表示数据集频率的直方图,并将其显示在屏幕上。从直方图中,我们可以了解数据分布情况和每个值的相对频率。 其次,在相关性分析方面,我们可以使用"performanceanalytics"软件包中的函数,例如"chart.Correlation()",来计算和可视化变量之间的相关性。 假设我们有两个变量,x和y,我们可以使用以下代码进行相关性分析: ``` library(performanceanalytics) x <- c(1, 2, 3, 4, 5) # 这里只是一个示例数据集 y <- c(2, 4, 6, 8, 10) correlation <- chart.Correlation(x, y) plot(correlation) ``` 这将计算x和y之间的相关性,并将相关性矩阵和相关性显示在屏幕上。从中我们可以确定变量之间的线性相关度。 总结来说,利用R语言中的"performanceanalytics"软件包可以进行频率直方图分析和相关性分析,帮助我们更好地理解和解释数据分布和变量之间的关系。以上只是简单的示例,更多功能和参数可以在软件包的文档中找到。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值