For statsmodels >=0.4, if I remember correctly
model.predict
doesn't know about the parameters, and requires them in the call
see http://statsmodels.sourceforge.net/stable/generated/statsmodels.regression.linear_model.OLS.predict.html
What should work in your case is to fit the model and then use the predict method of the results instance.
model = OLS(labels[:half], data[:half])
results = model.fit()
predictions = results.predict(data[half:])
or shorter
results = OLS(labels[:half], data[:half]).fit()
predictions = results.predict(data[half:])
http://statsmodels.sourceforge.net/stable/generated/statsmodels.regression.linear_model.RegressionResults.predict.html with missing docstring
Note: this has been changed in the development version (backwards compatible), that can take advantage of "formula" information in predict http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.RegressionResults.predict.html