<p>Predicting missing values is generally considered to be part of data cleansing phase which needs to be done before the data is mined or analyzed further. This is quite prominent in real world data.</p>

<p>Please have a look at this algorithm <a href="http://arxiv.org/abs/math/0701152" rel="nofollow noreferrer">http://arxiv.org/abs/math/0701152</a></p>

<p>Currently Microsoft SQL Server Analysis Services 2008 also comes with algorithms like these <a href="http://technet.microsoft.com/en-us/library/ms175312.aspx" rel="nofollow noreferrer">http://technet.microsoft.com/en-us/library/ms175312.aspx</a> which help in predictive modelling of attributes.</p>

<p>cheers</p>
Predicting missing data values in a database
<p>I have a database, consisting of a whole bunch of records (around 600,000) where some of the records have certain fields missing. My goal is to find a way to predict what the missing data values should be (so I can fill them in) based on the existing data. </p>

<p>One option I am looking at is clustering - i.e. representing the records that are all complete as points in some space, looking for clusters of points, and then when given a record with missing data values try to find out if there are any clusters that could belong in that are consistent with the existing data values. However this may not be possible because some of the data fields are on a nominal scale (e.g. color) and thus can't be put in order.</p>

<p>Another idea I had is to create some sort of probabilistic model that would predict the data, train it on the existing data, and then use it to extrapolate.</p>

<p>What algorithms are available for doing the above, and is there any freely available software that implements those algorithms (This software is going to be in c# by the way).</p>