Introduction
Label Distribution Learning is a novel machine learning paradigm. A label distribution covers a certain number of labels, representing the degree to which each label describes the instance. LDL is a general learning framework which includes both singlelabel and multilabel learning as its special cases.
Further details about LDL can be found in the following paper.
X. Geng. Label Distribution Learning. IEEE Transactions on Knowledge and Data Engineering (IEEE TKDE), 2016, in press.
Our alogrithms can be used freely for academic, nonprofit purposes. If you intend to use it for commercial development, please contact us.
In academic papers using our codes and data, the following references will be appreciated:
[1] X. Geng. Label Distribution Learning. IEEE Transactions on Knowledge and Data Engineering (IEEE TKDE), 2016, in press.
[2] 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): 24012412.
Applications of LDL
Facial Age Estimation


Head Pose Estimation


Prerelease Prediction of Movies


Multilabel Ranking


Emotion Distribution Recognition


Multilabel Learning


Crowd Counting

Matlab Code
We have implemented four LDL algorithms, namely IISLLD, BFGSLLD, CPNN and LDSVR. To help you start working with LDL, we provide three demos (See iisllddemo.m, bfgsllddemo.m, cpnndemo.m, ldsverdemo.m) in this package.
Once downloaded, unzip the compressed folder to see the structure of LDL package. You'll see:
bfgsllddemo  The example of BFGSLLD algorithm.
bfgslldtrain  The training part of BFGSLLD algorithm.
bfgsprocess  Provide the target function and the gradient.
cpnn  The implementation of CPNN structure.
cpnndemo  The example of CPNN algorithm.
cpnnpredict  To predict the distribution by trained CPNN structure.
cpnntrain  The training part of CPNN algorithm.
drawdistribution  Draw the label distributions for comparision.
euclideandist  Calculate the average Euclidean distance between the predicted label
distribution and the real label distribution.
fidelity  Calculate the average fidelity between the predicted label
distribution and the real label distribution.
fminlbfgs  Finds a local minimum of a function of several variables.
iisllddemo  The example of IISLLD algorithm.
iislldtrain  The training part of IISLLD algorithm.
intersection  Calculate the average intersection between the predicted label
distribution and the real label distribution.
kernelmatrix  calculate the kernel matrix of vectors (samples) between two data matrices.
kldist  Calculate the average KullbackLeibler divergence between the predicted label
distribution and the real label distribution.
ldsvrdemo  The example of LDSVR algorithm.
ldsvrpredict  To predict the distribution by trained LDSVR model.
ldsvrtrain  The training part of LDSVR algorithm.
ldsvrmsvr  The LDSVR's Multioutput SVR.
lldpredict  Calculate the predicted distribution of the instance X by weights.
sorensendist  Calculate the average Sorensen's distance between the predicted label
distribution and the real label distribution.
squaredxdist  Calculate the average squared x*x distance between the predicted label
distribution and the real label distribution.
Data Sets
We have collected 15 realworld LDL data sets. Here are some statistics about them:
No.  Dataset  #Examples(n)  #Features(q)  #Labels(c) 
1  Yeastalpha  2,465  24  18 
2  Yeastcdc  2,465  24  15 
3  Yeastelu  2,465  24  14 
4  Yeastdiau  2,465  24  7 
5  Yeastheat  2,465  24  6 
6  Yeastspo  2,465  24  6 
7  Yeastcold  2,465  24  4 
8  Yeastdtt  2,465  24  4 
9  Yeastspo5  2,465  24  3 
10  Yeastspoem  2,465  24  2 
11  Human Gene  30,542  36  68 
12  Natural Scene  2,000  294  9 
13  SJAFFE  213  243  6 
14  SBU_3DFE  2,500  243  6 
15  Movie  7,755  1,869  5 