【持续更新】基于Python的机器学习——数据预处理

本文介绍了Python机器学习中数据预处理的重要性,包括数据无量纲化、缺失值处理和文字/标签类型的数据编码。讲解了sklearn库中的preprocessing、Impute和feature_selection模块,特别强调了数据归一化和标准化在模型中的应用,以及如何使用SimpleImputer处理缺失值,以及针对文字/标签数据的编码策略。
摘要由CSDN通过智能技术生成

数据预处理模块

python中的sklearn中模块中:

模块preprocessing:几乎包含数据预处理的所有内容

模块Impute:填补缺失值专用

模块feature_selection:包含特征选择的各种方法的实践

模块decomposition:包含降维算法 

下面来看一下针对具体模块在数据预处理中的使用:

数据无量纲化

场景:将不同规格的数据转换到同一个规格,将不同分布的数据转换到某个特定的分布等。

在算法中的作用:

logistic,SVM,神经网络是以梯度为核心的算法,使用无量纲化可以加快求解速度;

KNN,K-Means是以距离为核心的模型,使用无量纲化可以提升模型的精度。

(决策树是例外,它可以处理任何数据,它不需要无量纲化。)

数据无量纲化:线性,非线性

线性的包括:

中心化:减去一个固定值,实现数据平移。

缩放:除以一个固定值或者取对数,实现数据固定在某个范围。

数据归一化(Normalization,Min-Max Scaling):

x*=(x-min(x))/(max(x)-min(x))

归一化后的数据服从正态分布。

PS:数据正则化与归一化不同,正则化不是数据预处理的手段。


# 数据归一化:使用Preprocessing.MinMaxScaler来实现
# 数据归一化:使用Preprocessing.MinMaxScaler来实现

In [1]:
from sklearn.preprocessing import MinMaxScaler

In [2]:
data=[[-1,2],[-0.5,6],[0,10],[1,18]]
data=[[-1,2],[-0.5,6],[0,10],[1,18]] # 二维数组,list

In [5]:
# 在dataframe中查看data
import pandas as pd
pd.DataFrame(data)

Out[5]:
0	1
0	-1.0	2
1	-0.5	6
2	0.0	10
3	1.0	18

In [6]:

# 归一化:
# 三个步骤:实例化,fit,transform
scaler=MinMaxScaler()
scaler=scaler.fit(data)
result=scaler.transform(data) #通过接口导出结果

In [7]:

result
# 会看到归一化后的数据竟然是一样的,避免了之前量纲存在对数据造成的干扰
Out[7]:
array([[0.  , 0.  ],
       [0.25, 0.25],
       [0.5 , 0.5 ],
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值