数据预处理步骤以及相关sklearn模块的使用

数据预处理

一、数据挖掘的5大流程

  • 获取数据
  • 数据预处理:让数据适应模型,匹配模型的需求
    • 数据类型不同:有的是文字,有的是数字,有的连续,有的离散,有的含时间序列
    • 有缺失值,有异常
    • 量纲不一,差距太大
    • 数据量太大或者太小,呈现偏态
  • 特征工程:可以降低计算成本,提升模型上限
    • 特征太多或太少
    • 特征和标签无关
    • 特征之间有相关性
  • 建模:测试模型并预测出结果
  • 上线,验证模型效果

二、sklearn中的数据预处理和特征工程

  • 模块preprocessing:几乎包含数据预处理的所有内容
  • 模块Impute:填补缺失值专用
  • 模块feature_selection:包含特征选择的各种方法的实践
  • 模块decomposition:包含降维算法

三、数据预处理

3.1数据无量纲化

在平时处理特征的时候,有的特征与特征之间的量纲差距太大,从而会影响后面模型的结果,导致特征的重要性不准,差距比较大,为了解决这种状况,我们需要对特征全部进行无量纲化,即将不同规格的数据转换到同一规格,将不同分布的数据转换到某个特定分布的需求。

3.1.1 preprocessing.MinMaxScaler(数据归一化)

当数据(x)按照最小值中心化后,再按极差(最大值 - 最小值)缩放,数据移动了最小值个单位,并且会 被收敛到[0,1]之间,而这个过程,就叫做数据归一化(Normalization,又称Min-Max Scaling),公式:
x ∗ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x^{*} = \frac{x - min(x)}{max(x) - min(x)} x=max(x)min(x)xmin(x)

from sklearn.preprocessing import MinMaxScaler
import pandas as pd

pd.DataFrame([[-1, 2], [-0.5, 6], [0, 10], [1, 18]]) #实现归一化

scaler = MinMaxScaler() #实例化
scaler = scaler.fit(data) #fit,在这里本质是生成min(x)和max(x)
result = scaler.transform(data) #通过接口导出结果
result_ = scaler.fit_transform(data) #训练和导出结果一步达成
scaler.inverse_transform(result) #将归一化后的结果逆转

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值