心跳信号分类预测(二)

数据分析

1 总览数据概况:
  1. describe中有每列的统计量,个数count、平均值mean、方差std、最小值min、中位数25% 50% 75% 、以及最大值 看这个信息主要是瞬间掌握数据的大概的范围以及每个值的异常值的判断,比如有的时候会发现999 9999 -1 等值这些其实都是nan的另外一种表达方式,有的时候需要注意下。
  2. info 通过info来了解数据每列的type,有助于了解是否存在除了nan以外的特殊符号异常。

data.describe()——获取数据的相关统计量
data.info()——获取数据类型

例如:

test.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20000 entries, 0 to 19999
Data columns (total 2 columns):
 #   Column             Non-Null Count  Dtype 
---  ------             --------------  ----- 
 0   id                 20000 non-null  int64 
 1   heartbeat_signals  20000 non-null  object
dtypes: int64(1), object(1)
memory usage: 312.6+ KB
train.describe()

		id				label
count	100000.000000	100000.000000
mean	49999.500000	0.856960
std		28867.657797	1.217084
min		0.000000		0.000000
25%		24999.750000	0.000000
50%		49999.500000	0.000000
75%		74999.250000	2.000000
max		99999.000000	3.000000
2.判断数据缺失和异常

data.isnull().sum()——查看每列的存在nan情况

train.isnull().sum() # 查看train里边空数据的数量
id                   0
heartbeat_signals    0
label                0
dtype: int64
3.了解数据的分布
train['label'].value_counts()  # 统计label列下数据的分布

0.0    64327
3.0    17912
2.0    14199
1.0     3562
Name: label, dtype: int64
  1. 总体分布概况(无界约翰逊分布等)
import scipy.stats as st
import seaborn as sns
y = train['label']
plt.figure(1); plt.title('Default')
sns.distplot(y, rug=True, bins=20)
plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=st.norm)
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=st.lognorm)

在这里插入图片描述
2. 查看skewness and kurtosis

# 2)查看skewness and kurtosis
# https://zhuanlan.zhihu.com/p/53887420
sns.distplot(train['label']);
print("Skewness: %f" % train['label'].skew())   #偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。偏度(Skewness)亦称偏态、偏态系数。 
print("Kurtosis: %f" % train['label'].kurt())   #峰度  用来描述数据分布陡峭或是平滑的情况。
Skewness: 0.871005
Kurtosis: -1.009573

在这里插入图片描述
偏度(Skewness)
用来描述数据分布的对称性,正态分布的偏度为0。计算数据样本的偏度,当偏度<0时,称为负偏,数据出现左侧长尾;当偏度>0时,称为正偏,数据出现右侧长尾;当偏度为0时,表示数据相对均匀的分布在平均值两侧,不一定是绝对的对称分布,此时要与正态分布偏度为0的情况进行区分。
当偏度绝对值过大时,长尾的一侧出现极端值的可能性较高。

峰度(Kurtosis)
用来描述数据分布陡峭或是平滑的情况。正态分布的峰度为3,峰度越大,代表分布越陡峭,尾部越厚;峰度越小,分布越平滑。很多情况下,为方便计算,将峰度值-3,因此正态分布的峰度变为0,方便比较。
在方差相同的情况下,峰度越大,存在极端值的可能性越高。

Python代码实现方法:

pandas的Series 数据结构可以直接调用skew()方法来查看偏度

df.iloc[:,1].skew()

pandas的Series 数据结构可以直接调用kurt()方法来查看峰度

df.iloc[:,1].kurt()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值