异常值

python数据分析实战---数据处理

孤者浪人 提交于 2019-11-30 21:13:55
数据处理 缺失值处理 数据缺失主要包括记录缺失和字段信息缺失等情况,其对数据分析会有较大影响,导致结果不确定性更加显著 1.判断是否有缺失值 import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import stats % matplotlib inline # 判断是否有缺失值数据 - isnull,notnull # isnull:缺失值为True,非缺失值为False # notnull:缺失值为False,非缺失值为True s = pd.Series([12,33,45,23,np.nan,np.nan,66,54,np.nan,99]) df = pd.DataFrame({'value1':[12,33,45,23,np.nan,np.nan,66,54,np.nan,99,190], 'value2':['a','b','c','d','e',np.nan,np.nan,'f','g',np.nan,'g']}) # 创建数据 print(s.isnull()) # Series直接判断是否是缺失值,返回一个Series print(df.notnull()) # Dataframe直接判断是否是缺失值,返回一个Series print(df[

《python数据分析和数据挖掘》——数据预处理

心不动则不痛 提交于 2019-11-30 18:25:18
此文为《python数据分析和数据挖掘》的读书笔记 通俗讲,经过我们前期的数据分析,得到了数据的缺陷,那么我们现在要做的就是去对数据进行预处理,可包括四个部分:数据清洗、数据集成、数据变换、数据规约。 处理过程如图所示: 1、数据清洗 1) 缺失值处理: 删除记录、数据插补、不处理。不处理吧总感觉不自在,删除了吧数据又有点舍不得,所以一般插补方法用的比较多,该文重点介绍Lagrange插补法和牛顿插补法,并介绍代码。 偷点懒他的详细过程我截图好了。 a 拉格朗日插补法 b 牛顿插补法 但是由于python中的Scipy库中提供了Lagrange插值法的函数,实现上更为容易,应用较多。而牛顿插值法则需要根据自行编写。需要指出两者给出的结果是相同的(相同次数、相同系数的多项式),不过表现的形式不同而已。 二话不说贴上亲测的python代码: import pandas as pd from scipy.interpolate import lagrange#导入拉格朗日函数 import sys sys.__stdout__=sys.stdout inputfile='catering_sale.xls'#销售数据途径 outputfile='tmp/sales.xls'#输出数据途径 data=pd.read_excel(inputfile,Index_col=u'日期')#读入数据

Python数据分析与挖掘实战总结

十年热恋 提交于 2019-11-30 18:22:10
Python数据分析与挖掘实战 第三章 数据探索 3.1 数据质量分析 3.1.1 缺失值分析 3.1.2 异常值分析 3.2 数据特征分析 3.2.1 统计量分析 3.2.2 贡献度分析 3.2.3 相关性分析 3.2.4 统计特征函数 3.2.5 绘图函数 第四章 数据预处理 4.1 数据清洗 4.1.1 缺失值处理 4.2 数据变换 4.1.1 数据归一化 4.1.2 数据离散化(聚类) 4.3 属性改造 4.4 数据规约 4.5 常用预处理函数 第五章 挖掘建模 第三章 数据探索 3.1 数据质量分析 3.1.1 缺失值分析 缺失值的处理分为三种情况: 删除存在缺失值的记录; 对可能的数据进行插值:拉格朗日插值,牛顿插值法: 3.1.2 异常值分析 首先可以先使用describe()函数查看数据的基本情况: import pandas as pd # 餐饮数据 catering_sale = './data/catering_sale.xls' # 读取数据,指定日期列为索引列 data = pd.read_excel(catering_sale,index_col=u'日期') data.describe() 检测异常值的方法可以使用箱型图: import pandas as pd catering_sale = './data/catering_sale.xls'

matlab使用移动平均滤波器、重采样和Hampel过滤器进行信号平滑处理

