Logistic Regression using PBblas

Provided is an implementation of Logistic Regression for dense matrices using PBblas.

Files created:

PBblas/HadamardProduct.ecl - Cell wise multiplication using PBblas

PBblas/AutoMap.ecl - Function to determine map sizes for matrices. Not always optimal and is determined by rows/cols in matrix, max row/col for each partition, and CLUSTERSIZE. Partition sizes can also provided for fine tuning/better performance.

PBblas/Tests/MapTest.ecl - Can be used to predetermine map sizes for matrix. Results can be used as defaults for PBblas/AutoMap.ecl or PBblas/MatrixMap.ecl

PBblas/MU.ecl - Matrix universe for Layout_Part matrices. Same concepts as Mat/MU.ecl



Necessary updated files:
Classify.ecl - Added LR model name logistic. Renamed Original Logistic to Logistic_sparse.

PBblas.Types.ecl - Added PBblas/MU.ecl type

ML/Utils.ecl - Added Rebasing for IDs. Added support for Rebasing ID from Numbers. This is important when moving back and forth between Mat types and PBblas types.

PB.dgemm - More detailed error messages so it is easier to tell which matrices/blocks are not compatible.



When viewed in the ECL Watch it actually isn't that long. Also, when performing a large number of matrix operations, actually knowing why and how it isn't compatible is necessary.