我是靠谱客的博主 聪慧世界,最近开发中收集的这篇文章主要介绍心跳信号分类预测(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据分析

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()

最后

以上就是聪慧世界为你收集整理的心跳信号分类预测(二)的全部内容,希望文章能够帮你解决心跳信号分类预测(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部