input: Write a python function to perform k-means clustering and plot the data points along with their cluster centers.
  assert k_means_clustering(np.array([[1, 2], [2, 3], [2, 1], [3, 3], [4, 5], [5, 6], [5, 4]]), 2) is not None
  assert k_means_clustering(np.array([[1, 1], [2, 2], [3, 3], [6, 6], [7, 7]]), 2) is not None
output: import numpy as np
  import matplotlib.pyplot as plt
  from sklearn.cluster import KMeans
  
  def k_means_clustering(data, k):
      # Perform k-means clustering
      kmeans = KMeans(n_clusters=k, random_state=0).fit(data)
      
      # Get the cluster centers
      centers = kmeans.cluster_centers_
      
      # Get the labels
      labels = kmeans.labels_
      
      # Plot the data points with different colors for each cluster
      plt.scatter(data[:, 0], data[:, 1], c=labels, cmap='viridis')
      
      # Plot the cluster centers
      plt.scatter(centers[:, 0], centers[:, 1], s=300, c='red', marker='X')
      
      plt.xlabel('Feature 1')
      plt.ylabel('Feature 2')
      plt.title('K-Means Clustering')
      plt.show()
      
      return kmeans