I've worked with cloudy data in the past and the best way I've found to deal with clouds is below:
Depending on what type of clouds you have in your image this may or may not work. If they are small and scattered puffy clouds it should work.
I usually start off by classifying just the area with the clouds. Then when I am aggregating my classes I aggregate them into two classes. Class 1 has clouds and class 2 is everything else.
Then (I use a bitmap in PCI Geomatica) when I classify my entire image I will classify outside of my cloud classification. This way it will ignore the clouds and only classify the ground left around them.