数据分析
1 总览数据概况:
- describe中有每列的统计量,个数count、平均值mean、方差std、最小值min、中位数25% 50% 75% 、以及最大值 看这个信息主要是瞬间掌握数据的大概的范围以及每个值的异常值的判断,比如有的时候会发现999 9999 -1 等值这些其实都是nan的另外一种表达方式,有的时候需要注意下。
- info 通过info来了解数据每列的type,有助于了解是否存在除了nan以外的特殊符号异常。
data.describe()
——获取数据的相关统计量
data.info()
——获取数据类型
例如:
复制代码
1
2
3
4
5
6
7
8
9
10
11test.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
复制代码
1
2
3
4
5
6
7
8
9
10
11
12train.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情况
复制代码
1
2
3
4
5
6train.isnull().sum() # 查看train里边空数据的数量 id 0 heartbeat_signals 0 label 0 dtype: int64
3.了解数据的分布
复制代码
1
2
3
4
5
6
7
8train['label'].value_counts() # 统计label列下数据的分布 0.0 64327 3.0 17912 2.0 14199 1.0 3562 Name: label, dtype: int64
- 总体分布概况(无界约翰逊分布等)
复制代码
1
2
3
4
5
6
7
8
9
10import 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
复制代码
1
2
3
4
5
6# 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()) #峰度 用来描述数据分布陡峭或是平滑的情况。
复制代码
1
2
3Skewness: 0.871005 Kurtosis: -1.009573
偏度(Skewness)
用来描述数据分布的对称性,正态分布的偏度为0。计算数据样本的偏度,当偏度<0时,称为负偏,数据出现左侧长尾;当偏度>0时,称为正偏,数据出现右侧长尾;当偏度为0时,表示数据相对均匀的分布在平均值两侧,不一定是绝对的对称分布,此时要与正态分布偏度为0的情况进行区分。
当偏度绝对值过大时,长尾的一侧出现极端值的可能性较高。
峰度(Kurtosis)
用来描述数据分布陡峭或是平滑的情况。正态分布的峰度为3,峰度越大,代表分布越陡峭,尾部越厚;峰度越小,分布越平滑。很多情况下,为方便计算,将峰度值-3,因此正态分布的峰度变为0,方便比较。
在方差相同的情况下,峰度越大,存在极端值的可能性越高。
Python代码实现方法:
pandas的Series 数据结构可以直接调用skew()方法来查看偏度
复制代码
1
2df.iloc[:,1].skew()
pandas的Series 数据结构可以直接调用kurt()方法来查看峰度
复制代码
1
2df.iloc[:,1].kurt()
最后
以上就是聪慧世界最近收集整理的关于心跳信号分类预测(二)的全部内容,更多相关心跳信号分类预测(二)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复