I. Introduction
Missing values in datasets is one of the most excruciating pain that faces the researchers in machine learning community. Even there are huge amounts of data; the subset of cases with complete data may be relatively small, and most of it is full of missing values that causes big problems to data mining and machine learning systems which are in general not prepared to handle them. Missing data are probably the most widespread source of deficiencies and weaknesses in learning systems, in addition to the fact that missing values degrade the quality of data. So, handling missing values is considered to be a crucial factor in overall data quality. If one tries to remove them, s/he might reduce the amount of data s/he has available dramatically — probably the worst that can happen in machine learning [1] .