CatBoost - 数据预处理

CatBoost 数据预处理涉及处理分类特征并最小化内存使用量,以便为训练准备数据。分类变量可能不需要任何手动预处理过程,就像独热编码一样,因为它们可以自动处理。CatBoost 通过允许直接处理缺失值来增加数据准备。

通过使用为数据集提供特征、标签和分类特征索引的 CatBoost 池,训练和预测的数据处理变得更简单、更好。CatBoost 通过保持高预测性能和减少数据预处理来简化机器学习工作流程。因此,它允许用户更多地关注模型构建和优化。

为什么在 CatBoost 中进行数据预处理?

CatBoost 简化了数据预处理,原因如下 −

  • CatBoost 可以直接处理分类特征,而无需手动编码。就像独热编码一样。此属性可节省时间并最大限度地降低模型的复杂性。

  • catboost 技术用于自动处理缺失值,这可以节省您在训练模型之前输入缺失值的努力。

  • 与其他增强方法不同,CatBoost 可能不会要求您以与规范化或分类相同的方式缩放特征。此工具使预处理变得非常容易。

  • 通过在训练中使用不同的数据部分,CatBoost 提供了减少过度拟合的方法。

  • 预处理可用于管理具有大量特征的大型数据集。

  • CatBoost 库的创建旨在易于使用,具有清晰的文档和基本的 API。由于此功能,专家和初学者都可以使用它。

预处理步骤

以下是 CatBoost − 数据预处理的简单步骤

  • 步骤 1:安装 CatBoost:首先,您需要确保已安装 CatBoost。您可以使用以下命令安装它:

    pip install catboost
    
  • 步骤 2:准备数据 −现在您必须准备数据,并且数据应采用结构化格式,例如 pandas DataFrame。

  • 步骤 3:识别分类特征 −现在列出分类列。这样 CatBoost 库就可以自动处理它们,但您应该指定它们。

  • 步骤 4:编码分类特征 −您不需要手动编码分类特征,因为 CatBoost 可以自动获取它们。但在定义哪个特征是分类特征时要小心。

  • 步骤 5:拆分数据 −然后,您可以将数据分为训练集和测试集。此过程将帮助您在下一阶段评估模型。

    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
  • 步骤 6:创建池 − CatBoost 使用一种称为"池"的特殊数据结构进行训练。您可以像下面这样创建它:

    from catboost import Pool
    
    train_pool = Pool(X_train, y_train, cat_features=categorical_features)
    test_pool = Pool(X_test, y_test, cat_features=categorical_features)
    
  • 步骤 7:训练模型 − 现在,借助您准备好的数据,您可以训练模型:

    from catboost import CatBoostClassifier
    
    model = CatBoostClassifier(iterations=1000, learning_rate=0.1,depth=6)
    model.fit(train_pool)
    
  • 步骤 8:进行预测− 可以通过将模型用于测试集来进行预测::

    predictions = model.predict(test_pool)
    
  • 步骤 9:评估模型 − 最后,您可以使用准确度或 F1 分数等指标来评估模型的表现。