文档
  • PyCaret 3.0
  • 开始使用
    • 💻安装
    • 🚀快速入门
    • ⭐教程
    • 📶模块
    • ⚙️数据预处理
      • 数据准备
      • 缩放和转换
      • 特征工程
      • 特征选择
      • 其他设置参数
    • 💡函数
      • 初始化
      • 训练
      • 优化
      • 分析
      • 部署
      • 其他
  • 学习 PYCARET
    • 📖博客
      • 发布 PyCaret 1.0
      • 发布 PyCaret 2.0
      • 关于 PyCaret 你不知道的 5 件事
      • 构建和部署你的第一个机器学习 Web 应用
      • 使用 PyCaret 在 Power BI 中构建你自己的 AutoML
      • 在 Google Kubernetes 上部署 ML 管线
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 在 Power BI 中进行异常检测
      • 在 Google Kubernetes 上部署 ML 应用
      • 在 GKE 上部署机器学习管线
      • 在 AWS Fargate 上部署机器学习管线
      • 使用 Docker 在云上部署 ML 管线
      • 使用 PyCaret 在 Power BI 中进行聚类分析
      • 使用 ONNX Runtime 在边缘设备上部署 PyCaret 模型
      • GitHub 是你所需最好的 AutoML
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 和 MLflow 轻松进行 MLOps
      • 使用 PyCaret 在 Power BI 中进行聚类分析
      • 使用 PyCaret 在 Alteryx 中进行机器学习
      • 使用 PyCaret 在 KNIME 中进行机器学习
      • 使用 PyCaret 在 SQL 中进行机器学习 第一部分
      • 使用 PyCaret 在 Power BI 中进行机器学习
      • 使用 PyCaret 在 Tableau 中进行机器学习
      • 使用 PyCaret 进行多时间序列预测
      • 使用 PyCaret 预测客户流失
      • 使用 PyCaret 预测潜在客户得分(正确方法)
      • 使用 PyCaret 在 Python 中进行 NLP 文本分类
      • 使用 PyCaret 预测潜在客户得分(正确方法)
      • 使用 PyCaret 预测黄金价格暴跌
      • 使用机器学习预测黄金价格
      • PyCaret 2.1 功能总结
      • 使用 PyCaret 将 ML 模型发布到 SQL Server
      • 使用 PyCaret 和 Gradio 为你的 ML 加速
      • 时间序列 101 - 面向初学者
      • 使用 PyCaret 进行时间序列异常检测
      • 使用 PyCaret 回归进行时间序列预测
      • 使用 PyCaret 在 Power BI 中进行主题建模
      • 使用 PyCaret 编写和训练自定义 ML 模型
      • 使用 PyCaret 和 Streamlit 构建和部署 ML 应用
      • PyCaret 2.3.6 发布了!了解新功能?
    • 📺视频
    • 🛩️备忘单
    • ❓常见问题
    • 👩‍💻示例
  • 重要链接
    • 🛠️发布说明
    • ⚙️API 参考
    • 🙋 讨论
    • 📤问题
    • 👮 许可
  • 媒体
    • 💻Slack
    • 📺YouTube
    • 🔗LinkedIn
    • 😾GitHub
    • 🔅Stack Overflow
由 GitBook 提供支持
在本页
  • 多项式特征
  • 分组特征
  • 数值特征分箱
  • 合并罕见级别

这有帮助吗?

  1. 开始使用
  2. 数据预处理

特征工程

上一页缩放和转换下一页特征选择

最后更新于 2 年前

这有帮助吗?

多项式特征

在机器学习实验中,通常假设因变量和自变量之间的关系是线性的;然而,并非总是如此。有时因变量和自变量之间的关系更为复杂。创建新的多项式特征有时可能有助于捕捉这种关系,否则这种关系可能被忽视。

参数

  • polynomial_features: bool, 默认值 = False 当设置为 True 时,将根据数据集中数值特征内的所有多项式组合,按照 polynomial_degree 参数中定义的次数创建新特征。

  • polynomial_degree: int, 默认值 = 2 多项式特征的次数。例如,如果输入样本是二维的,形式为 [a, b],则次数为 2 的多项式特征是:[1, a, b, a^2, ab, b^2]。

