import math




class        lowercase_  :



	"""simple docstring"""





	def __init__(							self		,      __SCREAMING_SNAKE_CASE		,      __SCREAMING_SNAKE_CASE		,      __SCREAMING_SNAKE_CASE    )						->Tuple:
								lowerCAmelCase     		=		x
								lowerCAmelCase     		=		y
								lowerCAmelCase     		=		z




	def __repr__(							self    )						->str:
								return F"Point({self.x}, {self.y}, {self.z})"

def        SCREAMING_SNAKE_CASE_					(						snake_case__ :    int       ,  snake_case__ :    Optional[int]							)					->     float:
							return math.sqrt(abs((b.x - a.x) ** 2 + (b.y - a.y) ** 2 + (b.z - a.z) ** 2							)							)


if __name__ == "__main__":
	import doctest

	doctest.testmod()




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

# Load iris file
lowercase__      :    int          =     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
lowercase__     ,   lowercase__     ,   lowercase__     ,   lowercase__      :    Any          =     train_test_split(
    iris['''data'''], iris['''target'''], random_state=4
)

# KNN

lowercase__      :    int          =     KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)

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

lowercase__      :    int          =     knn.predict(X_new)

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



