from sklearn import preprocessingsx = preprocessing.MinMaxScaler()sy = preprocessing.MinMaxScaler()scaled_X = sy.fit_transform(df['rate_squarefeet'].values.reshape(df.shape[0],1))scaled_Xscaled_y=sy.fit_transform(df['Total_room'].values.reshape(df.shape[0],1))scaled_ydef batch_gradient_descent(X, y_true, epochs, learning_rate = 0.01): number_of_features = X.shape[1] # numpy array with 1 row and columns equal to number of features. In # our case number_of_features = 2 (area, bedroom) w = np.ones(shape=(number_of_features)) b = 0 total_samples = X.shape[0] # number of rows in X squarefeet_list = [] epoch_list = [] for i in range(epochs): y_predicted = np.dot(w, X.T) + b w_grad = -(2/total_samples)*(X.T.dot(y_true-y_predicted)) b_grad = -(2/total_samples)*np.square(y_true-y_predicted) w = w - learning_rate * w_grad b = b - learning_rate * b_grad squarefeet = np.mean(np.transpose(y_true-y_predicted)) if i%10==0: squarefeet_list.append(squarefeet) epoch_list.append(i) return w, b, squarefeet, squarefeet_list, epoch_listw, b, squarefeet, squarefeet_list, epoch_list = batch_gradient_descent(scaled_X,scaled_y.reshape(scaled_y.shape[0],),500)w, b, squarefeetdef predict(squarefeet,w,b): scaled_X = sx.transform([[squarefeet]]) scaled_price = w[0] * scaled_X[0]+b return sy.inverse_transform([[scaled_price]])[0][0]predict(56.32,w,b)NotFittedError Traceback (most recent call last) in 7 return sy.inverse_transform([[scaled_price]])[0][0]8----> 9 predict(56.32,w,b)
NotFittedError: This MinMaxScaler instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.