Exemplo n.º 1
0
def main():
    location = "/home/joe/drivers/"
    z = sys.argv[1]
    k = int(sys.argv[2])
    trips = read_trips(location + z)
    fmatrix = feature_matrix(trips)
    n_rows, n_comps = fmatrix.shape
    train_fmatrix = fmatrix[: int(len(fmatrix) * 0.9)]
    train_targets = np.ones(len(train_fmatrix))
    test_fmatrix = fmatrix[int(len(fmatrix) * 0.9) :]
    test_targets = np.ones(len(test_fmatrix))
    targets = np.ones(len(fmatrix))
    i = k
    j = 0
    while i < (k + 20) and j < 10000:
        j += 1
        try:
            trips = read_trips(location + str(i))
            fm = feature_matrix(trips)
            train_fm = fm[:9]
            test_fm = fm[9:10]
            train_fmatrix = np.vstack((train_fmatrix, train_fm))
            test_fmatrix = np.vstack((test_fmatrix, test_fm))
            fmatrix = np.vstack((fmatrix, fm))

            targets = np.hstack((targets, np.zeros(len(fm)) * i))
            train_targets = np.hstack((train_targets, np.zeros(len(train_fm)) * i))
            test_targets = np.hstack((test_targets, np.zeros(len(test_fm)) * i))
            print(i)
            i += 1
        except IOError:
            pass

    pipeline = Pipeline([("scale", StandardScaler()), ("ICA", PCA(n_components=50))])
    pipeline.fit(fmatrix)
    train_trans = pipeline.transform(train_fmatrix)
    test_trans = pipeline.transform(test_fmatrix)

    print("point teng", num_t_targets / len(test_targets))
    gb = RandomForestClassifier(n_estimators=50)
    gb.fit(train_fmatrix, train_targets)
    gb_score = gb.score(test_fmatrix, test_targets)
    print("gb", gb_score)
    dt = DecisionTreeClassifier()
    dt.fit(train_fmatrix, train_targets)
    dt_score = dt.score(test_fmatrix, test_targets)
    print("dt", dt_score)
    svc = SVC()
    svc.fit(train_fmatrix, train_targets)
    svc_score = svc.score(test_fmatrix, test_targets)
    print("svc", svc_score)
    # rfs = [RandomForestClassifier(n_estimators=40) for i in range(20)]
    rfs = [GradientBoostingClassifier(n_estimators=100) for i in range(20)]
    scores = []
    for i, rf in enumerate(rfs):
        rf.fit(train_fmatrix, train_targets)
        scores.append(rf.score(test_fmatrix, test_targets))
        print(i, scores[i])
    print("average", np.mean(scores))
Exemplo n.º 2
0
def main():
    location = "/home/joe/drivers/"
    z = sys.argv[1]
    k = int(sys.argv[2])
    trips = read_trips(location+z)
    fmatrix = feature_matrix(trips)
    n_rows, n_comps = fmatrix.shape
    train_fmatrix = fmatrix[:int(len(fmatrix)*0.9)]
    train_targets = np.ones(len(train_fmatrix))
    test_fmatrix = fmatrix[int(len(fmatrix)*0.9):]
    test_targets = np.ones(len(test_fmatrix))
    targets = np.ones(len(fmatrix))
    i = k
    j = 0
    while i < (k+20) and j < 10000:
        j +=1
        try:
            trips = read_trips(location + str(i))
            fm = feature_matrix(trips)
            train_fm = fm[:9]
            test_fm = fm[9:10]
            train_fmatrix = np.vstack((train_fmatrix, train_fm))
            test_fmatrix = np.vstack((test_fmatrix, test_fm))
            fmatrix = np.vstack((fmatrix, fm))

            targets = np.hstack((targets, np.zeros(len(fm)) * i))
            train_targets = np.hstack((train_targets, np.zeros(len(train_fm)) * i))
            test_targets = np.hstack((test_targets, np.zeros(len(test_fm)) * i))
            print(i)
            i += 1
        except IOError:
            pass

    pipeline = Pipeline([('scale', StandardScaler()), ('ICA', PCA(n_components=50))])
    pipeline.fit(fmatrix)
    train_trans = pipeline.transform(train_fmatrix)
    test_trans = pipeline.transform(test_fmatrix)

    print("point teng", num_t_targets/len(test_targets))
    gb = RandomForestClassifier(n_estimators=50)
    gb.fit(train_fmatrix, train_targets)
    gb_score = gb.score(test_fmatrix, test_targets)
    print("gb", gb_score)
    dt = DecisionTreeClassifier()
    dt.fit(train_fmatrix, train_targets)
    dt_score = dt.score(test_fmatrix, test_targets)
    print("dt", dt_score)
    svc = SVC()
    svc.fit(train_fmatrix, train_targets)
    svc_score = svc.score(test_fmatrix, test_targets)
    print("svc", svc_score)
    #rfs = [RandomForestClassifier(n_estimators=40) for i in range(20)]
    rfs = [GradientBoostingClassifier(n_estimators=100) for i in range(20)]
    scores = []
    for i, rf in enumerate(rfs):
        rf.fit(train_fmatrix, train_targets)
        scores.append(rf.score(test_fmatrix, test_targets))
        print(i, scores[i])
    print("average", np.mean(scores))
