📜  ML |了解数据处理(1)

📅  最后修改于: 2023-12-03 15:32:54.945000             🧑  作者: Mango

ML | 了解数据处理

数据处理是机器学习中非常重要的一步,直接影响到模型的训练和性能。本篇文章将会介绍一些常见的数据处理技巧。

数据清洗

在进行数据处理的时候,最重要的一步就是数据清洗。因为在实际情况中,我们得到的数据往往是不完整、不准确或者是含有异常值的。下面是一些常见的数据清洗技巧。

缺失值处理

处理缺失值的方法有很多,最常见的方法是删除带有缺失值的样本或者是使用均值、中位数或者是众数对缺失值进行补全。在Python中,可以使用pandas库来方便地进行缺失值的操作。下面是一个删除缺失值的例子:

import pandas as pd

# 创建一个数据集
df = pd.DataFrame({'A': [1, 2, 3, None], 'B': [4, None, 6, 7], 'C': [8, 9, None, 11]})

# 删除含有缺失值的行
df.dropna(inplace=True)
异常值处理

异常值指的是与其他值相比非常异常的值。常用的异常值处理方法包括删除异常值、使用中位数或者平均数进行替换等。下面是一个使用中位数替换异常值的例子:

import pandas as pd

# 创建一个数据集
df = pd.DataFrame({'A': [1, 2, 3, 10], 'B': [4, 5, 6, 7], 'C': [8, 9, 10, 11]})

# 计算中位数
median = df['A'].median()

# 用中位数替换异常值
df['A'] = df['A'].apply(lambda x: median if x > 6 else x)
特征处理

特征处理是指对原始数据进行处理,以提取特征并将其转换为算法可以处理的数值型数据。

特征缩放

特征缩放是指对数据进行归一化或标准化,使得不同的特征在数值上具有相似的规模。如果不进行特征缩放,在进行算法运算时会出现对于数据规模较大的特征影响更大的问题。下面是一个使用sklearn库进行特征缩放的例子:

import numpy as np
from sklearn import preprocessing

# 创建一个数据集
data_set = np.array([[1., -10., 3.], [2., 0., 4.]])
# 最小最大缩放
scaler1 = preprocessing.MinMaxScaler()
data_scale1 = scaler1.fit_transform(data_set)
# 正则化缩放
scaler2 = preprocessing.Normalizer()
data_scale2 = scaler2.fit_transform(data_set)
# Z-score标准化缩放
scaler3 = preprocessing.StandardScaler()
data_scale3 = scaler3.fit_transform(data_set)
特征选择

特征选择是指根据特征对结果的影响,选择对结果影响较大的特征子集作为模型的输入特征。常用的特征选择方法包括递归特征消除法(RFE)以及基于特征权重的方法等。下面是一个使用sklearn库进行特征选择的例子:

from sklearn.linear_model import LinearRegression
from sklearn.feature_selection import RFE
from sklearn.datasets import make_regression

# 创建一个数据集
X, y = make_regression(n_samples=100, n_features=10, n_informative=5, random_state=1)
# 建立线性回归模型
model = LinearRegression()
# 特征选择
rfe = RFE(model, 5)
fit = rfe.fit(X, y)
# 筛选出重要的5个特征
print("Num Features: %d" % fit.n_features_)
print("Selected Features: %s" % fit.support_)
print("Feature Ranking: %s" % fit.ranking_)
总结

以上便是数据处理的一些常见技巧,掌握好这些技巧可以提高我们的处理数据的效率,同时也有助于提高模型的性能。