input: Write a python function to create and visualize a dataset with labels, including creating an unbalanced dataset by reducing the number of 0s.
  assert visualize_dataset()[0].shape == (100,)
  assert visualize_dataset()[1].shape == (100,)
  assert visualize_dataset()[2].shape == (100,)
  assert isinstance(visualize_dataset()[0][0], np.float64)
  assert isinstance(visualize_dataset()[1][0], np.float64)
  assert isinstance(visualize_dataset()[2][0], np.float64)
output: import numpy as np
  import matplotlib.pyplot as plt
  
  def visualize_dataset():
      # Create a balanced dataset with 50 0s and 50 1s
      labels = np.array([0]*50 + [1]*50)
      
      # Shuffle the labels
      np.random.shuffle(labels)
      
      # Create data points for the dataset
      data = np.random.randn(100)
      
      # Create an unbalanced dataset by reducing the number of 0s
      unbalanced_labels = np.array([0]*10 + [1]*90)
      
      # Shuffle the unbalanced labels
      np.random.shuffle(unbalanced_labels)
      
      # Visualize the dataset
      plt.figure(figsize=(10, 6))
      plt.scatter(data, data, c=unbalanced_labels, cmap='viridis', alpha=0.6)
      plt.title("Unbalanced Dataset Visualization")
      plt.xlabel("Feature 1")
      plt.ylabel("Feature 2")
      plt.colorbar(label='Label')
      plt.show()
      
      return labels, data, unbalanced_labels