特征选择
特征选择
特征重要性 是一种用于选择数据集中对预测目标变量贡献最大的特征的过程。使用选定的特征而不是所有特征可以降低过拟合的风险、提高准确性并缩短训练时间。在 PyCaret 中,这可以通过使用 feature_selection
参数来实现。
参数
feature_selection: 布尔型, 默认为 False 当设置为 True 时,将根据由
feature_selection_estimator
确定的特征重要性得分选择特征子集。feature_selection_method: 字符串型, 默认为 'classic'
特征选择算法。可选项:
'univariate': 使用 sklearn 的 SelectKBest。
'classic': 使用 sklearn 的 SelectFromModel。
'sequential': 使用 sklearn 的 SequentialFeatureSelector。
feature_selection_estimator: 字符串型或 sklearn 评估器, 默认为 'lightgbm'
用于确定特征重要性的分类器。评估器在拟合后应具有
feature_importances_
或coef_
属性。如果为 None,则使用 LGBClassifier。当 feature_selection_method=univariate 时,此参数将被忽略。n_features_to_select: 整型或浮点型, 默认为 0.2
通过特征选择要选择的最大特征数量。如果 <1,则表示初始特征的比例。请注意,在计数时,此参数不考虑
ignore_features
或keep_features
中的特征。
示例
之前
之后
移除多重共线性
多重共线性(也称为 共线性)是数据集中一个特征变量与同一数据集中另一个特征变量高度线性相关的一种现象。多重共线性会增加系数的方差,从而使其在线性模型中不稳定和嘈杂。处理多重共线性的一个方法是删除两个高度相关的特征中的一个。这可以在 PyCaret 中通过使用 remove_multicollinearity
参数来实现。
参数
remove_multicollinearity: 布尔型, 默认为 False 当设置为 True 时,将移除相互关联度高于定义阈值的特征。对于每个组,将移除除与
y
相关性最高的特征之外的所有特征。multicollinearity_threshold: 浮点型, 默认为 0.9 识别相关特征的最小绝对皮尔逊相关系数。默认值会移除完全相同的列。当
remove_multicollinearity
不为 True 时忽略此参数。
示例
之前
之后
主成分分析
主成分分析 (PCA) 是一种机器学习中用于降低数据维度的无监督技术。它通过识别捕获完整特征矩阵中大部分信息的子空间来压缩特征空间。它将原始特征空间投影到较低维度。
参数
pca: 布尔型, 默认为 False 当设置为 True 时,将应用降维技术,使用
pca_method
参数中定义的方法将数据投影到较低维度的空间。pca_method: 字符串型, 默认为 ‘linear’ 应用 PCA 的方法。可能的值有:
'linear': 使用奇异值分解。
'kernel': 通过使用 RBF 核函数进行降维。
'incremental': 类似于 'linear',但对于大型数据集更高效。
pca_components: 整型/浮点型, 默认为 0.99 要保留的组件数量。如果 pca_components 是浮点型,则视为信息保留的目标百分比。当 pca_components 是整型时,则视为要保留的特征数量。pca_components 必须严格小于数据集中原始特征的数量。
pca_components: 整型、浮点型、字符串型或 None, 默认为 None 要保留的组件数量。当
pca=False
时忽略此参数。如果为 None: 保留所有组件。
如果为整型: 绝对的组件数量。-
如果为浮点型: 解释的方差需要大于
n_components
指定的百分比。值应在 0 到 1 之间(仅适用于 pca_method='linear')。如果为 'mle': 使用 Minka 的 MLE 来猜测维度(仅适用于 pca_method='linear')。
示例
之前
之后
忽略低方差特征
有时数据集可能包含具有多个类别的 分类特征,其中这些类别的分布是倾斜的,某个类别可能主导其他类别。这意味着此类特征提供的信息变化不大。对于机器学习模型来说,此类特征可能不会增加太多信息,因此可以在建模时忽略。这可以在 PyCaret 中通过使用 low_variance_threshold
参数来实现。
参数
low_variance_threshold: 浮点型或 None, 默认为 None
移除训练集方差低于给定阈值的特征。如果为 0,则保留所有非零方差的特征,即移除在所有样本中具有相同值的特征。如果为 None,则跳过此转换步骤。
示例
之前
之后
最后更新于
这篇文章有帮助吗?