zoukankan      html  css  js  c++  java
  • auto-sklearn案例解析二

    度量函数-metrics

    auto-sklearn的度量函数是对sklearn度量函数的封装,我们即可以使用autosklearn已经封装好的metrics函数,也可以使用autosklearn的metrics函数封装器make_scorer函数封装我们自己的么metrics函数

    使用autosklearn已经封装好的metrics函数

    如果仅仅是获取的话,最简易的一种方式是直接去找源代码.你可以直接输入并点击autosklearn.metrics从而进入该方法的__Init__.py文件,在其中的第180行有使用make_scorer函数进行封装的源代码:

        # Standard regression scores
        r2 = make_scorer('r2', sklearn.metrics.r2_score)
        mean_squared_error = make_scorer('mean_squared_error',
                                 sklearn.metrics.mean_squared_error,
                                 greater_is_better=False)
        ......
    
        # Score functions that need decision values
        roc_auc = make_scorer('roc_auc', sklearn.metrics.roc_auc_score,
                      greater_is_better=True, needs_threshold=True)
        ......
    

    二其中的r2则是autosklearn分类器的默认参数.如果我们想要使用这些函数的话,也十分的简单.下面就是一个使用正确率的函数

    cls.fit(X_train, y_train, metric=autosklearn.metrics.accuracy)
    

    不过根据autosklearn中的example,我们还可以使用以下代码直接获取相应的metrics函数的名字

            # Print a list of available metrics
            print("Available CLASSIFICATION metrics autosklearn.metrics.*:")
            print("	*" + "
    	*".join(autosklearn.metrics.CLASSIFICATION_METRICS))
    
            print("Available REGRESSION autosklearn.metrics.*:")
            print("	*" + "
    	*".join(autosklearn.metrics.REGRESSION_METRICS))
    

    利用autosklearn的封装器,封装我们自己的metrics函数

    如同前面所写,我们使用make_scorer封装我们自己的评价函数:

        def accuracy(solution, prediction):
            # function defining accuracy
            return np.mean(solution == prediction)
    
    
        def accuracy_wk(solution, prediction, dummy):
            # function defining accuracy and accepting an additional argument
            assert dummy is None
            return np.mean(solution == prediction)
    
            accuracy_scorer = autosklearn.metrics.make_scorer(name="accu_add",
                                                      score_func=accuracy, # 此处使用上面的那一个函数都可以
                                                      greater_is_better=True,
                                                      needs_proba=False,
                                                      needs_threshold=False,
                                                      dummy=None)
            cls = autosklearn.classification.
            AutoSklearnClassifier(time_left_for_this_task=60,
                              per_run_time_limit=30, seed=1)
            cls.fit(X_train, y_train, metric=accuracy_scorer)
    

    如前面所示,封装我们自己的评价函数或者说度量函数一共分为两步

    • 第一步,设置一个函数,参数最起码为二,格式如上
    • 第二步,使用make_scorer() 方法,制作我们自己的 scorer

    其他常用函数

    print(automl.show_models()):该语句的作用是展示最后我们获取的最佳模型
    print(automl.sprint_statistics()):该语句的作用是展示模型的状态,该语句输出如下

        auto-sklearn results:
    
          Dataset name: digits
          Metric: accuracy
          Best validation score: 0.991011
          Number of target algorithm runs: 25
          Number of successful target algorithm runs: 0
          Number of crashed target algorithm runs: 0
          Number of target algorithms that exceeded the memory limit: 0
          Number of target algorithms that exceeded the time limit: 0
    
        **中文对照:**
        uto-sklearn结果:
        数据集名称:数字
        度量:准确性
        最好的验证分数:0.991011
        目标算法的运行次数:25
        成功的目标算法的数量:0
        目标算法的崩溃次数:0
        超过内存限制的目标算法数量:0
        超过时间限制的目标算法的数量:0
    

    中文翻译即学习笔记链接

  • 相关阅读:
    Keyboarding题解
    埃及分数 解题报告
    小木棍加强版解题报告
    扩展欧几里得
    luoguP4999 烦人的数学作业
    中国剩余定理
    20201115gryz模拟赛解题报告
    扩展欧几里得算法
    斐蜀定理
    CSP2020-S游记
  • 原文地址:https://www.cnblogs.com/fonttian/p/9162747.html
Copyright © 2011-2022 走看看