精华内容
下载资源
问答
  • eval_metric 用的是列表的方式["auc",“rmse”,"logloss"] eval_metric是评价函数,对模型的训练没有影响,而是在模型训练完成之后评估模型效果。如我们经常使用logloss作为objective,经常与之搭配的评价函数是...

    metric 用的是 字典的方式 像这样 {“logloss,"auc”}

    eval_metric 用的是列表的方式["auc",“rmse”,"logloss"]

     

    eval_metric是评价函数,对模型的训练没有影响,而是在模型训练完成之后评估模型效果。如我们经常使用logloss作为objective,经常与之搭配的评价函数是auc、acc等。

    评估标准。使用方法: eval_metric = 'error' 
    
    回归任务(默认rmse)
    	rmse--均方根误差
    	mae--平均绝对误差
    	
    分类任务(默认error)
    	auc--roc曲线下面积
    	error--错误率(二分类)
    	merror--错误率(多分类)
    	logloss--负对数似然函数(二分类)
    	mlogloss--负对数似然函数(多分类)
        map--平均正确率
    

     

    展开全文
  • xgboost objective和eval_metric的区别

    千次阅读 2020-06-28 13:52:50
    之前对于xgboost中的两个参数objective和eval_metric一直分不清楚,不知道它们各自的作用。后来通过查找资料理清了他们之间的关系。这里记录一下。 1、objective objective参数代表的是模型的损失函数,也就是我们...

    之前对于xgboost中的两个参数objective和eval_metric一直分不清楚,不知道它们各自的作用。后来通过查找资料理清了他们之间的关系。这里记录一下。

    1、objective

    objective参数代表的是模型的损失函数,也就是我们进行优化的目标。

    这里要注意损失函数与目标函数的区别,一般情况下,我们说的损失函数就是目标函数,但是一些模型如xgboost要求目标函数要有一阶导数和二阶导数才能进行优化,而很多目标函数是没有一阶导数或二阶导数的,所以这时就用具有相似结果的损失函数来代替(如果损失函数能够很好地替代目标函数,这是最好的情况,如果替代效果不佳,则影响模型优化)。在模型优化中,我们使用的都是损失函数。
    objective是训练模型必备的函数,只有定义了objective模型才能进行训练

    2、eval_metric函数
    eval_metric是评价函数,对模型的训练没有影响,而是在模型训练完成之后评估模型效果。如我们经常使用logloss作为objective,经常与之搭配的评价函数是auc、acc等。

    为什么评价的时候不用objective呢?本来就是用objective来优化的,自己评价自己就没多大意义了,所以一般需要来自另一个评分机制的eval_metric来评估模型效果。

    eval_metric对于训练模型没有影响,即使我们不定义这个函数模型也可以正常训练。

    参考文献:
    xgboost中Objective和feval之间的差异
    XGBoost自定义评价函数(feval)

    展开全文
  • 在训练的时候很多人想查看训练集和验证集的训练情况,但不知道...1.首先在params中设定eval_metric,记住这个属性和lightgbm不一样lightgbm是用metric={“logloss,"auc”}这种map形式,xgboost是应用list形式的,eva...

    在训练的时候很多人想查看训练集和验证集的训练情况,但不知道如何打印出来或者形成图

    现在我教教大家,查看了xgboost 的api 确实有一个eval_metric参数可以输出训练情况

    1.首先在params中设定eval_metric,记住这个属性和lightgbm不一样lightgbm是用metric={“logloss,"auc”}这种map形式,xgboost是应用list形式的,eval_metric=["auc",“rmse”,"logloss"]

    2.应用xgboost.train进行训练的话,应用evals进行评估操作。

    #测试集的训练数据
    其中data的数据是从pd.read_csv读取的
    y_train =data.label #label标签自定义
    x_train=data.drop(labels="label",axis=1)
    train_x, valid_x, train_y, valid_y = train_test_split(x_train, y_train, test_size=0.2)  # 分训练集和验证集dtrain = xgb.DMatrix(train_x, label=train_y)
    dtest = xgb.DMatrix(valid_x,label=valid_y)
    model = xgb.train(params, xgb.DMatrix(train_x,train_y),evals=[(dtrain,'train'),(dtest,'vaild')],num_boost_round=500)

    3.训练结果如下

     

    4.如果你是应用fit进行训练的话,参数就不一样了,如下

     model1=XGBClassifier(**params)
     train = [train_x, train_y]
     eval = [x_test, y_test1]
     model2=model1.fit(train_x,train_y,eval_metric=['logloss','auc','error'],eval_set=[train,eval])
    
    

    5.打印显示训练时的变化情况(必须用fit的方法训练才能查看到)自己现在的理解

    plot_logloss(model2)

    # 画出损失函数的变化情况
    def plot_logloss(model):
        results = model.evals_result_
        print(results)
        epochs = len(results['validation_0']['logloss'])
        x_axis = range(0, epochs)
        print(epochs)
        # plot log loss
        fig, ax = plt.subplots()
        ax.plot(x_axis, results['validation_0']['logloss'], label='Train')
        print(results['validation_1']['logloss'])
        ax.plot(x_axis, results['validation_1']['logloss'], label='Test')
        ax.legend()
        plt.ylabel('Log Loss')
        plt.title('XGDboost Log Loss')
        plt.show()
        # plot classification error
        fig, ax = plt.subplots()
        ax.plot(x_axis, results['validation_0']['error'], label='Train')
        ax.plot(x_axis, results['validation_1']['error'], label='Test')
        ax.legend()
        plt.ylabel('Classification Error')
        plt.title('XGBoostClassification Error')
        plt.show()
    
    展开全文
  • XGBoost自定义测评函数eval_metric

    千次阅读 2018-04-29 16:54:54
    How to custom evaluation metric for XGBoost in Python # -*- coding: utf-8 -*- from sklearn.cross_validation import train_test_split from sklearn.datasets import load_digits import xgboost as xgb fr...

    How to custom evaluation metric for XGBoost in Python

    # -*- coding: utf-8 -*-
    from sklearn.cross_validation import train_test_split
    from sklearn.datasets import load_digits
    import xgboost as xgb
    from sklearn.metrics import matthews_corrcoef
    from xgboost import XGBClassifier
    
    THRESHOLD = 0.5
    
    #自定义马修斯相关系数
    def evalmcc(preds, dtrain):
        labels = dtrain.get_label()
        return 'MCC', matthews_corrcoef(labels, preds > THRESHOLD)
    
    
    def evalmcc_min(preds, dtrain):
        labels = dtrain.get_label()
        return 'MCC', -matthews_corrcoef(labels, preds > THRESHOLD)
    
    
    xgb_params = {
        'seed': 0,
        'colsample_bytree': 0.5,
        'silent': 1,
        'subsample': 0.5,
        'learning_rate': 0.001,
        'objective': 'binary:logistic',
        'max_depth': 2,
        'min_child_weight': 1,
    }
    
    if __name__ == "__main__":
        digits = load_digits(n_class=2)
        x_train = digits.data
        y_train = digits.target
    
        dtrain = xgb.DMatrix(x_train, label=y_train)
        res = xgb.cv(xgb_params, dtrain, num_boost_round=250, nfold=5, seed=0, stratified=True,
                     early_stopping_rounds=25, verbose_eval=5, show_stdv=True, feval=evalmcc, maximize=True)
    
        clf = XGBClassifier(**xgb_params)
    
        x_train, x_test, y_train, y_test = train_test_split(x_train, y_train, test_size=0.50, random_state=1337)
    
        clf.fit(x_train, y_train, eval_set=[(x_test, y_test)], eval_metric=evalmcc_min, early_stopping_rounds=50,
                verbose=True)

    http://www.cnblogs.com/silence-gtx/p/5812012.html

    https://blog.csdn.net/wl_ss/article/details/78685984

    https://www.kaggle.com/c/bosch-production-line-performance/discussion/23909

    展开全文
  • 【干货】 xgboost如何自定义eval_metric ( feval ) ?原文地址:问题来源是,xgboost的eval_metric里如果没有你要用的,比如kaggle里有用到的rmsle就没有就需要自己定义。...上代码:(把eval_metric变成rmsle的例子)...
  • 评估指标 机器学习的评估指标 设计 该库的目标是充当轻量级且直观的功能集合,用于计算评估指标,并着重于效率和明确定义的行为。 可以从实例化BinaryConfusionMatrix或MultiConfusionMatrix计算(廉价)分类指标,...
  • 在使用Estimator接口评估我的...我在model_function中使用此操作:if mode == tf.estimator.ModeKeys.EVAL:return tf.estimator.EstimatorSpec(mode=mode, loss=loss,eval_metric_ops={"accuracy": tf.metrics.mean...
  • 介绍算法性能评估文件(eval_metrics.py)的作用、编写思路、python代码。
  • python风控建模实战lendingClub

    千人学习 2020-09-14 20:30:10
    针对消费金融,现金贷等线上贷款场景,教会学员如何运用python+catboost+lightgbm等算法建立风控模型。 实操项目包括 (1)美国金融科技公司lendingClub 12万真实数据(分类器模型) (2)移动杯模型竞赛:消费者人群...
  • 3D目标检测——代码理解——评价指标eval.py中get_official_eval_result和get_coco_eval_result的理解 由于是参考openpcdet的代码来改写自己的数据集,并且达到训练和测试的目的,因此这是OpenPCDet的源代码 用...
  • TabularPredictor(label, eval_metric=metric).fit(train_data, time_limit=time_limit, presets='best_quality') predictor.leaderboard(test_data, silent=True) 参数说明: 百度翻译: 此命令实施以下策略以最大...
  • 在绘制PR曲线时要自己生成一个pkl文件,需要reval_voc_py.py代码来生。现贴出基于python2和python3的代码,按照自己的python版本直接复制即可。拿走不谢~ reval_voc_py.py #!/usr/bin/env python # Adapt from ->...
  • LightGBM 自定义metric

    千次阅读 2019-05-07 11:32:00
    def self_loss(labels, preds): ... valid_sets=lgb_eval,  fobj = self_loss,  feval = self_metric,  early_stopping_rounds=30) 转载于:https://www.cnblogs.com/kayy/p/10824392.html
  • sklearn中metric评估方法

    2019-07-18 10:37:37
    https://blog.csdn.net/CherDW/article/details/55813071 (转)
  • lightgbm 之metric参数应用

    千次阅读 2019-05-07 10:06:33
    在xgboost里面讲过了就不仔细讲解了,链接如下:...'metric': {'binary_logloss', 'l2', 'auc'}, train=lgb.Dataset(train_x,train_y, free_raw_data=False) eval = lgb.Da...
  • Tensorflow学习-自定义模型

    千次阅读 2018-01-08 18:34:06
    mode=mode, loss=loss, eval_metric_ops=eval_metric_ops) 可以看到,其实TRAIN和EVAL可以放在一起返回。 具体写法: return tf.estimator.EstimatorSpec( mode=mode, loss=loss, train_op=...
  • def self_metric1(y_true,y_predict): d = pd.DataFrame() d['prob'] = list(y_predict) d['y'] = list(y_true) d = d.sort_values(['prob'], ascending=[0]) y = d.y PosAll = pd.Series(y).value_counts()[1...
  • # 注意我们这里eval_metric=‘error’便是准确率。这里面并没有accuracy命名的函数,网上大多例子为auc,我这里特意放了个error。 y_pred = xlf.predict(valid_x, ntree_limit=xlf.best_ntree_limit) auc_score = ...
  • 3.1 Open Images V2 detection metric in *.config file 可以这么设置 eval_config: { metrics_set: "oid_V2_detection_metrics" num_examples: *** } 3.2 OID Challenge Object Detection Metric in *.config ...
  •  2)评估模式:eval 需要传入mode, loss, eval_metric_ops  如果调用 Estimator 的 evaluate 方法,则 model_fn 会收到 mode = ModeKeys.EVAL。在这种情况下,模型函数必须返回一个包含模型损失和一个或多个...
  • xgboost 用法讲解

    千次阅读 2017-12-09 21:25:12
    # eval_metric :指定这个衡量的标准,我们选用的是loss。 # verbose : 这个用来显示这个loss的结果。如果设置成False则不会输出每一步的结果 model.fit(X_train, y_train, early_stopping_rounds= 10 , eval_...
  • python xgboost 调参

    2019-09-06 21:47:40
    def modelfit(model, X_train, X_test, y_train, y_test,useTrainCV, eval_metric='auc', cv_folds=4, early_stopping_rounds=20): #early_stopping_rounds 在20轮迭代里没有提升的话,就停止 print('Model...
  • name: str, eval_result: float, is_higher_better: bool def f(preds, train_data): ''' :param preds: array, 预测值 :param train_data: lgb Dataset, lgb的传入数据集 :return: ''' ### 返回
  • # fit the model model.fit(X_train, y_train, eval_metric='logloss', eval_set=evalset) 一旦模型适合,我们就可以将其性能评估为测试数据集上的分类准确性。 # evaluate performance yhat = model.predict(X_...
  • 机器学习中评价指标的选择

    千次阅读 2018-04-24 15:49:40
     二分类:eval_metric='auc'/'logloss'  多分类:eval_metric='mlogloss'  1、样本均衡:  准确度,二分类还可以选择auc。 from sklearn.metrics import accuracy_score from sklearn.metrics import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,797
精华内容 3,118
关键字:

eval_metric