
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# Load iris file
snake_case				:	Tuple							   =						load_iris()
iris.keys()


print(F"Target names: \n {iris.target_names} ")
print(F"\n Features: \n {iris.feature_names}")

# Train set e Test set
snake_case   ,snake_case   ,snake_case   ,snake_case				:	Optional[Any]							   =						train_test_split(
    iris["data"], iris["target"], random_state=4
)

# KNN

snake_case				:	List[Any]							   =						KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)

# new array to test
snake_case				:	str							   =						[[1, 2, 1, 4], [2, 3, 4, 5]]

snake_case				:	List[str]							   =						knn.predict(X_new)

print(
    F"\nNew array: \n {X_new}\n\nTarget Names Prediction: \n"
    F" {iris['target_names'][prediction]}"
)







from __future__ import annotations

snake_case				:	List[str]							   =						"Alexander Joslin"






def 						lowerCAmelCase_		(      _snake_case   :						int     )       ->	int:







	'''simple docstring'''


	if number <= 0:
		__magic_name__	:	int			     =  F'''n must be greater than 0. Got n = {number}'''
		raise ValueError(_snake_case     )

	__magic_name__	:	List[str]			     =  [number + 1] * (number + 1)

	# starting position
	__magic_name__	:	Any			     =  0
	for i in range(1   ,     _snake_case     ):
		__magic_name__	:	Optional[int]			     =  min(table[i + 1]   ,     table[i] + 1     )
		# check if out of bounds
		if i * 2 <= number:
			__magic_name__	:	str			     =  min(table[i * 2]   ,     table[i] + 1     )
		# check if out of bounds
		if i * 3 <= number:
			__magic_name__	:	Any			     =  min(table[i * 3]   ,     table[i] + 1     )
	return table[number]


if __name__ == "__main__":
				import doctest

				doctest.testmod()
