Is it ok to remove the intercept in a linear regression model (OLS) if the results are really good? So I've gone through this SE question and all the answers where the general consensus is that you should never remove the intercept of the linear regression model. The most upvoted answer says:

The shortest answer: never, unless you are sure that your linear approximation of the data generating process (linear regression model) either by some theoretical or any other reasons is forced to go through the origin. If not the other regression parameters will be biased even if intercept is statistically insignificant 

However, I'd like to know if it's a good idea to remove the intercept if you  get better prediction results (Adjusted r-squared: 0.82) ?
I've trained the model without specifying the intercept ( extra details: used OLS regression in python statsmodels package) and then tested the results.   
I cross checked the results and saw that the predicted values and actual values was real close (+/-2 difference in average). So is it a good enough reason as to foresake the intercept?
 A: If you're only interested in predictive performance, then a proof-of-the-pudding argument perhaps can't be gainsaid. But bear in mind that there are three procedures to think about here: (1) fitting a model with intercept by ordinary least squares; (2) fitting a model without intercept by OLS; & (3) fitting both models by OLS; & selecting the one with the higher adjusted coefficient of determination ($R^2_\mathrm{adj}$).
The predictive performance, on fresh data, of models resulting from the the first two procedures can be estimated by $R^2_\mathrm{adj}$. The fewer & the noisier the data, & the closer the intercept is, in fact, to zero, the better you'd expect the predictions to be when constraining the intercept to be zero rather than estimating it from the data.
If you've got no idea how close the intercept is, in fact, to zero, then the third procedure might seem tempting. But you can't have your cake & eat it—applying a constraint only when it appears you don't need to isn't really applying a constraint. See Algorithms for automatic model selection. $R^2_\mathrm{adj}$ is a statistic, subject to sampling variation, not an infallible oracle: the higher of two will be an optimistic estimate of predictive performance— use an independent test set or resampling validation for a less biased estimate.
