【问题标题】:Does ParameterGrid produce duplicates?ParameterGrid 是否产生重复项?
【发布时间】:2021-09-28 00:52:24
【问题描述】:

是 Python 3.7.5 中 scikit-learn 0.22 中的 ParameterGrid 函数产生重复还是因为我没有正确使用它?看看下面的例子。

from sklearn.model_selection import ParameterGrid
import pandas as pd    
hyper_params_dict = {
        "SQM_FOLDER_SUFFIX": ["_SQM_MM"],
        "HYPER_RATIO_SCORED_POSES": [0.8],
        "HYPER_OUTLIER_MAD_THRESHOLD": [2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0],
        "HYPER_KEEP_MAX_DeltaG_POSES": [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0],
        "HYPER_KEEP_POSE_COLUMN": ["r_i_docking_score"],
        "HYPER_SELECT_BEST_BASEMOLNAME_SCORE_BY": ["Eint"],
        "HYPER_SELECT_BEST_BASEMOLNAME_POSE_BY": ["Eint"],
        "HYPER_SELECT_BEST_STRUCTVAR_POSE_BY": ["complexE"],
        "CROSSVAL_PROTEINS_STRING": ['MARK4', 'ACHE', 'JNK2', 'AR', 'EPHB4', 'PPARG', 'MDM2', 'PARP-1', 'TP', 'TPA',
                                     'SIRT2', 'SARS-HCoV', 'PPARG'],
        "XTEST_PROTEINS_STRING": [""],
        "HYPER_2D_DESCRIPTORS": [""],
        "HYPER_3D_DESCRIPTORS": [""],
        "HYPER_GLIDE_DESCRIPTORS": [""]
    }
    
    df = pd.concat([pd.DataFrame({k: [v] for k, v in p.items()}) for p in ParameterGrid(hyper_params_dict)], ignore_index=True)
    df.duplicated().value_counts()

【问题讨论】:

    标签: python-3.x scikit-learn hyperparameters


    【解决方案1】:

    ParameterGrid 创建没有重复的所有值的组合。

    您有重复的参数组合,因为CROSSVAL_PROTEINS_STRING 包含的值是PPARG 的两倍。

    【讨论】:

    • 我有时就是个傻瓜。 :(
    • 好吧,它发生了:-)
    • 附带说明,使用集合的字典调用 ParameterGrid 会更安全,如下所示: hyper_params_dict = { "HYPER_OUTLIER_MAD_THRESHOLD": {2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0 , 7.0, 8.0}, "HYPER_KEEP_MAX_DeltaG_POSES": {1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0} }
    猜你喜欢
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2013-03-29
    • 1970-01-01
    • 2017-10-03
    • 2020-07-13
    相关资源
    最近更新 更多