数据预处理中常用的方法有哪些?

  • Post category:云计算

数据预处理在机器学习中起着至关重要的作用,其目的在于将原始数据转换成更加适合建模的形式,包括数据清洗、数据整合、数据变换、数据归约等方面。下面给出一些常用的数据预处理方法。

数据清洗

数据清洗是预处理过程中非常重要的一步,它主要是去除原始数据中存在的错误、不一致或缺失的数据,例如去除重复数据、处理缺失值、异常值或不一致值等。

示例1:缺失值处理

处理缺失值分为删除缺失数据、插补法、回归法等几种常用方法。这里举例说明插补法处理缺失数据的方法。可以使用均值、中位数、众数等方式进行插值。

import pandas as pd 
import numpy as np 

# 生成含有缺失值的Dataframe
df = pd.DataFrame(np.random.rand(6, 4), columns=["A", "B", "C", "D"])
df.iloc[1:3, 1] = np.nan
df.iloc[2:4, 2] = np.nan
df.iloc[4, 3] = np.nan
print("含有缺失值的Dataframe:")
print(df)

# 使用中位数进行缺失值插补
df_median = df.fillna(df.median())
print("使用中位数插补缺失值后的Dataframe:")
print(df_median)

示例2:异常值处理

处理异常值通常使用3σ原则或箱型图等方法来检测异常值,然后采取适当的方法进行处理。

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_excel('Data.xlsx', sheetname='Sheet1')
plt.boxplot(data.values)
plt.show()

箱型图可以进行异常值的检测,确认异常值后,采取剔除(Delete)或者替换为均值、中位数等策略。

数据变换

数据变换是指将原始数据进行转换,从而达到更好的分布状态,比如对数变换、平方根变换、归一化(MinMaxScaler)等。

示例3:MinMaxScaler归一化

归一化可以将不同维度的特征缩放到同一纬度,方便处理数据,比如可以使用MinMaxScaler将数据按照特征列进行缩放。

from sklearn.preprocessing import MinMaxScaler
import numpy as np

# 生产示例数据
data = np.random.randint(0, 100, size=[10, 3])
print("归一化前的数据:")
print(data)

# 使用MinMaxScaler进行数据范围归一化
scaler = MinMaxScaler()
scaler.fit(data)
data_normalization = scaler.transform(data)
print("使用MinMaxScaler进行归一化后的数据:")
print(data_normalization)

上述是数据预处理中常用的方法,通过对原始数据的清理、变换、归约等步骤,可以使得数据更加适合处理和建模。