Skip to content

第2章:数据预处理

数据预处理是机器学习中的重要步骤,它直接影响模型的性能。本章将详细介绍scikit-learn中的数据预处理技术。

2.1 数据清洗

数据清洗包括处理缺失值、异常值等。

2.1.1 处理缺失值

使用SimpleImputer处理缺失值:

python
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='mean')
X_imputed = imputer.fit_transform(X)

2.1.2 异常值检测

使用IsolationForest检测异常值:

python
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest()
outliers = iso_forest.fit_predict(X)

2.2 特征缩放和标准化

特征缩放和标准化是预处理中的关键步骤。

2.2.1 特征缩放

使用MinMaxScaler进行特征缩放:

python
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

2.2.2 标准化

使用StandardScaler进行标准化:

python
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_standardized = scaler.fit_transform(X)

2.3 编码分类变量

对分类变量进行编码,例如使用OneHotEncoder

python
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
X_encoded = encoder.fit_transform(X_categorical).toarray()

2.4 特征选择和降维

特征选择和降维有助于提高模型性能。

2.4.1 特征选择

使用SelectKBest进行特征选择:

python
from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(score_func=f_classif, k=10)
X_selected = selector.fit_transform(X, y)

2.4.2 降维

使用PCA进行降维:

python
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

2.5 本章小结

本章详细介绍了scikit-learn中的数据预处理技术,包括数据清洗、特征缩放、编码分类变量、特征选择和降维。这些技术对于提高模型性能和准确性至关重要。