异常值

机器学习之数据探索——数据质量分析

ぐ巨炮叔叔 提交于 2020-03-06 22:01:49
数据探索是对样本数据进行解释性的分析工作,它是数据挖掘和机器学习较为前期的部分,更偏重于研究数据的本质、描述数据的形态特征并解释数据的相关性。 换句话说,透过数据探索,我们应该可以回答如下问题: 样本数据的分布怎样?有什么特点?数据之间有何种关系?数据是否满足建模要求? 问题驱动发展,对以上问题进行解答,涉及到数据探索的两个方面工作: 数据质量分析 数据特征分析 需要提及的是,数据探索与数据预处理紧密相连的,二者在数据挖掘的中没有绝对的先后次序。比如,在数据质量分析中,就牵涉到数据预处理中的数据清洗。 本文将主要介绍数据质量分析的相关工作。 数据质量分析 数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,脏数据包括以下方面: 1 缺失值 2 异常值 3 不一致的值 4 重复数据以及含有特殊符号(如#、¥、*)的数据 对于第四种数据,理解起来比较简单,处理也很容易,因此主要针对前三种数据进行分析,至于处理手段,所用到的方法是数据预处理中的数据清洗内容。 1 缺失值 数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确。 (1)缺失值产生原因 1)有些信息暂时无法获取,或者获取代价太大。 2)有些信息被遗漏。可能是忘记填写或对数据理解错误等因素,也可能是由于数据采集设备的故障造成。 3)属性值不存在。在某些情况下

python: 数据预处理

佐手、 提交于 2020-03-05 23:27:39
数据预处理包含 数据清洗 Data cleaning 数据集成 Data integration 数据变换 Data transformation 数据规约 Data reduction 一、 数据清洗 数据清洗包括缺失值处理、异常值处理 1. 缺失值处理 删除 填充 – 固定值 – 均值,中位数/众数 – 上下数据 – 插值函数 – 最可能的值 DataFrame处理缺失值 数据选自私家车轨迹数据,为了更好的演示例子,我做了相应更改, 数据下载请点击 import pandas as pd quotesdf_nan = pd . read_csv ( 'Trajectories_v1.csv' , index_col = 'ID' ) #缺失值显示NaN print ( quotesdf_nan . isnull ( ) ) #查看是否含缺失值。true表四确实 print ( quotesdf_nan . dropna ( ) ) #删除缺失值,使用默认参数 # ================================================================ # axis = 0 or 'index',删除含缺失值的行 # 1or 'colums',删除含缺失值的列 # how = 'any', 只要行列中有缺失值就删除 # 'any',

数据竞赛(二)-数据清洗

隐身守侯 提交于 2020-01-26 06:20:04
缺失值分析及处理 缺失值出现的原因分析 采取合适的方式对缺失值进行填充 异常值分析及处理 根据测试集数据的分布处理训练集的数据分布 使用合适的方法找出异常值 对异常值进行处理 深度清洗 分析每一个communityName、city、region、plate的数据分布并对其进行数据清洗 参考资料: 一文带你探索性数据分析(EDA) 分割线正文 主要思路分析 虽然这步骤是缺失值处理,但还会涉及到一些最最基础的数据处理。 缺失值处理 缺失值的处理手段大体可以分为:删除、填充、映射到高维(当做类别处理)。详细的请自行查找相关资料学习。 根据任务一,直接找到的缺失值情况是pu和uv;但是,根据特征nunique分布的分析,可以发现rentType存在"–"的情况,这也算是一种缺失值。 此外,诸如rentType的"未知方式";houseToward的"暂无数据"等,本质上也算是一种缺失值,但是对于这些缺失方式,我们可以把它当做是特殊的一类处理,而不需要去主动修改或填充值。 将rentType的"–“转换成"未知方式"类别; pv/uv的缺失值用均值填充; buildYear存在"暂无信息”,将其用众数填充。 转换object类型数据 这里直接采用LabelEncoder的方式编码,详细的编码方式请自行查阅相关资料学习。 时间字段的处理 buildYear由于存在"暂无信息"

数据异常值检测和过滤

a 夏天 提交于 2020-01-25 20:36:30
数据异常值检测和过滤 查看数据信息 info head describe 使用describe()函数查看每一列的描述性统计量 空值处理:isnull()判空 fillna()填充 dropna()删除 重复值处理:duplicated()查看重复行 drop_duplicates() 删除重复行 异常值处理: (整列数据像转换成标准的正态分布) 数值 > 3*std 离群点:Q1 Q3 IQR=Q3-Q1 UP_LEVEL=Q3+1.5IQR BOOTOM_LEVEL=Q1 -1.5IQR 结合业务场景进行异常值判定 使用std()函数可以求得DataFrame对象每一列的标准差。 获取异常数据的索引 根据每一列或行的标准差,对DataFrame元素进行过滤 借助any()或all()函数,测试是否有True,有一个或以上返回True,反之返回False 对每一列应用筛选条件,去除标准差太大的数据 删除特定索引df.drop(labels,inplace=True) df . drop ( labels = df . loc [ ( np . abs ( df ) > 3 * std ) . any ( axis = 1 ) ] . index ) . shape 来源: CSDN 作者: my_白白白 链接: https://blog.csdn.net/qq_41170489

足球运动员的数据分析实战(python)

余生颓废 提交于 2020-01-18 11:29:48
一、本案例的相关说明   本人把这篇文章拿出来进行写作的主要原因是为了让大家对数据分析有一个较为清楚的认识,其实数据分析并不是那么高深,只是看你怎么从一堆杂乱无章的数据中能够发现一定的有规律性的结论,有时候可能会觉得某些结论有些牵强,但这属于每个人对每个问题而见解不同,因而较强的数据分析能力,需要我们在实际工作中进行慢慢培养出来。同时这篇文章很好的将pandas库运用到其中,这个也可以帮助我们学以致用,用而学,会起到更好的效果。 1、案例背景   足球运动是最受欢迎的运动之一。在此万受瞩目的运动下,打算针对足球运动员个人的信息,技能水平等各项指标进行相关的分析与统计。例如,我们可能会关注如下的内容: 足球运动员是否受出生日期的影响? 左撇子适合踢足球吗? 足球运动员的号码是否与位置相关? 足球运动员的年龄与能力具有怎样的关联? 2、任务说明   目前,我们收集到了某年现役运动员的数据集data.csv。我们希望通过该数据集,针对众多的足球运动员进行分析与统计,从而能够发现一些关于足球运动员的特征,解开我们上述疑问。 3、数据列名的含义 4、足球场上各位置说明 5、什么是数据分析?   数据分析指的就是利用统计学知识,对一系列杂乱无章的数据进行数据分析前的预处理,同时结合数据的具体应用场景,提炼出数据中的有效信息,帮助我们定位、分析、解决某些问题,高效决策。 6、数据分析的基本流程

特征工程

落花浮王杯 提交于 2020-01-16 02:38:31
特征工程是将原始数据转变为模型的训练数据的过程,目的是为了获取更好的训练数据特征。特征工程在机器学习中占有非常重要的作用,也是数据分析工作中最消耗时间与精力的一部分工作。 特征工程主要包括特征的获取、特征处理、特征监控三大部分,其中特征处理为特征工程的核心。 一、特征获取 特征获取方案应包括特征如何获取以及如何存储 二、特征处理 特征处理包括特征清洗、特征预处理两部分内容 (1)特征清洗   (a)重复值识别与处理(drop_duplicate)   (b)缺失值识别与处理     连续型变量,可以选择平均值或者中位数来填充缺失值;     离散型变量,一般选择众数填充缺失值   (c)异常值识别与处理     可以通过绘制散点图识别异常值;     可以通过聚类筛选异常值,如果某个簇样本数很少,且距离其它簇较远,则极有可能为异常值样本;     可以通过异常点检测方法(iForest或one class SVM);     筛选出的异常点最好找懂业务的人确认,防止误删,影响模型效果   (d)数据不均衡     如果训练集中的各个类别样本数量不是大约相同的比例,拟合出来的模型对于训练集中样本数少的类别泛化能力会很差,需要解决数据不平衡问题。 权重法:可以通过调整类别的权重来解决此问题,具体为针对训练集中的每一个类别加一个类别权重class_weight,该类别样本数量越多

机器学习:如何选择一个合适的算法

孤者浪人 提交于 2020-01-13 10:39:16
这个问题你为什么要选择这个模型,而不是另一个? 初学者常常很少考虑到这个问题,习惯于拿起模型就用,而忘了这个模型是否适合给定的问题和数据。 1、数据是怎样生成的?可以被看作是独立同分布吗?如果是,大多数方法都可以用,如果不是,需要考虑适用于非独立同分布的算法,比如隐马尔科夫模型。 2、有多少训练数据?越复杂的模型需要越多的训练数据。 3、有多少特征?最大似然方法在特征比较多的情况下通常不会表现的很好。 4、模型的可解释性有多重要?一些方法比如决策树的可解释性很好,但是准确率可能没那么高(它们受大方差的影响)。相比之下,随机森林的准确率更高一些但是可解释性要差一些。 5、有多少异常值?一些模型对异常值会更鲁棒。 6、计算复杂度有多大(也与数据和特征的数量有关)?比如非线性SVM的计算量是数据量的三次方,如果数据有几十万,计算量会是一个问题。 7、你有设计好的必杀特征或者你想让模型去学习它们?如果是后者,神经网络模型会让你感兴趣(但是计算量会很大)。 8、特定的应用场景:你的模型符合对当前问题的假设吗?比如SVM的各种核具有旋转不变性等特点,这对于给定的应用可能是重要的。具有这种能力的模型可能会表现的更好(深度学习会试图去发现这种关系但是需要大量的数据)。 翻译自 Andreas Merentitis 的回答: How does one choose which algorithm

datawhale数据竞赛day02-数据清洗

对着背影说爱祢 提交于 2020-01-11 03:35:00
datawhale数据竞赛day02-数据清洗 数据清洗主要是删除原始数据集中的无关数据、重复戴护具,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值、异常值等 在这一步,可以将训练集和测试值放在一起做处理 import pandas as pd #读入数据 data_train = pd . read_csv ( 'train_data.csv' ) data_test = pd . read_csv ( 'test_a.csv' ) #print(data_train) #print(data_test) #区分训练集和测试集,之后一起做数据处理 data_train [ 'type' ] = "Train" data_test [ 'Type' ] = "Test" #将数据合在一起 data_all = pd . concat ( [ data_train , data_test ] , ignore_index = True ) print ( data_all ) 缺失值分析及处理 一、缺失值出现的原因分析 数据集会因为各种原因有所缺失,例如调查时没有记录某些观察值等。了解缺失的数据是什么至关重要,这样才可以决定下一步如何处理这些缺失值。 根据第一天ETA,UV和PV都有18条记录缺失 PV和UV都是客户的信息,PV表示该板块当月租客浏览网页次数

数据挖掘笔记Ⅱ——数据清洗(房租预测)

丶灬走出姿态 提交于 2020-01-10 13:10:23
缺失值分析及处理 缺失值出现的原因分析 采取合适的方式对缺失值进行填充 异常值分析及处理 根据测试集数据的分布处理训练集的数据分布 使用合适的方法找出异常值 对异常值进行处理 深度清洗 分析每一个communityName、city、region、plate的数据分布并对其进行数据清洗 0、调包加载数据 首先,我们要做的就是加载可能要用到的包。以及源数据的导入; #coding:utf-8 #导入warnings包,利用过滤器来实现忽略警告语句。 import warnings warnings . filterwarnings ( 'ignore' ) # GBDT from sklearn . ensemble import GradientBoostingRegressor # XGBoost import xgboost as xgb # LightGBM import lightgbm as lgb import pandas as pd import numpy as np import matplotlib . pyplot as plt import seaborn as sns #Seaborn其实是在matplotlib的基础上进行了更高级的API封装 from sklearn . model_selection import KFold #用于交叉验证的包

2_数据清洗

丶灬走出姿态 提交于 2020-01-10 11:23:08
任务2 数据清洗(2天) 每一步都要认真完成,附上代码,最终效果截图 缺失值分析及处理 缺失值出现的原因分析 采取合适的方式对缺失值进行填充 异常值分析及处理 根据测试集数据的分布处理训练集的数据分布 使用合适的方法找出异常值 对异常值进行处理 深度清洗 分析每一个communityName、city、region、plate的数据分布并对其进行数据清洗 简要分析 在任务一中,我们对于赛题、数据总体情况、缺失值、特征分布等信息做了简要的分析。在本次任务中就是基于任务一的分析做数据清理工作。 在一些场景中,任务一和任务二合并起来会被称作EDA(Exploratory Data Analysis-探索性数据分析)。当然真正的EDA包含的内容远不止这两份参考示例所展示了,大家可以自行学习尝试。 参考资料: 一文带你探索性数据分析(EDA) 缺失值处理 #coding:utf-8 #导入warnings包,利用过滤器来实现忽略警告语句。 import warnings warnings . filterwarnings ( 'ignore' ) # GBDT from sklearn . ensemble import GradientBoostingRegressor # XGBoost import xgboost as xgb # LightGBM import lightgbm