Handling Incomplete Heterogeneous Data using a Data-Dependent Kernel