zoukankan      html  css  js  c++  java
  • cv 验证

    This is how I have trained a xgboost classifier with a 5-fold cross-validation to optimize the F1 score using randomized search for hyperparameter optimization:

    clf_xgb = xgb.XGBClassifier(objective = 'binary:logistic')
    param_dist = {'n_estimators': stats.randint(150, 500),
                  'learning_rate': stats.uniform(0.01, 0.07),
                  'subsample': stats.uniform(0.3, 0.7),
                  'max_depth': [3, 4, 5, 6, 7, 8, 9],
                  'colsample_bytree': stats.uniform(0.5, 0.45),
                  'min_child_weight': [1, 2, 3]
                 }
    clf = RandomizedSearchCV(clf_xgb, param_distributions = param_dist, n_iter = 25, scoring = 'f1', error_score = 0, verbose = 3, n_jobs = -1)
    
    numFolds = 5
    folds = cross_validation.KFold(n = len(X), shuffle = True, n_folds = numFolds)
    
    estimators = []
    results = np.zeros(len(X))
    score = 0.0
    for train_index, test_index in folds:
        X_train, X_test = X[train_index], X[test_index]
        y_train, y_test = y[train_index], y[test_index]
        clf.fit(X_train, y_train)
    
        estimators.append(clf.best_estimator_)
        results[test_index] = clf.predict(X_test)
        score += f1_score(y_test, results[test_index])
    score /= numFolds
  • 相关阅读:
    数据库 连接(join)
    Linux top
    Game2048
    黑豆白豆问题
    1000个苹果10箱
    Jconsole
    八数码 Java实现
    两数之和
    磁盘调度算法
    常见应用网络层次
  • 原文地址:https://www.cnblogs.com/xinping-study/p/8184570.html
Copyright © 2011-2022 走看看