Data-driven Optimal Filtering for Linear Systems with Unknown Noise Covariances