Sklearn

安装:pip install -U scikit-learn

datasets

自带数据集

样本生成器

Metrics

pairwise

pairwise_distances:成对距离

评分方法

Model_selection

如果ShuffleSplit和train_test_split设置的随机种子相同,也就是random_state一样,那么ShuffleSplit的第一次切分方式与train_test_split完全一致

train_test_split:数据集切分(一次)

ShuffleSplit:数据集切分(多次随机划分)

KFold:数据集切分(交叉验证)

KFold通过参数n_splits把数据集分为互斥的n折,每次循环取一折作为测试集;如果shuffle是False,那么程序会按照原始数据集按索引顺序划分

StratifiedKFold:数据集切分(分层交叉验证)

StratifiedKFold的参数跟KFold是一样的,但是它的功能是实现分层抽样

cross_value_score:模型选择(交叉验证)

cross_validate:模型选择(交叉验证)

cross_validate方法和cross_validate_score有个两个不同点:
  • 它允许传入多个评估方法,可以列表或字典的形式传入
  • 最后返回的scores为一个字典(cross_validate_score返回一个 array),字典的key为:dict_keys(['fit_time', 'score_time', 'test_score', 'train_score'])
    • fit_time:训练时间;score_time:评分的次数;test_score:测试集的准确率数组;train_score:训练集的准确率数组;train_scoretest_score的对比可以帮助判断模型是否存在过拟合或欠拟合等问题
💡
负均方误差:虽然均方误差永远为正,但是sklearn中的参数scoring下,均方误差作为评 判标准时,却是计算”负均方误差“(neg_mean_squared_error)。这是因为sklearn在计算模型评估指标的时候, 会考虑指标本身的性质,均方误差本身是一种误差,所以被sklearn划分为模型的一种损失(loss)。在sklearn当中, 所有的损失都使用负数表示,因此均方误差也被显示为负数了。真正的均方误差MSE的数值,其实就是 neg_mean_squared_error去掉负号的数字。
 

GridSearchCV:网格搜索

RandomizedSearchCV:随机网格搜索

Bayesian Optimization:贝叶斯优化

贝叶斯优化(Bayesian Optimization)是一种用于全局优化的技术,特别适用于高维、非凸、昂贵的目标函数。在机器学习中,贝叶斯优化常用于超参数调优,因为它可以在较少的评估次数下找到接近最优的超参数配置。
他是通过拟合一个超参数到评估指标的一个函数,然后求最优解。
scikit-learn本身并没有内置的贝叶斯优化工具,但你可以使用第三方库如scikit-optimize(简称skopt)来实现贝叶斯优化。
pip install scikit-optimize
n_iter参数在贝叶斯优化中表示要进行的优化迭代次数,即在超参数空间中采样的次数。选择合适的n_iter值是一个权衡计算资源和优化效果的问题。以下是一些一般性的建议:
1. 初始探索阶段
在初始探索阶段,通常建议设置较小的n_iter值,以便快速了解超参数空间的大致情况。这个阶段的目的是识别出哪些超参数对模型性能影响较大。
  • 建议区间:10-50次迭代
2. 详细优化阶段
在初始探索阶段之后,可以根据初步结果调整超参数空间,并增加n_iter值以进行更详细的优化。这个阶段的目的是找到更接近最优的超参数配置。
  • 建议区间:50-200次迭代
3. 计算资源允许的情况下
如果计算资源允许,可以进一步增加n_iter值,以获得更精确的优化结果。通常,迭代次数越多,找到最优超参数配置的可能性越大,但计算成本也会相应增加。
  • 建议区间:200-500次迭代

Hyperband优化

Hyperband 是一种用于超参数优化的算法,特别适用于高维、昂贵的目标函数。它通过动态分配资源来加速超参数搜索过程。Hyperband 结合了随机搜索和早停策略,以在有限的计算资源下找到接近最优的超参数配置。
Hyperband的思想是跑多个Successive Halving
Successive Halving的思想如下:
  • 假设优化算法关注n组参数,每组参数训练m轮;
  • 在第一时刻n=16,m=25,进行训练;
  • 第一时刻训练完成之后保留效果最好的前一半的参数,并加大训练轮数m
  • 在第二时刻n=8, m=50,进行训练;
  • 循环,直到找到最优参数。
Hyperband中每一次跑Successive Halving就在之前的Successive Halving结果上进行筛选。
pip install optuna
 

feature_selection

VarianceThreshold:方差特征选择器

SelectKBest:特征选择器(按个数选择)

SelectPercentile:特征选择器(按比例选择)

RFERFECV:特征选择器(递归特征消除法)

SelectFromModel特征选择器(嵌入法)

Feature_extraction

text

CountVectorizer:词频统计

Externals

joblib:保存和加载模型&参数

Compose

ColumnTransformer:特征变换方法

impute

SimpleImputer:缺失填充

 
对于本文内容有任何疑问, 可与我联系.