数据清洗

3、特征清洗

人盡茶涼 提交于 2019-11-27 15:38:46
1、清洗 去除脏的数据,比如某些商品的刷单数据,缺省值多的数据,异常数据,一般情况下直接舍弃。 结合业务情况 比如去除crawler抓取,spam,作弊等数据 采用异常点检测算法 偏差检测:聚类、最近邻等 基于统计的异常点检测:例如极差,四分位数间距,均差,标准差等。 基于距离的异常点检测:与大多数点之间距离大于某个阈值的点视为异常点,主要使用的距离度量方法有绝对距离 ( 曼哈顿距离 ) 、欧氏距离和马氏距离等方法。 基于密度的异常点检测:考察当前点周围密度,可以发现局部异常点,例如LOF算法。 2、采样 采集清洗后,样本分布 不均衡 ,要进行采样。 问题根据难度从小到大排个序: 大数据+分布均衡<大数据+分布不均衡<小数据+数据均衡<小数据+数据不均衡 。说明小数据集是机器学习比较头疼的问题。 有两种方法: (1)从数据的角度出发,主要方法为抽样,既然我们的样本是不平衡的,那么可以通过某种策略进行抽样,从而让我们的数据相对均衡一些; (2)从算法的角度出发,考虑不同误分类情况代价的差异性对算法进行优化,使得我们的算法在不平衡数据下也能有较好的效果。 数据角度 有两种类型:又放回和无放回。 (随机欠采样)下采样:从多数类中的样本中选择少数样本与少数类中的样本组合成均衡的数据集。 (随机过采样)上采样:多次有放回的从少数类样本中抽取数据集,与多数类样本集组成均衡的数据集。 存在的问题

特征工程系列:数据清洗

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

数据清洗

南楼画角 提交于 2019-11-26 17:13:46
学习笔记,参考 原作者 数据清洗是数据分析的第一步, 经常需要花费大量的时间来清洗数据或者转换格式。 一、数据预处理 1. 部署环境,导入分析包和数据 import pandas as pd import numpy as np DataDF=pd.read_csv('C:/Users/jzgao/Desktop/ecommerce-data/data.csv',encoding = "ISO-8859-1",dtype = str) # dtype = str,最好读取的时候都以字符串的形式读入,不然可能会使数据失真 # 比如一个0010008的编号可能会读取成10008 # encoding = "ISO-8859-1" -- 用什么解码,一般会默认系统的编码,如果是中文就用 "utf-8" 2. 尝试去理解这份数据集 我们可以通过对数据集提问来判断这份数据能不能满足解答我们的问题,数据是否干净需不需要进一步处理,问题包括但不限于: 数据集多少数据? 包含了什么字段?字段格式是什么? 字段分别代表什么意义 字段之间的关系是什么?可以用做什么分析?或者说能否满足了对分析的要求? 有没有缺失值;如果有的话,缺失值多不多? 现有数据里面有没有脏数据?尤其需要注意人工输入的数据,经常会出现名称写错,多输入空格等等的情况 3. 下面我们就结合代码来看一下数据 # 1

数据清洗及简单分析

做~自己de王妃 提交于 2019-11-26 09:48:41
数据分析案例分享,仅供学习使用,数据量比较少,数据源为拉钩7月8日,广州片区、数据分析岗位,就是这么少,没错。) 需求 对爬取的数据进行清洗,通过python进一步分析。 工具 python3、pycharm 数据清洗 先分析下目标文件 共172条数据, 需要处理 工作经验:不限设置为0,例:1-3年 取(1+3)/2即1.5年 工资:按实际情况区间前25%比较合理,例:10K-15K,取11.25K 职位内容包含了实习生的数据,参考意义较少,也要去掉。 import pandas as pd df = pd . read_csv ( 'lagou8.4jobs.csv' , encoding = 'utf-8-sig' ) # print ( df . describe ( ) ) #共 175 条信息,其中包含了实习信息需要清洗掉 df . drop ( df [ df [ '职位名称' ] . str . contains ( '实习' ) ] . index , inplace = True ) # print ( df . describe ( ) ) # 67 条 pattern = '\d+' #正则表达式 获取所有数字 df [ '工作经验' ] = df [ '工作经验' ] . str . findall ( pattern ) # print ( df [

LINUX数据库----关于数据清洗

大兔子大兔子 提交于 2019-11-25 22:43:51
LINUX数据库----关于数据清洗 一、修改数据库编码 1.先登录数据库 mysql -uroot -proot 2.查看数据库编码 发现数据库和数据库服务对应的编码是latin1,需要修改数据库的编码为UTF8 show VARIABLES like 'character%'; 3. 退出数据库,编辑/etc/my.cnf文件 exit vi /etc/my.cnf 4.修改配置文件 在配置文件中添加,写完以后:wq保存退出 [client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_unicode_ci 5.重启数据库服务 systemctl restart mysql.service 6.再次进入数据库并查看数据库编码 mysql -uroot -proot show VARIABLES like 'character%'; 二、在LINUX中创建数据库及表 创建数据库 1.创建数据库 create database kb02; 2.创建表 use kb02 create table userinfos(userid int(20) primary key not null auto_increment,username varchar(20)

postgre数据清洗

ぃ、小莉子 提交于 2019-11-25 20:48:25
select "BATCH_NUMBER" as batchNumber, count(1) as applyNum from ( select "BATCH_NUMBER" from ( select "BATCH_NUMBER", row_number() over(partition by "PT_NAME","BATCH_NUMBER","POLICY_NAME") as rown from syc_industry_support_policy where data_status='1' and "STAT"='申请成功' and "BATCH_NUMBER" like (to_char((SELECT now()::timestamp),'yyyy')||'%') ) t where t.rown=1 )t1 group by "BATCH_NUMBER" order by cast( "BATCH_NUMBER" as numeric) desc 来源: oschina 链接: https://my.oschina.net/goudingcheng/blog/3133487