MCPcopy Create free account
hub / github.com/lazyprogrammer/machine_learning_examples / FeatureTransformer

Class FeatureTransformer

rl2/cartpole/q_learning.py:41–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39
40
41class FeatureTransformer:
42 def __init__(self, env):
43 # observation_examples = np.array([env.observation_space.sample() for x in range(10000)])
44 # NOTE!! state samples are poor, b/c you get velocities --> infinity
45 observation_examples = np.random.random((20000, 4))*2 - 1
46 scaler = StandardScaler()
47 scaler.fit(observation_examples)
48
49 # Used to converte a state to a featurizes represenation.
50 # We use RBF kernels with different variances to cover different parts of the space
51 featurizer = FeatureUnion([
52 ("rbf1", RBFSampler(gamma=0.05, n_components=1000)),
53 ("rbf2", RBFSampler(gamma=1.0, n_components=1000)),
54 ("rbf3", RBFSampler(gamma=0.5, n_components=1000)),
55 ("rbf4", RBFSampler(gamma=0.1, n_components=1000))
56 ])
57 feature_examples = featurizer.fit_transform(scaler.transform(observation_examples))
58
59 self.dimensions = feature_examples.shape[1]
60 self.scaler = scaler
61 self.featurizer = featurizer
62
63 def transform(self, observations):
64 scaled = self.scaler.transform(observations)
65 return self.featurizer.transform(scaled)
66
67
68# Holds one SGDRegressor for each action

Callers 2

td_lambda.pyFile · 0.90
mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected