


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       (						lowerCAmelCase_       )->       Optional[int]:
				return (data["data"], data["target"])



def 	lowerCAmelCase       (						lowerCAmelCase_       ,      lowerCAmelCase_       )->       List[Any]:
				lowerCAmelCase_       :					Tuple			 = XGBClassifier()
				classifier.fit(lowerCAmelCase_       ,      lowerCAmelCase_       )
				return classifier



def 	lowerCAmelCase       (						)->       Optional[Any]:
				lowerCAmelCase_       :					Optional[Any]			 = load_iris()
				lowerCAmelCase_       :					Union[str, Any]			 = data_handling(lowerCAmelCase_       )
				lowerCAmelCase_       :					int			 = train_test_split(
				    lowerCAmelCase_       ,      lowerCAmelCase_       ,      test_size=0.25       )

				lowerCAmelCase_       :					List[str]			 = iris["target_names"]

				# Create an XGBoost Classifier from the training data
				lowerCAmelCase_       :					Union[str, Any]			 = xgboost(lowerCAmelCase_       ,      lowerCAmelCase_       )

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


if __name__ == "__main__":
						import doctest

						doctest.testmod(verbose=True)
						main()






def      _A       (		SCREAMING_SNAKE_CASE     :   int = 50						):





  """simple docstring"""



  a__	:					Any										=[1] * (length + 1)

  for row_length in range(3       ,       length + 1						):
    for block_length in range(3       ,       row_length + 1						):
      for block_start in range(row_length - block_length						):
        ways_number[row_length] += ways_number[
            row_length - block_start - block_length - 1
        ]

      ways_number[row_length] += 1

  return ways_number[length]


if __name__ == "__main__":
     print(F"""{solution() = }""")






