This is an implementation of Coordinate Descent Algorithms for optimization in C++ done as part of my course project. Following algorithms are implemented.
- Coordinate Descent
- Parallel Coordinate Descent
- Accelerated, Parallel and Proximal Coordinate Descent
$make clean
$make allUse following format
./CD -o1 option1 -o2 option2 -o3 option3 .... Options:
-Aoptimization algorithms. (required) * pcd: parallel coordinate descent * apcd: accelerated parallel coordinate descent-LLoss function. (required)- sq: squared loss
- log: logistic loss
-RRegularizer.- l1: L1 regularizer
- l2: L2 regularizer
-DDataset name. (required) Files are mentioned in config/files.cfg. To add new dataset, please add it in config/files.cfg with details.- blog : Blog Feedback Data Set
- msd : Year Prediction MSD
- arcene : Arcene Data Set
- internetAd : Internet Advertisements Data Set
- theoremProving : First-order theorem proving Data Set
-Tnumber of iterations. (required)-alphalearning rate (required)-periodIterations to reduce learning rate ( use -1 for constant learning rate)-PNumber of threads. (required)-lambdaRegularization Constant-GS1 for using Gauss-Southwell rule else 0
External Libraries Used:
- Eigen : Used for matrix operations
- ConfigParser : Used for reading config files