机器学习(七)使用pandas库进行数据分析_——统计信息和离散化
2016-10-26 16:30
771 查看
在特征工程中,对于数值型数据(比如年龄为25岁、31岁。。,商店某个时间段的销量为20W件等等),
通常要对这些数值型数据进行统计分析,比如求取它们的最大最小值、期望方差等,pandas库在数据分析中非常好用。
对 数值型数据进行离散化,也用到pandas的cut函数,具体操作如下代码:
# -*- coding: utf-8 -*- """ Created on Wed Oct 26 15:34:48 2016 @author: sirius """ import pandas as pd import numpy as np """ 数据的统计值 """ series=pd.Series(np.random.randn(500)) series.describe(percentiles=[0.05,0.25,0.75,0.95]) #分位数,用于取 把向量从小到大排列,取向量5%、25%...分界点的数据 #可通过分位数来了解这一段数据的大小怎么样,从而了解某个数据在整体的定位 mean=series.mean() s_min=series.min() s_max=series.max() s_std=series.std() """ 数据的离散化,把连续值赋予一个离散化的操作~~ 比如,有个电商商铺,他有一个10块钱的爱奇艺账户,也有一辆100万的车,这是一个跨度很大的值。 离散化的操作就是就是这个商铺的所有价格分为100个价格段,那么离散化之后的价格就是一个100维的向量, 当你的价格落在这个区段时,这个向量的这个点值为1,其它值为0. ------当数据不均衡时,比如数据分布为0-100,但数据大多集中在0-10(占80%), 此时可以把0-10的段细分为很多小段,虽然这样会产生很多[1,0,0,...],但不影响离散化编码 """ arr=np.random.randn(20) factor=pd.cut(arr,5) #用cut函数来分段向量,在把数据映射到其中,得到0-1向量 print factor """ 结果如下: >>>[(-0.133, 0.396], (-0.133, 0.396], (-0.663, -0.133], (-0.663, -0.133], (-0.663, -0.133], ..., (-0.133, 0.396], (-0.663, -0.133], (-0.133, 0.396], (-1.193, -0.663], (0.396, 0.926]] Length: 20 Categories (5, object): [(-1.726, -1.193] < (-1.193, -0.663] < (-0.663, -0.133] < (-0.133, 0.396] < (0.396, 0.926]] """ arr2=np.random.randint(0,10,size=30) #范围0-10,共30个数 arr3=pd.Series(arr2) #先转换为series格式 print arr3.value_counts() #统计频数 """ 结果如下: >>> print arr3.value_counts() 0 8 9 5 3 4 1 4 6 3 2 3 8 1 7 1 5 1 dtype: int64 """ arr4=np.sort(arr3) arr5=pd.Series(arr4) fac=pd.cut(arr5,4) print fac """ >>> print fac 值 0 (-0.009, 2.25] 0 1 (-0.009, 2.25] 0 2 (-0.009, 2.25] 0 3 (-0.009, 2.25] 0 4 (-0.009, 2.25] 1 5 (-0.009, 2.25] 1 6 (-0.009, 2.25] 2 7 (-0.009, 2.25] 2 8 (-0.009, 2.25] 2 9 (2.25, 4.5] 3 10 (2.25, 4.5] 3 11 (2.25, 4.5] 3 12 (2.25, 4.5] 3 13 (2.25, 4.5] 3 14 (2.25, 4.5] 4 15 (2.25, 4.5] 4 16 (4.5, 6.75] 5 17 (4.5, 6.75] 5 18 (4.5, 6.75] 6 19 (4.5, 6.75] 6 20 (4.5, 6.75] 6 21 (6.75, 9] 7 22 (6.75, 9] 7 23 (6.75, 9] 7 24 (6.75, 9] 7 25 (6.75, 9] 8 26 (6.75, 9] 8 27 (6.75, 9] 8 28 (6.75, 9] 9 29 (6.75, 9] 9 dtype: category Categories (4, object): [(-0.009, 2.25] < (2.25, 4.5] < (4.5, 6.75] < (6.75, 9]] """
相关文章推荐
- 机器学习(九)使用sklearn库进行数据分析_——文本特征处理
- 利用Python进行数据分析(9) pandas基础: 汇总统计和计算
- 机器学习(八)使用sklearn库进行数据分析_——特征处理之过滤、包裹、嵌入型
- 【量化小讲堂-Python&Pandas系列01】如何快速上手使用Python进行金融数据分析
- 利用Pandas进行数据分析(3)——统计、处理缺失值、层次化索引
- 开启机器学习的第一课:用Pandas进行数据分析
- Python 使用 pandas 进行数据分析
- Python数据分析与机器学习-使用Kmeans进行图像压缩
- 利用 Python 进行数据分析(九)pandas 汇总统计和计算
- 将db2数据库某用户下的所有表进行数据统计分析
- 使用VS TFS源码分析软件PATFS进行数据附件大小限制的自定义设置
- 使用Orange进行数据挖掘之聚类分析(1)------层次聚类
- 使用DataTable进行统计与分析(.net)
- SQLSERVER收集语句运行的统计信息并进行分析
- 使用Awstats(for windows)进行网站分析统计
- 在Windows Mobile和Wince(Windows Embedded CE)下使用.NET Compact Framework进行GPS NMEA data数据分析的开发
- 使用 Google Analytics 对 iPhone/iPad 应用进行统计和分析
- 使用Enumerable模块实现简单的测试框架并进行数据统计