[ PROMPT_NODE_27564 ]
machine_learning
[ SKILL_DOCUMENTATION ]
# 机器学习集成
本参考指南涵盖了 Vaex 的机器学习功能,包括转换器、编码器、特征工程、模型集成以及在大规模数据集上构建机器学习工作流。
## 概述
Vaex 提供了一个全面的机器学习框架 (`vaex.ml`),可与大规模数据集无缝协作。该框架包括:
- 用于特征缩放和工程的转换器
- 用于分类变量的编码器
- 降维 (PCA)
- 聚类算法
- 与 scikit-learn、XGBoost、LightGBM、CatBoost 和 Keras 的集成
- 用于生产部署的状态管理
**核心优势:** 所有转换都会创建虚拟列,因此预处理不会增加内存使用量。
## 特征缩放
### 标准缩放器 (Standard Scaler)
python
import vaex
import vaex.ml
df = vaex.open('data.hdf5')
# 拟合标准缩放器
scaler = vaex.ml.StandardScaler(features=['age', 'income', 'score'])
scaler.fit(df)
# 转换(创建虚拟列)
df = scaler.transform(df)
# 缩放后的列创建为:'standard_scaled_age', 'standard_scaled_income' 等
print(df.column_names)
### 最小最大缩放器 (MinMax Scaler)
python
# 缩放到 [0, 1] 范围
minmax_scaler = vaex.ml.MinMaxScaler(features=['age', 'income'])
minmax_scaler.fit(df)
df = minmax_scaler.transform(df)
# 自定义范围
minmax_scaler = vaex.ml.MinMaxScaler(
features=['age'],
feature_range=(-1, 1)
)
### 最大绝对值缩放器 (MaxAbs Scaler)
python
# 按最大绝对值缩放
maxabs_scaler = vaex.ml.MaxAbsScaler(features=['values'])
maxabs_scaler.fit(df)
df = maxabs_scaler.transform(df)
### 稳健缩放器 (Robust Scaler)
python
# 使用中位数和四分位距 (IQR) 进行缩放(对异常值稳健)
robust_scaler = vaex.ml.RobustScaler(features=['income', 'age'])
robust_scaler.fit(df)
df = robust_scaler.transform(df)
## 分类编码
### 标签编码器 (Label Encoder)
python
# 将分类转换为整数
label_encoder = vaex.ml.LabelEncoder(features=['category', 'region'])
label_encoder.fit(df)
df = label_encoder.transform(df)
# 创建:'label_encoded_category', 'label_encoded_region'
### 独热编码器 (One-Hot Encoder)
python
# 为每个类别创建二进制列
onehot = vaex.ml.OneHotEncoder(features=['category'])
onehot.fit(df)
df = onehot.transform(df)
# 创建类似:'category_A', 'category_B', 'category_C' 的列
# 控制前缀
onehot = vaex.ml.OneHotEncoder(
features=['category'],
prefix='cat_'
)
### 频率编码器 (Frequency Encoder)
python
# 按类别频率进行编码
freq_encoder = vaex.ml.FrequencyEncoder(fea