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))
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))
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")
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")
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()
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)
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)
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()
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)