コード例 #1
0
ファイル: main.py プロジェクト: calvinc03/cs340
        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)
コード例 #2
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