Exemplo n.º 3
0
def main():
    location = sys.argv[1]
    write_location = sys.argv[2]
    until_driver = sys.argv[3]
    trips = read_trips(location+"1")
    fmatrix = feature_matrix(trips)
    targets = np.ones(len(fmatrix))
    for i in range(1, until_driver + 1):
        try:
            trips = read_trips(location + str(i))
            fm = feature_matrix(trips)
            fmatrix = np.vstack((fmatrix, fm))
            np.savetxt(write_location + str(i)+'.csv', fmatrix,  header='', delimiter=',', fmt="%10.5f")
        except IOError:
            print("error tengaleng")
Exemplo n.º 4
0
def main():
    location = sys.argv[1]
    write_location = sys.argv[2]
    until_driver = sys.argv[3]
    trips = read_trips(location + "1")
    fmatrix = feature_matrix(trips)
    targets = np.ones(len(fmatrix))
    for i in range(1, until_driver + 1):
        try:
            trips = read_trips(location + str(i))
            fm = feature_matrix(trips)
            fmatrix = np.vstack((fmatrix, fm))
            np.savetxt(write_location + str(i) + '.csv',
                       fmatrix,
                       header='',
                       delimiter=',',
                       fmt="%10.5f")
        except IOError:
            print("error tengaleng")
Exemplo n.º 5
0
def main():
    trips = read_trips(sys.argv[1])
    velocities = [compute_velocity(trip) for trip in trips]
    speeds = [compute_scalar(v) for v in velocities]
    features = np.array([corners_features(v, s) for v, s in zip(velocities, speeds)])
    #print(features)
    n = random.randint(0, 199)
    n = 29
    print("Trip number is:", n)
    (corners, angles) = identify_corners(velocities[n])
    trip = trips[n]
    import matplotlib.pyplot as plt
    plt.scatter(trips[n][:,0], trips[n][:,1])#, c=speeds[n])
    for start, end in corners:
        t = trip[list(range(start, end+1))]
        plt.plot(t[:,0], t[:,1], 'r', linewidth=4.0)
    plt.axis('equal')
    plt.show()
Exemplo n.º 6
0
def write_files():
    pathread = sys.argv[1]
    pathwrite = sys.argv[2]
    dirs = os.listdir(pathread)
    corners_headers = ["num_corners", "avg_corner_angle", "max_corner_speed", "min_corner_speed", "avg_corner_speed"]
    accn_headers1 = ["time_fast", "time_slow", "fraction_fast", "fraction_slow", "stops", "fraction_stationary"]
    accn_headers2 = ["speed" + str(i) for i in range(1, 51)]
    accn_headers3 = ["speedxangle" + str(i) for i in range(1, 51)]
    accn_headers4 = ["acc" + str(i) for i in range(1, 51)]
    accn_headers5 = ["acc2" + str(i) for i in range(1, 51)]
    accn_headers5 = ["speedxcos(angle)" + str(i) for i in range(1, 51)]
    accn_headers5 = ["accxangle" + str(i) for i in range(1, 51)]
    headers = corners_headers + accn_headers1 + accn_headers2 + accn_headers3 + accn_headers4 + accn_headers5
    header_str = ",".join(headers)
    for d in dirs:
        print("processing driver", d)
        trips = read_trips(os.path.join(pathread, d))
        fmatrix = feature_matrix(trips)
        np.save(os.path.join(pathwrite, d + ".npy"), fmatrix)
Exemplo n.º 7
0
def write_files():
    pathread = sys.argv[1]
    pathwrite = sys.argv[2]
    dirs = os.listdir(pathread)
    corners_headers = ['num_corners', 'avg_corner_angle', 'max_corner_speed', 'min_corner_speed', 'avg_corner_speed']
    accn_headers1 = ['time_fast', 'time_slow', 'fraction_fast', 'fraction_slow', 'stops', 'fraction_stationary']
    accn_headers2 = ['speed'+str(i) for i in range(1, 51)]
    accn_headers3 = ['speedxangle'+str(i) for i in range(1, 51)]
    accn_headers4 = ['acc'+str(i) for i in range(1, 51)]
    accn_headers5 = ['acc2'+str(i) for i in range(1, 51)]
    accn_headers5 = ['speedxcos(angle)'+str(i) for i in range(1, 51)]
    accn_headers5 = ['accxangle'+str(i) for i in range(1, 51)]
    headers = corners_headers + accn_headers1 + accn_headers2 + accn_headers3 + accn_headers4 + accn_headers5
    header_str = ','.join(headers)
    for d in dirs:
        print("processing driver", d)
        trips = read_trips(os.path.join(pathread, d))
        fmatrix = feature_matrix(trips)
        np.save(os.path.join(pathwrite, d + '.npy'), fmatrix) 
Exemplo n.º 8
0
def main():
    trips = read_trips(sys.argv[1])
    velocities = [compute_velocity(trip) for trip in trips]
    speeds = [compute_scalar(v) for v in velocities]
    features = np.array(
        [corners_features(v, s) for v, s in zip(velocities, speeds)])
    #print(features)
    n = random.randint(0, 199)
    n = 29
    print("Trip number is:", n)
    (corners, angles) = identify_corners(velocities[n])
    trip = trips[n]
    import matplotlib.pyplot as plt
    plt.scatter(trips[n][:, 0], trips[n][:, 1])  #, c=speeds[n])
    for start, end in corners:
        t = trip[list(range(start, end + 1))]
        plt.plot(t[:, 0], t[:, 1], 'r', linewidth=4.0)
    plt.axis('equal')
    plt.show()
Exemplo n.º 9
0
def main():
    trips = read_trips(sys.argv[1])
    velocities = [compute_velocity(trip) for trip in trips]
    speeds = [compute_scalar(v) for v in velocities]
    features = np.array([acceleration_features(speed) for speed in speeds])
    print(features)