input: Write a function that creates a machine learning model in Python to predict customer lifetime value (LTV) based on the customer's past transactions. The function should read transaction data from a CSV file, preprocess the data, train a RandomForestRegressor model, and then allow for predictions given new customer input data. The function should return the predicted LTV.
  
  assert type(predict_ltv())==float
  assert predict_ltv( [[10,100,5]]) > 0
  assert predict_ltv( [[0,0,0]]) == 0
output: def predict_ltv(new_data=None):
      import pandas as pd
      from sklearn.ensemble import RandomForestRegressor
      from sklearn.model_selection import train_test_split
      from sklearn.preprocessing import StandardScaler
  
      # Load and preprocess data
      df = pd.read_csv('transaction_data.csv')
      X = df.drop('LTV', axis=1)
      y = df['LTV']
  
      # Train-test split
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  
      # Standardize features
      scaler = StandardScaler()
      X_train = scaler.fit_transform(X_train)
  
      # Train model
      model = RandomForestRegressor(random_state=42)
      model.fit(X_train, y_train)
  
      # Predict LTV for new data
      if new_data is not None:
          new_data = scaler.transform(new_data)
          return model.predict(new_data)[0]
      else:
          return 0.0