input: def supervised_learning_iris(X: np.ndarray, y: np.ndarray) -> np.ndarray:
      """
      Implement a supervised learning algorithm for a classification task using the iris dataset.
      The function will split the dataset into training and test sets, preprocess the data, fit a 
      KNeighborsClassifier model, and then make predictions on the test set. The function returns 
      the confusion matrix of the predicted results.
      >>> dataset = pd.read_csv('iris.csv')
      >>> X = dataset.iloc[:, :-1].values
      >>> y = dataset.iloc[:, -1].values
      >>> supervised_learning_iris(X, y)
      array([[11,  0,  0],
             [ 0, 13,  1],
             [ 0,  0,  5]])
      """
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
      scaler = StandardScaler()
      X_train = scaler.fit_transform(X_train)
      X_test = scaler.transform(X_test)
      clf = KNeighborsClassifier(n_neighbors=5)
      clf.fit(X_train, y_train)
      y_pred = clf.predict(X_test)
      cm = confusion_matrix(y_test, y_pred)
      return cm
output:     from sklearn.model_selection import train_test_split
      from sklearn.preprocessing import StandardScaler
      from sklearn.neighbors import KNeighborsClassifier
      from sklearn.metrics import confusion_matrix