コード例 #1
0
def output(part_id):
    # Random Test Cases
    X = np.column_stack(
        (np.ones(20), (np.exp(1) * np.sin(np.linspace(1, 20, 20))),
         (np.exp(0.5) * np.cos(np.linspace(1, 20, 20)))))
    y = np.sin(X[:, 0] + X[:, 1]) > 0

    Xm = np.array([[-1, -1], [-1, -2], [-2, -1], [-2, -2], [1, 1], [1, 2],
                   [2, 1], [2, 2], [-1, 1], [-1, 2], [-2, 1], [-2, 2], [1, -1],
                   [1, -2], [-2, -1], [-2, -2]]).reshape((16, 2))
    ym = np.array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4,
                   4]).reshape(16, 1)
    t1 = np.sin(np.array(range(1, 24, 2)).reshape(3, 4).T)
    t2 = np.cos(np.array(range(1, 40, 2)).reshape(5, 4).T)

    fname = srcs[part_id - 1].rsplit('.', 1)[0]
    mod = __import__(fname, fromlist=[fname], level=1)
    func = getattr(mod, fname)

    if part_id == 1:
        J = lrCostFunction(np.array([0.25, 0.5, -0.5]), X, y, 0.1)
        grad = gradientFunctionReg(np.array([0.25, 0.5, -0.5]), X, y, 0.1)
        return sprintf('%0.5f ', np.hstack((J, grad)).tolist())
    elif part_id == 2:
        return sprintf('%0.5f ', oneVsAll(Xm, ym, 4, 0.1))
    elif part_id == 3:
        return sprintf('%0.5f ', predictOneVsAll(t1, Xm))
    elif part_id == 4:
        return sprintf('%0.5f ', predict(t1, t2, Xm))
コード例 #2
0
def output(part_id):
    # Random Test Cases
    X = np.column_stack((np.ones(20),
                          (np.exp(1) * np.sin(np.linspace(1, 20, 20))),
                          (np.exp(0.5) * np.cos(np.linspace(1, 20, 20)))))
    y = np.sin(X[:,0] + X[:,1]) > 0

    Xm = np.array([[-1,-1],[-1,-2],[-2,-1],[-2,-2],[1,1],[1,2],[2,1],[2,2],[-1,1],
          [-1,2],[-2,1],[-2,2],[1,-1],[1,-2],[-2,-1],[-2,-2]]).reshape((16,2))
    ym = np.array([1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]).reshape(16,1)
    t1 = np.sin(np.array(range(1,24,2)).reshape(3,4).T)
    t2 = np.cos(np.array(range(1,40,2)).reshape(5,4).T)

    fname = srcs[part_id-1].rsplit('.',1)[0]
    mod = __import__(fname, fromlist=[fname], level=1)
    func = getattr(mod, fname)

    if part_id == 1:
        J = lrCostFunction(np.array([0.25, 0.5, -0.5]), X, y, 0.1)
        grad = gradientFunctionReg(np.array([0.25, 0.5, -0.5]), X, y, 0.1)
        return sprintf('%0.5f ', np.hstack((J, grad)).tolist())
    elif part_id == 2:
        return sprintf('%0.5f ', oneVsAll(Xm, ym, 4, 0.1))
    elif part_id == 3:
        return sprintf('%0.5f ', predictOneVsAll(t1, Xm))
    elif part_id == 4:
        return sprintf('%0.5f ', predict(t1, t2, Xm))
コード例 #3
0
#one-vs-all
import numpy as np
from ex2.gradientFunctionReg import gradientFunctionReg
from ex3.lrCostFunction import lrCostFunction

theta_t = np.array([[-2.], [-1.], [1.], [2.]])
X_tem = (np.arange(1, 16).reshape(5, 3, order='F')) / 10.
X_t = np.column_stack((np.ones((5, 1)), X_tem))
y_t = np.array([[1.], [0.], [1.], [0.], [1.]])
lambda_t = 3
cost_t = lrCostFunction(theta_t, X_t, y_t, lambda_t)
grad_t = gradientFunctionReg(theta_t, X_t, y_t, lambda_t)
print 'Test Case 1, cost: %4f' % cost_t
print 'Test Case 1, grad: ', ["%0.4f" % i for i in grad_t]