We investigate the use of certain data-dependent estimates of the complexity of a function class, called Rademacher and gaussian
complexities. In a decision theoretic setting, we prove general risk bounds in terms of these complexities. We consider function
classes that can be expressed as combinations of functions from basis classes and show how the Rademacher and gaussian complexities
of such a function class can be bounded in terms of the complexity of the basis classes.We give examples of the application
of these techniques in finding data-dependent risk bounds for decision trees, neural networks and support vector machines.