# Maximum likelihood

This section introduces a simple algorithm to learn all the parameters of a graphical model as we saw until now. In the first section, we had our first experience of learning such a model and we concluded by saying that the parameters can be learned locally for each variable. It means that, for each variable *x* having parents *pa(x)* in the graph, for each combination of the parents *pa(x)* we compute frequencies for each value of *x*. If the dataset is complete enough, then this leads to the maximum likelihood estimation of the graphical models.

For each variable *x* in the graphical modeling, and for each combination *c* of the values of the parents of *pa(x)* of *x*:

- Extract all the data points corresponding to the values in
*c* - Compute a histogram
*Hc*on the value of*x* - Assign

Is that it? Yes it is, it's all you have to do. The difficult part is the extraction of the data points, which is a problem you can solve in R using the `ddply`

or `aggregate`

functions.

But why is it so simple?...