你离开我真会死。 提交于 2019-11-30 02:33:43
原文链接: http://tecdat.cn/?p=6977 此示例显示如何使用移动平均滤波器和重采样来隔离每小时温度读数的时间周期分量的影响,以及从开环电压测量中消除不需要的线路噪声。 该示例还显示了如何使用Hampel过滤器来移除大异常值。 动机 平滑是我们如何发现数据中的重要模式,同时忽略不重要的事物(即噪音)。我们使用过滤来执行此平滑。平滑的目标是产生缓慢的价值变化,以便更容易看到我们数据的趋势。 有时,当您检查输入数据时,您可能希望平滑数据以查看信号中的趋势。在我们的例子中,我们在洛根机场每个小时都有一套摄氏温度,在2011年1月的整个月。 ​ 请注意,我们可以直观地看到一天中的时间对温度读数的影响。如果您只对每月的日常温度变化感兴趣,则每小时波动只会产生噪音,这会使日常变化难以辨别。为了消除时间的影响,我们现在想通过使用移动平均滤波器来平滑我们的数据。 移动平均滤波器 在其最简单的形式中,长度为N的移动平均滤波器取波形的每N个连续样本的平均值。 为了对每个数据点应用移动平均滤波器,我们构造滤波器的系数,使每个点的权重相等,并且对总平均值贡献1/24。这给出了每24小时的平均温度。 ​ ​ 过滤延迟 请注意,过滤后的输出会延迟大约十二小时。这是因为我们的移动平均滤波器有延迟。 任何长度为N的对称滤波器都将具有(N-1)/ 2个样本的延迟。 fDelay =(length

Generative Adversarial Active Learning for Unsupervised Outlier Detection

南楼画角 提交于 2019-11-30 01:42:39
关键词:离群点检测、生成潜在离群点、维数诅咒、生成性对抗主动学习、模式崩溃问题、多目标生成性对抗主动学习 1.INTRODUCTION 1.1 Outlier Detection应用领域 异常轨迹 运动目标检测 欺诈检测 新兴主题检测 医疗信息检测 1.2存在的问题 需要足够多的正常、异常的标签(非常昂贵) 通过假设整个数据集只包含正常实例,异常检测通常被认为是一类分类问题。最直接的方法是为所有样本创建一个模型,然后根据与建立的正常配置文件的偏差计算离群值。 具体方法有基于统计的模型、基于回归的模型、基于集群的模型、基于重构的模型,它们对正常数据的生成机制做出了不同的假设。 问题: 缺乏关于数据特征的先验信息,很难选择合适的模型和参数。 1.3AGPO-baesd方法 通过生成潜在的异常值来创建标记数据集。然后,任何现成的分类器都可以用于后续的检测。 最直观的方法是 从均匀分布中抽取潜在的异常值 。然而,由于 数据在高维空间中的稀疏性 ,有限数量的潜在异常值可能无法提供足够的信息来帮助分类器描述一个清晰的边界,从而将异常值与正常数据分离开来。 为了解决这个问题,已经做了一些工作来生成发生在真实数据内部或附近的数据点。例如, 一类分类方法 综合了基于真实数据密度估计的潜在异常值;然而,它需要对数据的基本分布做出假设。 基于主动学习的方法 通过不确定抽样从随机生成的数据中选择信息样本

用pandas进行数据清洗(一)(Data Analysis Pandas Data Munging/Wrangling)

痞子三分冷 提交于 2019-11-28 13:00:11
在《 用pandas进行数据清洗(一)(Data Analysis Pandas Data Munging/Wrangling) 》中,我们介绍了数据清洗经常用到的一些pandas命令。 接下来看看这份数据的具体清洗步骤: Transaction_ID Transaction_Date Product_ID Quantity Unit_Price Total_Price 0 1 2010-08-21 2 1 30 30 1 2 2011-05-26 4 1 40 40 2 3 2011-06-16 3 NaN 32 32 3 4 2012-08-26 2 3 55 165 4 5 2013-06-06 4 1 124 124 5 1 2010-08-21 2 1 30 30 6 7 2013-12-30 7 8 2014-04-24 2 2 NaN NaN 8 9 2015-04-24 4 3 60 1800 9 10 2016-05-08 4 4 9 36 1,查看数据的行列数: print(transactions.shape) (10, 6) 数据一共有10行6列。 2,查看数据的数据类型: print(transactions.dtypes) Transaction_ID int64 Transaction_Date datetime64[ns] Product_ID

