I intend to perform supervised classification of household roofing materials. Now, my concern is, how do I differentiate or what are possible ways in which i would be able to differentiate households from commercial buildings?
Your question is very interesting one. You should first segment the image to help in extracting only all type of buildings including residential and commercial ones. After this step you can do the following to separate between them:
1-extract edges of all buildings using morphological operators
2-convert these edges to polygons and select buildings with large area as commercial and others as residential.
Another way is to use deep learning to recognize these objects based on reference dataset.
If your images are geo-referenced, you could try and query Google services with the precise GPS position of the center of the building and try to get it's type (commercial, residential, etc.).
This would help you get "ground truth" data and after that, you could train your algorithm to be the best it can on image data alone.
Additionally, there could be some ambiguities. For example, in Canada, many small businesses operate out of buildings that are either similar to our once were residential. Also, the roofs of many tall apartment buildings are identical to those of tall office buildings: flat, same color, contain the same equipment (vents, AC units, etc.).