Question: PLEASE COMPLETE THE IMPLEMENTATION OF KMEANS IN PYTHON BELOW. REPLACE TODO:IMPLEMENT ME WITH THE CORRECT CODE TO MAKE THE PROGRAM WORK! THANK YOU ANSWER ONLY
PLEASE COMPLETE THE IMPLEMENTATION OF KMEANS IN PYTHON BELOW. REPLACE "TODO:IMPLEMENT ME" WITH THE CORRECT CODE TO MAKE THE PROGRAM WORK! THANK YOU
ANSWER ONLY IF YOU ARE AN EXPERT AND DON'T COPY PASTE FROM GOOGLE OR COPY FROM OTHER CHEGG ANSWERS AS THEY ARE WRONG. IF YOU DO, I WILL DISLIKE AND REPORT YOU!
class KMeans: # K: the number of clusters def __init__(self, K): self.K = K
# The features of centroids; set when `fit` is called self.cluster_centers_ = None
# fit: make clusters # X: data points to cluster -- np.ndarray # (shape: [# of data points, # of features]) def fit(self, X): # TODO: IMPLEMENT ME # Store the feature ndarray of centroids in `self.cluster_centers_` # The shape of `self.cluster_centers_` has to be # [self.K, # of features] pass
# predict: Predict the cluster indices of input data points # X: data points predicted -- np.ndarray # (shape: [# of data points, # of features]) # Return an ndarray with shape [# of data points] where # each element is an integer from 0 to self.K-1 def predict(self, X): # TODO: IMPLEMENT ME pass
# check this is a main file if __name__ == '__main__': import numpy as np from sklearn.datasets import load_iris from sklearn.metrics import mean_squared_error
K = 3 iris_dataset = load_iris() kmeans = KMeans(K) kmeans.fit(iris_dataset.data) predict = kmeans.predict(iris_dataset.data) for k in range(K): indices = np.where(predict == k) features = iris_dataset.data[indices] MSE = mean_squared_error( np.tile(kmeans.cluster_centers_[k], (features.shape[0], 1)), features) print('Cluster', k, 'MSE', MSE) assert(MSE < 0.2)
REPLACE TODO:IMPLEMENT ME WITH THE CORRECT CODE! THANK YOU
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
