input: 
  def perform_basic_regression(num_epochs: int, batch_size: int, activation_func: str, optimizer: str) -> float:
      """Constructs a neural network in Python that can perform basic regression.
      The neural network is configured with the given number of epochs, batch size,
      activation function, and optimizer. It loads data from 'data.csv', splits it
      into features and labels, and then into training and testing sets. The model
      consists of three Dense layers with the given activation function and is
      compiled with the specified optimizer and mean squared error loss. The model
      is then trained and evaluated, returning the test score.
      >>> perform_basic_regression(100, 20, 'relu', 'adam')
      Test score: 0.005
      """
      import numpy as np
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from keras.models import Sequential
      from keras.layers import Dense
      
      # Load the data
      data = pd.read_csv('data.csv')
      
      # Split the data into features and labels
      X = data.drop(['label'], axis=1).values
      y = data['label'].values
      
      # Split the data into training and testing sets
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      # Create the neural network
      model = Sequential()
      model.add(Dense(12, input_dim=X.shape[1], kernel_initializer='normal', activation=activation_func))
      model.add(Dense(12, kernel_initializer='normal', activation=activation_func))
      model.add(Dense(1, kernel_initializer='normal'))
      
      # Compile the model
      model.compile(loss='mean_squared_error', optimizer=optimizer)
      
      # Train the model
      model.fit(X_train, y_train, epochs=num_epochs, batch_size=batch_size, verbose=0)
      
      # Evaluate the model
      score = model.evaluate(X_test, y_test, verbose=0)
      print('Test score:', score)
      return score
  
output:     import numpy as np
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from keras.models import Sequential
      from keras.layers import Dense
      
      # Load the data
      data = pd.read_csv('data.csv')
      
      # Split the data into features and labels
      X = data.drop(['label'], axis=1).values
      y = data['label'].values
      
      # Split the data into training and testing sets
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      # Create the neural network
      model = Sequential()
      model.add(Dense(12, input_dim=X.shape[1], kernel_initializer='normal', activation=activation_func))
      model.add(Dense(12, kernel_initializer='normal', activation=activation_func))
      model.add(Dense(1, kernel_initializer='normal'))
      
      # Compile the model
      model.compile(loss='mean_squared_error', optimizer=optimizer)
      
      # Train the model
      model.fit(X_train, y_train, epochs=num_epochs, batch_size=batch_size, verbose=0)
      
      # Evaluate the model
      score = model.evaluate(X_test, y_test, verbose=0)
      print('Test score:', score)
      return score