import pickle import numpy as np from sklearn import datasets import pandas as pd iris_k_mean_model=pickle.load(open('model.sav', 'rb')) classes=['versicolor', 'setosa' , 'virginica'] iris = datasets.load_iris() x = pd.DataFrame(iris.data, columns=['Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width']) def predict_class_way1(new_data_point): # Calculate the Euclidean distances between the new data point and each of the training data points. distances = np.linalg.norm(x - new_data_point, axis=1) # print(distances,len(distances),np.argmin(distances)) # The data point with the minimum Euclidean distance is the class of the new data point. class_label = classes[iris_k_mean_model.labels_[np.argmin(distances)]] return class_label def predict_class_way2(new_data_point): # Calculate the distances between the new data point and each of the cluster centers. distances = np.linalg.norm(iris_k_mean_model.cluster_centers_ - new_data_point, axis=1) # print(distances,len(distances),np.argmin(distances)) # The data point with the minimum Euclidean distance is the class of the new data point. class_label = classes[np.argmin(distances)] return class_label