input: Write a function to implement a supervised learning algorithm for a classification task using the iris dataset. The function should load the dataset, preprocess it, define a KNeighborsClassifier with 5 neighbors, fit the model, make predictions, and finally evaluate the model's performance by printing the confusion matrix.
  assert iris_classification()
  # The function should print a confusion matrix as follows:
  # [[11  0  0]
  #  [ 0 13  0]
  #  [ 0  0  6]]
  # Given the random state in train_test_split, the output might be different but should be in the same format.
output: def iris_classification():
      from sklearn.datasets import load_iris
      from sklearn.model_selection import train_test_split
      from sklearn.preprocessing import StandardScaler
      from sklearn.neighbors import KNeighborsClassifier
      from sklearn.metrics import confusion_matrix
  
      iris = load_iris()
      X = iris.data
      y = iris.target
  
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  
      scaler = StandardScaler()
      X_train = scaler.fit_transform(X_train)
      X_test = scaler.transform(X_test)
  
      knn = KNeighborsClassifier(n_neighbors=5)
      knn.fit(X_train, y_train)
  
      y_pred = knn.predict(X_test)
  
      print(confusion_matrix(y_test, y_pred))