示例

# load dataset
from pycaret.datasets import get_data
juice = get_data('juice')

# init setup
from pycaret.classification import *
clf1 = setup(data = juice, target = 'Purchase', polynomial_features = True)

之前

之后

分组特征

当数据集包含某种程度上相互关联的特征时,例如:在固定时间间隔记录的特征,那么可以使用 group_features 参数从现有特征创建一组此类特征的新的统计特征,例如 均值、中位数、方差和标准差。

参数

  • group_features: list 或 list of list, 默认值 = None 当数据集包含具有相关特性的特征时,可以使用 group_features 参数进行统计特征提取。例如,如果数据集包含相互关联的数值特征(例如 'Col1'、'Col2'、'Col3'),可以在 group_features 下传递一个包含列名称的列表,以提取均值、中位数、众数和标准差等统计信息。

  • group_names: list, 默认值 = None 传递 group_features 时,可以将组名称作为一个包含字符串的列表传递给 group_names 参数。group_names 列表的长度必须等于 group_features 的长度。如果长度不匹配或未传递名称,则新特征将按顺序命名,例如 group_1、group_2 等。

示例

# load dataset
from pycaret.datasets import get_data
credit = get_data('credit')

# init setup
from pycaret.classification import *
clf1 = setup(data = credit, target = 'default', group_features = ['BILL_AMT1', 'BILL_AMT2', 'BILL_AMT3', 'BILL_AMT4', 'BILL_AMT5', 'BILL_AMT6'])

之前

之后

数值特征分箱

参数

  • bin_numeric_features: list, 默认值 = None 当传入数值特征列表时,它们使用 K-Means 转换为分类特征,其中每个 bin 中的值具有相同的最接近的 1D K-Means 聚类中心。聚类数量根据 'sturges' 方法确定。这种方法仅对高斯数据最优,并且对于大型非高斯数据集会低估 bin 的数量。

示例

# load dataset
from pycaret.datasets import get_data
income = get_data('income')

# init setup
from pycaret.classification import *
clf1 = setup(data = income, target = 'income >50K', bin_numeric_features = ['age'])

之前

之后

合并罕见级别

有时数据集可能包含具有非常多级别(即高基数特征)的分类特征(或多个分类特征)。如果此类特征被编码为数值,则结果矩阵将是稀疏矩阵。这不仅会由于特征数量急剧增加从而导致数据集大小增加而使实验变慢,还会引入噪声。可以通过合并高基数特征中的罕见级别来避免稀疏矩阵。这可以在 PyCaret 中使用 rare_to_value 参数实现。

参数

  • rare_to_value: float 或 None, 默认值=None

    分类列中类别出现的最小分数。如果某个类别的频率低于 rare_to_value * len(X),则将其替换为 rare_value 中的字符串。使用此参数在编码列之前对罕见类别进行分组。如果为 None,则忽略此步骤。

  • rare_value: str, 默认值="rare"

    用于替换罕见类别的值。当 rare_to_value 为 None 时忽略。

示例

# load dataset
from pycaret.datasets import get_data
income = get_data('income')

# init setup
from pycaret.classification import *
clf1 = setup(data = income, target = 'income >50K', rare_to_value = 0.1)

之前

之后

合并罕见级别的效果

特征分箱是一种使用预定义数量的箱将连续变量转换为分类值的方法。 当连续特征具有太多唯一值或少数超出预期范围的极端值时,这种方法很有效。这些极端值会影响训练好的模型,从而影响模型的预测准确性。在 PyCaret 中,可以使用 bin_numeric_features 参数将连续数值特征分箱到区间中。PyCaret 使用“sturges”规则确定 bin 的数量,并使用 K-Means 聚类将连续数值特征转换为分类特征。

⚙️
.
多项式特征转换前的 Dataframe 视图
多项式特征转换后的 Dataframe 视图
分组特征处理前的 Dataframe
分组特征处理后的 Dataframe
数值特征分箱前的 Dataframe 视图
数值特征分箱后的 Dataframe 视图
合并罕见级别前的 Dataframe 视图
合并罕见级别后的 Dataframe 视图