Getting negative r2_score with new set of dimensions I am trying to predict flight take off delay using my current dataset. At this point of time, I only have four dimensions.

scheduled_time_departure (A), flight_id, day_of_week actual_time_departure(B), take_off_delay(B-A)

when I try to predict actual_time_departure(B) using scikit linear regression model using (scheduled_time_departure (A), flight_id, day_of_week) on x-axis, I am getting good r2_score
However when I am trying to predict take_off_delay (which is actually difference between actual_time_departure and scheduled_time_departure), in that case I am getting negative r2_score.

Note: 


to convert string to integer I am using LabelEncoder.
scheduled_time_departure and actual_time_departure are in seconds not a timestamp, that is second of day, 86400 is max value it can have. 
I even tried doing normalization of scheduled_time_departure
I have ensured that take_off_delay is always positive.
For the case when I was predicting actual_time_departure, I tried using one hot encoder but that agravated r2_score


P.S: I am new to machine learning and data science, let me know if I am making dumb mistake :)
P.P.S: I understand model can be worst if r2 score is negative, however I want to understand the reason.
A negative $R^2$ on your training set typically means you didn't fit an intercept. A negative $R^2$ on your test set means the model is simply very bad. Indeed flight ID is not a meaningful scalar value and can't be in a linear regression.