机器学习----数据准备&特征工程(1)

一、总介绍

这里写图片描述

这里写图片描述
这里写图片描述

二、用户RFM行为特征提取

import pandas as pd
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity= "all"
##导入交易数据类型
trade = pd.read_csv("文件")
trade.info()
trade.head()
#把Date字段转换成日期型
trade["字段名"]=pd.to_datetime(trade['字段名'])
trade.info()
trade.head()
###汇总成RFM特征
RFM=trade.groupby("字段名").agg()
RFM.head()

三、特征转换

3.1无量钢化

  • 使不同规格的尺度得到统一
    常用的无量钢化的方法1—标准化
    效果:把原始的连续型变量转换为均值是0,标准差是1 的变量
    这里写图片描述
    常用的无量钢化的方法2—区间缩放法
    效果:把原始的连续型变量转换为范围在 【a,b】之间或者【0,1】之间的变量
    这里写图片描述

变换的目的
这里写图片描述

3.2转换

  • 变换后容易发现数据之间的关系,从没有关系到有关系
  • 变换后差异减小,更容易看清
  • 让数据接近正态分布

常用方法1—log变换
这里写图片描述
常用方法2—box-cox变换
这里写图片描述

3.3离散化

把连续的数值切割为少数的一些区间
* 方便数据的分布和相关性
* 减少异常数据的影响
* 引入非线性,提升模型的预测能力
* 进行模型特征交叉,有M+n和变为M*N
* 为了模型稳定
* 简化复杂性,降低过拟合的风险
* 有些模型要求是离散的

这里写图片描述

3.4、类别性变量编码

目的:很多机器学习算法无法处理类别型变量,必须转换为数值变量
一定程度上也起到扩充特征的作用(构造新的特征)

1、one-hot编码(独热编码)
这里写图片描述
2、count Encoding(计数编码)
这里写图片描述
Target econding用某一类比例来编码
这里写图片描述

#对字段标准化
from sklearn import preprocessing
std = preprocessing.StandarScaler()
#对字段区域缩放法
minmaxscaler = preprocessing.MinMaxScaler()
Amount = RFM["字段"].values.reshape(-1,1)
std.fit(Amount)
RFM["Amount_std"] = std.transform(Amount)
RFM.head(5)
#log变换
import numpy as np
RFM["字段"] = np.log(RFM["字段"])
RFM.head(5)
import pandas as pd
import numpy as np
trade = pd.read_csv("文件")
trade["字段名"]=pd.to_datetime(trade['字段名'])
RFM=trade.groupby("字段名").agg()
RFM.head()
num=[0,200,500800,1000]
#自定义区间离散化
RFM["字段"] = pd.cut("字段",bins = cut_points)
#等宽离散化
RFM["字段"] = pd.cut(RFM.Amount,20)
#等深离散化
RFM["字段"] = pd.cut(RFM.Amount,5)

独热编码
这里写图片描述

这里写图片描述

3.5、日期变量处理

这里写图片描述

代码
这里写图片描述
这里写图片描述

3.6、缺失值的处理

1缺失原因
这里写图片描述
常用方法—均值 & NaN Encoding编码
这里写图片描述

#填充
tic["段"].fillna(age_mean,inplace=True)
#标志变量0或者1
tic.loc[tic["字段"].isnull(),"ziduan"] = 1

3.7、特征组合

提升模型的精准度
多个特征加减乘除 或者 多个类连续组合

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值