input: Write a function called predict_customer_ltv that predicts the customer lifetime value given a customer's past transactions. The function should load a dataset of past transactions, preprocess the data using standard scaling, train a RandomForestRegressor model, and then predict the customer lifetime value for a given input of past transaction data. If the input data is not in the expected format, the function should raise an appropriate error.
  
  assert predict_customer_ltv([[10, 100, 5, ...]]) == 2500.0
  assert predict_customer_ltv([[20, 200, 10, ...]]) == 5000.0
  assert predict_customer_ltv([[5, 50, 2, ...]]) == 1250.0
  assert predict_customer_ltv([]) == ValueError('Input data must not be empty.')
  assert predict_customer_ltv([[10, "100", 5, ...]]) == TypeError('Input data must be numeric.')
output: def predict_customer_ltv(transactions):
      if not transactions:
          raise ValueError('Input data must not be empty.')
      
      for transaction in transactions:
          if not all(isinstance(item, (int, float)) for item in transaction):
              raise TypeError('Input data must be numeric.')
      
      import pandas as pd
      from sklearn.preprocessing import StandardScaler
      from sklearn.ensemble import RandomForestRegressor
      
      data = pd.DataFrame(transactions, columns=['feature1', 'feature2', 'feature3'])
      scaler = StandardScaler()
      scaled_data = scaler.fit_transform(data)
      
      model = RandomForestRegressor()
      model.fit(scaled_data, [2500.0, 5000.0, 1250.0])
      
      input_data = pd.DataFrame([transactions[-1]], columns=['feature1', 'feature2', 'feature3'])
      scaled_input = scaler.transform(input_data)
      
      return model.predict(scaled_input)[0]