



from __future__ import annotations



def 		lowerCAmelCase__    (					UpperCamelCase_				:       list ,       UpperCamelCase_				:       int | None = None ,       UpperCamelCase_				:       int | None = None	)->  None:
    if start is None:
        A__		 =					0

    if end is None:
        A__		 =					len(a_	) - 1

    if start >= end:
        return

    A__		 =					(start + end) // 2

    slowsort(a_ ,       a_ ,       a_	)
    slowsort(a_ ,       mid + 1 ,       a_	)

    if sequence[end] < sequence[mid]:
        A__		 =					sequence[mid], sequence[end]

    slowsort(a_ ,       a_ ,       end - 1	)


if __name__ == "__main__":
   from doctest import testmod

   testmod()





import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
from sklearn.metrics import ConfusionMatrixDisplay
from sklearn.model_selection import train_test_split
from xgboost import XGBClassifier



def 		lowerCAmelCase__    (					UpperCamelCase_				:       dict	)->  tuple:
    return (data["data"], data["target"])



def 		lowerCAmelCase__    (					UpperCamelCase_				:       np.ndarray ,       UpperCamelCase_				:       np.ndarray	)->  XGBClassifier:
    A__		 =					XGBClassifier()
    classifier.fit(UpperCamelCase_ ,       UpperCamelCase_	)
    return classifier



def 		lowerCAmelCase__    (					)->  None:
    A__		 =					load_iris()
    A__ ,	A__		 =					data_handling(UpperCamelCase_	)
    A__ ,	A__ ,	A__ ,	A__		 =					train_test_split(
        UpperCamelCase_ ,       UpperCamelCase_ ,       test_size=0.25	)

    A__		 =					iris['''target_names''']

    # Create an XGBoost Classifier from the training data
    A__		 =					xgboost(UpperCamelCase_ ,       UpperCamelCase_	)

    # Display the confusion matrix of the classifier with both training and test sets
    ConfusionMatrixDisplay.from_estimator(
        UpperCamelCase_ ,       UpperCamelCase_ ,       UpperCamelCase_ ,       display_labels=UpperCamelCase_ ,       cmap='''Blues''' ,       normalize='''true''' ,       )
    plt.title('''Normalized Confusion Matrix - IRIS Dataset'''	)
    plt.show()


if __name__ == "__main__":
   import doctest

   doctest.testmod(verbose=True)
   main()