ML-软间隔(slack)的 SVM

半城伤御伤魂 提交于 2019-11-28 00:47:00
Why Slack? 为了处理 异常值(outlier) . 前面推导的svm形式, 是要求 严格地全部分对 , 基于该情况下, 在 margin 的边界线 线上的点, 只能是 支持向量 . \(min_w \ \frac {1}{2} ||w||^2 \\ s.t. \ y_i(w^Tx_i + b) >= 1\) 而现实生活中, 往往数据是没有那么 完美 . 于是这样严格找到的 margin 可能就因为异常值 而 不是最优的( 非最优就是没有 很好地 将2波数据给分开 ).则相应的处理方式,就是适当允许一些点(异常点)在 margin 之间. 更进一步说明该问题的本质, 就是关于 线性不可分 .(比如有些点完全分布在另一边去了, "身在汉营,心在曹", 幽默一下). 这时候, 必须要放松限制了呀, 不然就没有办法找到 margin 了. 另外一种方式就是大家谈烂大街的 核变换(Kernel trick), 升维到高维空间就能分开了. 还是先回到 slack. Slack svm 数学模型 感觉我现在是越来越喜欢数学语言,数学模型了, 虽然绝大多数时候都是看不懂的. 其 明显的好处是能将自然语言化的想法,通过符号化, 逻辑性的语言来表示 , 这种好处, 我真正认识到它的 美妙 , 有3次 高峰体检 , 初一 那年, 通过三角形相似的方法,推导出了 勾股定律 ; 高三 那年,

箱形图和小提琴图

梦想的初衷 提交于 2019-11-27 04:50:20
箱形图(Box-plot) 又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图,因形状如箱子而得名。它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。 箱形图绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同的母体数据时更可表现其差异。 箱形图的绘制主要包含六个数据节点,需要先将数据从大到小进行排列,然后分别计算出它的上边缘,上四分位数,中位数,下四分位数,下边缘,还有一个异常值。 计算过程: 计算上四分位数(Q3),中位数,下四分位数(Q1) 计算上四分位数和下四分位数之间的差值,即四分位数差(IQR, interquartile range)Q3-Q1 绘制箱线图的上下范围,上限为上四分位数,下限为下四分位数。在箱子内部中位数的位置绘制横线。 大于上四分位数1.5倍四分位数差的值,或者小于下四分位数1.5倍四分位数差的值,划为异常值(outliers)。 异常值之外,最靠近上边缘和下边缘的两个值处,画横线,作为箱线图的触须。 极端异常值,即超出四分位数差3倍距离的异常值,用实心点表示;较为温和的异常值,即处于1.5倍-3倍四分位数差之间的异常值,用空心点表示。 为箱线图添加名称,数轴等 分位数 根据其将数列等分的形式不同可以分为中位数,四分位数,十分位数、百分位数等等。四分位数作为分位数的一种形式

特征工程系列:数据清洗

拜拜、爱过 提交于 2019-11-27 04:44:16
特征工程系列:数据清洗 本文为数据茶水间群友原创,经授权在本公众号发表。 关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~ 0x00 前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见, 特征工程在机器学习中占有相当重要的地位 。在实际应用当中,可以说特征工程是机器学习成功的关键。 那特征工程是什么? 特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。 特征工程又包含了Data PreProcessing(数据预处理)、Feature Extraction(特征提取)、Feature Selection(特征选择)和Feature construction(特征构造)等子问题,本章内容主要讨论数据预处理的方法及实现。 特征工程是机器学习中最重要的起始步骤,数据预处理是特征工程的最重要的起始步骤,而数据清洗是数据预处理的重要组成部分,会直接影响机器学习的效果。 0x01 数据清洗介绍 数据清洗(Data cleaning)– 对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并提供数据一致性。 数据清洗, 是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。 0x02 格式内容清洗 1.格式内容问题产生的原因