Medial Code Documentation
Loading...
Searching...
No Matches
param.h
Go to the documentation of this file.
1
6#ifndef XGBOOST_LINEAR_PARAM_H_
7#define XGBOOST_LINEAR_PARAM_H_
8#include "xgboost/parameter.h"
9
10namespace xgboost {
11namespace linear {
16 kCyclic = 0,
17 kShuffle,
18 kThrifty,
19 kGreedy,
20 kRandom
21};
22
23struct LinearTrainParam : public XGBoostParameter<LinearTrainParam> {
29 float reg_alpha;
30 int feature_selector;
31 // declare parameters
32 DMLC_DECLARE_PARAMETER(LinearTrainParam) {
33 DMLC_DECLARE_FIELD(learning_rate)
34 .set_lower_bound(0.0f)
35 .set_default(0.5f)
36 .describe("Learning rate of each update.");
37 DMLC_DECLARE_FIELD(reg_lambda)
38 .set_lower_bound(0.0f)
39 .set_default(0.0f)
40 .describe("L2 regularization on weights.");
41 DMLC_DECLARE_FIELD(reg_alpha)
42 .set_lower_bound(0.0f)
43 .set_default(0.0f)
44 .describe("L1 regularization on weights.");
45 DMLC_DECLARE_FIELD(feature_selector)
46 .set_default(kCyclic)
47 .add_enum("cyclic", kCyclic)
48 .add_enum("shuffle", kShuffle)
49 .add_enum("thrifty", kThrifty)
50 .add_enum("greedy", kGreedy)
51 .add_enum("random", kRandom)
52 .describe("Feature selection or ordering method.");
53 // alias of parameters
54 DMLC_DECLARE_ALIAS(learning_rate, eta);
55 DMLC_DECLARE_ALIAS(reg_lambda, lambda);
56 DMLC_DECLARE_ALIAS(reg_alpha, alpha);
57 }
59 void DenormalizePenalties(double sum_instance_weight) {
60 reg_lambda_denorm = reg_lambda * sum_instance_weight;
61 reg_alpha_denorm = reg_alpha * sum_instance_weight;
62 }
63 // denormalizated regularization penalties
64 float reg_lambda_denorm;
65 float reg_alpha_denorm;
66};
67
68} // namespace linear
69} // namespace xgboost
70
71#endif // XGBOOST_LINEAR_PARAM_H_
macro for using C++11 enum class as DMLC parameter
FeatureSelectorEnum
A set of available FeatureSelector's.
Definition param.h:15
namespace of xgboost
Definition base.h:90
Definition parameter.h:84
float learning_rate
learning_rate
Definition param.h:25
float reg_alpha
regularization weight for L1 norm
Definition param.h:29
float reg_lambda
regularization weight for L2 norm
Definition param.h:27
void DenormalizePenalties(double sum_instance_weight)
Denormalizes the regularization penalties - to be called at each update.
Definition param.h:59