Exemplo n.º 1
0
        y = model.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")

        fname = os.path.join("..", "figs", "kmeans_basic.png")
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % fname)

    elif question == '5.1':
        X = load_dataset('clusterData.pkl')['X']
        model = Kmeans(k=4)
        min_error = -1
        y = []
        # size = X.shape[0]
        for i in range(50):
            model.fit(X)
            cur_error = model.error(X)
            y.append(cur_error)
            if min_error == -1:
                min_error = cur_error
                pred = model.predict(X)
            elif cur_error < min_error:
                min_error = cur_error
                pred = model.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=pred, cmap="jet")
        plt.show()
        plt.plot(np.arange(1, 51), y)
        plt.xlabel(r'iterations')
        plt.ylabel(r'error')
        plt.show()

    elif question == '5.2':
Exemplo n.º 2
0
    elif question == '5':
        X = load_dataset('clusterData.pkl')['X']

        model = Kmeans(k=4)
        model.fit(X)
        y = model.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")

        fname = os.path.join("..", "figs", "kmeans_basic.png")
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % fname)

    elif question == '5.1':
        X = load_dataset('clusterData.pkl')['X']
        model = Kmeans(k=4)
        low = model.error(X)

        for i in range(49):
            new_model = Kmeans(k=4)
            err = new_model.error(X)
            if err < low:
                model = new_model
                low = err

        utils.plot_2dclustering(X, model['predict'](model, X))
        print("Displaying figure...")
        plt.title("K-Means on clusterData")
        plt.show()

    elif question == '5.2':
        X = load_dataset('clusterData.pkl')['X']
Exemplo n.º 3
0
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")
        fname = os.path.join("..", "figs", "q5_1_best_model.png")
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % fname)

    elif question == '5.2':
        X = load_dataset('clusterData.pkl')['X']

        errors = np.zeros(10)
        k_s = np.array(range(1, 11))
        for k in k_s:
            errors_k = np.zeros(50)
            for z in range(50):
                model = Kmeans(k=k)
                model.fit(X)
                errors_k[z] = model.error(X)

            errors[k - 1] = np.min(errors_k)

        # save figure
        plt.plot(k_s, errors)
        filename = "q5_2_min_errors.pdf"
        plt.xlabel("k")
        plt.ylabel("Minimum error")
        fname = os.path.join("..", "figs", filename)
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % filename)

    elif question == '5.3':
        X = load_dataset('clusterData2.pkl')['X']
Exemplo n.º 4
0
        model = Kmeans(k=4)
        model.fit(X)
        y = model.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")

        fname = os.path.join("..", "figs", "kmeans_basic.png")
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % fname)

        min_error = 9999999
        min_model = None
        for i in range(0, 50):
            model = Kmeans(4)
            model.fit(X)
            error = model.error(X)
            if error < min_error:
                min_model = model
                min_error = error
        print("Minimum error: " + str(min_error))
        plt.scatter(X[:, 0], X[:, 1], c=min_model.predict(X))

        fname = os.path.join("..", "figs", "kmeans_good.png")
        plt.savefig(fname)
        print("Figure saved as ", fname)

    elif question == '5.1':
        X = load_dataset('clusterData.pkl')['X']

    elif question == '5.2':
        X = load_dataset('clusterData.pkl')['X']
        model = Kmeans(k=4)
        model.fit(X)
        y = model.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")

        fname = os.path.join("..", "figs", "kmeans_basic.png")
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % fname)

    elif question == '5.1':
        X = load_dataset('clusterData.pkl')['X']

        # for the first question: print the error of the final clustering model
        model = Kmeans(k=4)
        model.fit(X)
        dist_error_final = model.error(X)
        print(dist_error_final)

        # for the third question: print the figure with the lowest error
        model_best = None
        error_minimum = np.inf
        for i in range(50):
            model = Kmeans(4)
            model.fit(X)
            error_minimum = np.inf
            error = model.error(X)
            if error <= error_minimum:
                error_minimum = error
                model_best = model
        y = model_best.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")
Exemplo n.º 6
0
        y = model.predict(X)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")

        fname = os.path.join("..", "figs", "kmeans_basic.png")
        plt.savefig(fname)
        print("\nFigure saved as '%s'" % fname)

    elif question == '5.1':
        X = load_dataset('clusterData.pkl')['X']

        min_err = np.inf
        for i in range(50):
            model = Kmeans(k=4)
            model.fit(X)
            y = model.predict(X)
            err = model.error(X)
            if (err < min_err):
                min_err = err
                plt.scatter(X[:, 0], X[:, 1], c=y, cmap="jet")
                fname = os.path.join("..", "figs", "kmeans_basic.png")
                plt.savefig(fname)

        print("K-means minimum error: %.3f" % min_err)

        # used to output error during fitting
        # model = Kmeans(k=4)
        # model.fit(X)
        # y = model.predict(X)
        # err = model.error(X)
        # print("K-means error: %.3f" % err)