from scipy import ndimage, misc import image_segment from environment import Env from agent import R_Learner import numpy as np if __name__ == "__main__": img = ndimage.imread('butterfly.jpg') img = misc.imresize(img, size=0.0625) search_env = img patch_src = img K = 50 labels = image_segment.segment(img, K) label = 15 patch_indices = np.where(labels == label) patch_pixels = img[patch_indices] indices_at_origin = (patch_indices[0] - np.min(patch_indices[0]), patch_indices[1] - np.min(patch_indices[1])) env = Env(img) agent = R_Learner(patch_pixels, indices_at_origin, env) while True: state = env.get_state() action = agent.get_action(state) reward, next_state = env.take_action(action) agent.learn(state, action, reward, next_state)
assert len(np.concatenate(reg_periods)) is len( np.unique(np.concatenate(reg_periods))) # Annualized volatility on risky asset in different regimes: for k, v in regimes.items(): ann_vol = np.squeeze(v["sigma"][1] * np.sqrt(252)) print( "Annualized volatility of log-returns on risky asset " "in regime", k, "=", "{0:.5f}".format(ann_vol)) # terminal wealth statistics for all risky allocation: lw = [] for i in range(train_episodes + round(init_d_size / horizon)): env.reset() while not env.done: _, _, _, _ = env.take_action(action=1.0) lw.append(np.sum(env.p)) print("\nIf fully invested into the risky asset (over ", train_episodes + round(init_d_size / horizon), "runs):") print("-- Mean terminal wealth =", "{0:.2f}".format(np.mean(lw))) print("-- Maximum terminal wealth =", "{0:.2f}".format(np.max(lw))) print("-- Minimum terminal wealth =", "{0:.2f}".format(np.min(lw))) print("-- Utility of mean terminal wealth =", "{0:.5f}".format(crra_utility(np.mean(lw), env.theta))) print("-- Mean utility of terminal wealth =", "{0:.5f}".format(np.mean(crra_utility(lw, env.theta)))) print("-- For comparison: initial utility =", "{0:.5f}".format(crra_utility(env.w, env.theta))) del lw