***************************************************************************
MATLAB toolbox for Label Distribution Learning(LDL)
%Version 1.1.0      22nd-April-2015

Copyright
Xin Geng (xgeng@seu.edu.cn)
School of Computer Science and Engineering, Southeast University
Nanjing 211189, P.R.China
***************************************************************************

0. Contents
===========================================================================
0. Contents
1. Introduction
2. Requirements
3. Installation
4. How to start?

1.Introduction
===========================================================================
This package implements a novel machine learning paradigm named Label 
Distribution Learning (LDL). A label distribution covers a certain number 
of labels, representingthe degree to which each label describes the 
instance. LDL is a general learning framework which includes both 
single-label and multi-label learning as its special cases. 
Further details about LDL can be found in the following papers:

[1] X. Geng, C. Yin, and Z.-H. Zhou. Facial Age Estimation by Learning from Label Distributions. IEEE Transactions on Pattern Analysis and Machine Intelligence (IEEE TPAMI), 2013, 35(10): 2401-2412.
[2] X.Geng and R.Ji. Label Distribution Learning. In Proceedings of the 2013 International Conference on Data Mining Workshops (ICDMW13), Dallas, TA, 2013, pp. 377-383.
[3] X.Geng and P.Hou. Pre-release Prediction of Crowd Opinion on Movies by Label Distribution Learning. In the Proceedings of the 2015 International Joint Conference on Artificial Intelligence(IJCAI' 15).
[4] X.Geng and Y. Xia. Head Pose Estimation Based on Multivariate Label Distribution. In: Proceedings of IEEE International Conference on Computer Vision and Pattern Recognition (CVPR14), Columbus, OH, 2014, pp. 1837-1842.
[5] X.Geng and L.-L Luo. Multilabel Ranking with Inconsistent Rankers. In: Proceedings of IEEE International Conference on Computer Vision and Pattern Recognition (CVPR14), Columbus, OH, 2014, pp. 3742-3747. 
[6] X.Geng, Q. Wang, and Y. Xia. Facial Age Estimation by Adaptive Label Distribution Learning. In: Proceedings of the 22nd International Conference on Pattern Recognition (ICPR14), Stockholm, Sweden, 2014, pp. 4465 - 4470.

This package can be used freely for academic, non-profit purposes. 
If you intend to use it for commercial development, please contact us. 
In academic papers using this package, 
the following references will be appreciated:
[1] X. Geng, C. Yin, and Z.-H. Zhou. Facial Age Estimation by Learning from Label Distributions. IEEE Transactions on Pattern Analysis and Machine Intelligence (IEEE TPAMI), 2013, 35(10): 2401-2412.
[2] X.Geng and R.Ji. Label Distribution Learning. In Proceedings of the 2013 International Conference on Data Mining Workshops (ICDMW13), Dallas, TA, 2013, pp. 377-383.
[3] X.Geng and P.Hou. Pre-release Prediction of Crowd Opinion on Movies by Label Distribution Learning. In the Proceedings of the 2015 International Joint Conference on Artificial Intelligence(IJCAI' 15).
[4] X. Geng and Yu Xia. Head Pose Estimation Based on Multivariate Label Distribution. In: Proceedings of IEEE International Conference on Computer Vision and Pattern Recognition (CVPR14), Columbus, OH, 2014, pp. 1837-1842.
[5] X. Geng and Longrun Luo. Multilabel Ranking with Inconsistent Rankers. In: Proceedings of IEEE International Conference on Computer Vision and Pattern Recognition (CVPR14), Columbus, OH, 2014, pp. 3742-3747. 
[6] X. Geng, Q. Wang, and Y. Xia. Facial Age Estimation by Adaptive Label Distribution Learning. In: Proceedings of the 22nd International Conference on Pattern Recognition (ICPR14), Stockholm, Sweden, 2014, pp. 4465 - 4470.

This package can be downloaded from 
http://cse.seu.edu.cn/PersonalPage/xgeng/LDL.htm. 
Please feel free to contact us if you find anything wrong 
or you have any further questions.

2. Requirements
===========================================================================
- Matlab, version 2013a and higher.
- The package is mostly self-contain. 
Several functions require the Optimization Toolbox. 

3. Installation
===========================================================================
- Create a directory of your choice and copy the toolbox there.
- Set the path in your Matlab to add the directory you just created.

4. How to start?
===========================================================================
We have implemented four LDL algorithms in this package, 
namely IIS-LLD, BFGS-LLD, CPNN and LDSVR. To help you start working with LDL, 
we provide four demos (See iisllddemo.m, bfgsllddemo.m, cpnndemo.m, 
ldsvrdemo.m)  in this package. 
Before using the LDL Matlab toolbox, you'd better pre-process your dataset
including the normalization of features and labels. When you construct the 
label distribution, you should ensure that the sum of distribution is equal 
to 1.The preprocess part depends on the specific data used. 

Please read and play with the demos to get started. Have fun!


