三、预处理理论

特征工程:

1.特征使用(数据的选择、数据的可用性)
2.特征获取(特征来源、特征存储)
3.特征处理(数据清洗、特征预处理)
4.特征监控(现有特征、新特征)

下面重点介绍一下特征处理
1.数据清洗
1)数据样本采集(抽样)
2)异常值(空值)处理
import pandas as pd
df=pd.DataFrame({
   'A':['a0','a1','a1','a2','a3','a4'],'B':['b0','b1','b2','b2','b3',None],
                 'C':[1,2,None,3,4,5],'D':[0.1,10.2,11.4,8.9,9.1,12],'E':[10,19,32,25,8,None],
                'F':['f0','f1','g2','f3','f4','f5']})
df.isnull() #判断是否为空值,是为True,否为False 
df.dropna() #去除含有空值的行
df.dropna(subset=['B'])#去除某一行,比如列B为空值的行
df.duplicated(['A']) #查看A列是否有重复值
df.duplicated(['A','B']) #A,B均重复才为True
df.drop_duplicates(['A']) #去除重复的某一行,默认第一行
df.drop_duplicates(['A'],keep=False)#去除重复的所有行,keep='first','last',False,默认为first
df.fillna('b*') #填充b*
df.fillna(df['E'].mean())
df['E'].interpolate()#插值,可选择method

upper_q=df['D'].quantile(0.75)
lower_q=df['D'].quantile(0.25)
q_inter=upper_q-lower_q
k=1.5
df[df['D']>lower_q-k*q_inter][df['D']<upper_q+k*q_inter] #去除异常值

df[[True if item.startswith('f') else False for item in list(df['F'].values)]] #保留f开头的所有行
2.特征预处理
1)特征选择

剔除与标注不相关或者冗余的特征
特征选择是数据归约的一种思路(另一种思路为抽样)
三种思路:1)过滤思想(阈值设置比较灵活)
     2) 包裹思想(遍历特征子集,常用方法:RFE算法)
     3)嵌入思想(建立简单回归模型)

import numpy as np
import pa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值