机器学习---sklearn数据预处理

sklearn(Scikit-learn)是一个常用的机器学习库,提供了各种数据预处理方法。下面是一些常用的数据预处理方式以及使用sklearn的示例代码:

一、数据清洗(Data Cleaning):

        1、缺失值处理:使用SimpleImputer类来处理缺失值。下面是一个示例代码:

from sklearn.impute import SimpleImputer

# 创建SimpleImputer对象,使用均值填充缺失值
imputer = SimpleImputer(strategy='mean')

# 对数据集进行拟合和转换
X_train = imputer.fit_transform(X_train)
X_test = imputer.transform(X_test)

二、特征选择(Feature Selection): 

        1、方差阈值(Variance Threshold):使用VarianceThreshold类来删除方差低于阈值的特征。下面是一个示例代码:

from sklearn.feature_selection import VarianceThreshold

# 创建VarianceThreshold对象,设置阈值为0.1
selector = VarianceThreshold(threshold=0.1)

# 对数据集进行拟合和转换
X_train = selector.fit_transform(X_train)
X_test = selector.transform(X_test)

        2、单变量特征选择(Univariate Feature Selection):使用SelectKBest类和相关的评分函数来选择与目标变量相关性最高的K个特征。下面是一个示例代码:

from sklearn.feature_selection import SelectKBest, f_regression

# 创建SelectKBest对象,使用f_regression评分函数选择5个特征
selector = SelectKBest(score_func=f_regression, k=5)

# 对数据集进行拟合和转换
X_train = selector.fit_transform(X_train, y_train)
X_test = selector.transform(X_test)

三、特征缩放(Feature Scaling):

        1、标准化(Standardization):使用StandardScaler类对特征进行标准化,使其具有零均值和单位方差。下面是一个示例代码: 

from sklearn.preprocessing import StandardScaler

# 创建StandardScaler对象
scaler = StandardScaler()

# 对数据集进行拟合和转换
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

        2、归一化(Normalization):使用MinMaxScaler类对特征进行归一化,将其缩放到指定的范围(例如0到1)。下面是一个示例代码:

from sklearn.preprocessing import MinMaxScaler

# 创建MinMaxScaler对象
scaler = MinMaxScaler()

# 对数据集进行拟合和转换
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

        3、均值移除(Mean Removal):均值移除是一种常见的特征缩放方法,用于将特征的均值移动到零(即使特征的均值为零)。在sklearn中,可以使用preprocessing模块中的scale函数来实现均值移除。示例代码如下:

from sklearn.preprocessing import StandardScaler
 
# 创建一个StandardScaler对象,进行均值移除
scaler = StandardScaler(with_mean=True, with_std=False)
 
# 使用scaler对数据集X进行均值移除
X_mean_removed = scaler.fit_transform(X)
X_test = scaler .transform(X_test)

四、特征转换

        1、二值化(Binarization):二值化是将数值特征转换为布尔值(0或1)的过程。在sklearn中,可以使用preprocessing模块中的Binarizer类来实现二值化。示例代码如下:

from sklearn.preprocessing import Binarizer
 
# 创建一个Binarizer对象,进行二值化
binarizer = Binarizer(threshold=0.5)
 
# 使用binarizer对数据集X进行二值化
X_binarized = binarizer.fit_transform(X)
X_test = binarizer .transform(X_test)

五、特征编码(Feature Encoding):

        1、独热编码(One-Hot Encoding):使用OneHotEncoder类对离散特征进行独热编码。下面是一个示例代码:

from sklearn.preprocessing import OneHotEncoder

# 创建OneHotEncoder对象
encoder = OneHotEncoder()

# 对数据集进行拟合和转换
X_train = encoder.fit_transform(X_train)
X_test = encoder.transform(X_test)

        2、标签编码(Label Encoding):使用LabelEncoder类对离散特征进行标签编码,将其转换为整数表示。下面是一个示例代码:

from sklearn.preprocessing import LabelEncoder

# 创建LabelEncoder对象
encoder = LabelEncoder()

# 对数据集进行拟合和转换
y_train = encoder.fit_transform(y_train)
y_test = encoder.transform(y_test)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值