print("# nonZeros: %d" % (lrl2.coef_ != 0).sum()) lrl1 = LogisticRegression(penalty='l1', fit_intercept=False) lrl1.fit(XBin,yBin) print("\nTraining error %.3f" % utils.classification_error(lrl1.predict(XBin),yBin)) print("Validation error %.3f" % utils.classification_error(lrl1.predict(XBinValid), yBinValid)) print("# nonZeros: %d" % (lrl1.coef_ != 0).sum()) elif question == "3": data = utils.load_dataset("multiData") XMulti, yMulti = data['X'], data['y'] XMultiValid, yMultiValid = data['Xvalid'], data['yvalid'] # Run Q3 given example - Fit One-vs-all Least Squares model = linear_model.leastSquaresClassifier() model.fit(XMulti, yMulti) print("leastSquaresClassifier Training error %.3f" % utils.classification_error(model.predict(XMulti), yMulti)) print("leastSquaresClassifier Validation error %.3f" % utils.classification_error(model.predict(XMultiValid), yMultiValid)) print(np.unique(model.predict(XMulti))) elif question == "3.2": # Load Binary and Multi -class data data = utils.load_dataset("multiData") XMulti, yMulti = data['X'], data['y'] XMultiValid, yMultiValid = data['Xvalid'], data['yvalid'] # Fit One-vs-all Logistic Regression model = linear_model.logLinearClassifier(maxEvals=500, verbose=0)
# -------------------------------- 1.2.3 LEAST SQUARES CLASSIFIER --------------------------------------- # lammy_m = np.arange(-4, 1, dtype=float) best_lammy_mm = 0 min_validation_err = 1 if best_lammy_mm is None: for lammy_mm in lammy_m: val_errors_per_fold = [] for train, validate in kf.split(X, y): X_train = X[train] y_train = y[train] X_validate = X[validate] y_validate = y[validate] least_squares_classifier_model = leastSquaresClassifier( lammy=10**lammy_mm) least_squares_classifier_model.fit(X_train, y_train) y_pred = least_squares_classifier_model.predict( X_validate) val_errors_per_fold.append( np.mean(y_pred != y_validate)) avg_validation_error = np.average( np.asarray(val_errors_per_fold)) print( f"Least Squares Classifier Validation Error: {avg_validation_error} with lammy: {10**lammy_mm}" ) if avg_validation_error < min_validation_err: min_validation_err = avg_validation_error best_lammy_mm = lammy_mm