def predictions(dF):
  """
  features = dF[['rain']]
  dummy_units = pd.get_dummies(dF['UNIT'], prefix='unit')
  dummy_hour = pd.get_dummies(dF['hour'], prefix='hour')
  dummy_daywk = pd.get_dummies(dF['day_week'], prefix='day_week')
  features = features.join(dummy_units).join(dummy_hour).join(dummy_daywk)

  #Values
  values = dF['ENTRIESn_hourly']
  """
  features, values = gad(dF)
  #Get arrays
  features_arr = features.values
  values_arr = values.values
  means, std_devs, normalized_features_arr = normalize_feature(features_arr)

  #Perform linear regression withgradient descent
  norm_intercept, norm_params = linear_regression(normalized_features_arr, values_arr)
  intercept , params = recover_params(means, std_devs, norm_intercept, norm_params)
  print len(params)
  print 'Coefficient of non dummy variable by Gradient Descent is ', params[0] 
  predictions = intercept + np.dot(features_arr, params)

  return predictions
def predictions(dF):
  """
  #Features
  features = dF[['rain']]
  dummy_units = pd.get_dummies(dF['UNIT'], prefix='unit')
  dummy_hour = pd.get_dummies(dF['hour'], prefix='hour')
  dummy_daywk = pd.get_dummies(dF['day_week'], prefix='day_week')
  features = features.join(dummy_units).join(dummy_hour).join(dummy_daywk)

  #Values
  values = dF['ENTRIESn_hourly']
  """
  features, values = gad(dF)
  #Perform linear regression
  intercept, params = linear_regression(features, values)
  print len(params)
  predictions = intercept + np.dot(features, params)
  return predictions