gpr
Author: Christian Elias Anderssen Dalan ceadyy@gmail.com,
With the help of Audun Skau Hansen a.s.hansen@kjemi.uio.no
April 2022
Kernel
Kernel class Author: Christian Elias Anderssen Dalan ceadyy@gmail.com
covariance_function: The function that will be used to calculate the covariance between our datasets
Source code in btjenesten/gpr.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
K(X1, X2, params)
Function that returns the covariance matrix given our datasets
X1: Dataset 1 (Often the training set)
X2: Dataset 2 (Often the target set)
self.covariance_function(X1, X2) : covariance matrix given our datasets X1 and X2.
Source code in btjenesten/gpr.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
Regressor
Gaussian process regressor class
Author: Christian Elias Anderssen Dalan ceadyy@gmail.com
kernel: Specifies the type of covarince function we want for our regressor. If none is provided the default is the radial basis function
training_data_X: Training data inputs, also called features
training_data_Y: Training data outputs, also called labels
Source code in btjenesten/gpr.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 |
|
aquisition(minimize_prediction=True, x0=None, l=1.2, delta=0.1, method='COBYLA')
Returns the point at which our model function is predicted to have the highest value.
Author: Christian Elias Anderssen Dalan ceadyy@gmail.com
minimize_prediction: If your task is to minimize some model function, this parameter is True. If your task is to maximize the model function this parameter is False.
l: Exploration parameter. Scales how much the standard deviation should impact the function value. l = 1 means that the function maximized/minimized equals predicted value +/- the standard deviation.
x0: Initial guess. If not specified it will use the point at which the training data is the largest/smallest.
delta: Hyperparameter that tunes UCB around measured datapoints.
p - The predicted point at which an evaluation would yield the highest/lowest value
Source code in btjenesten/gpr.py
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 |
|
predict(input_data_X, training_data_X=None, training_data_Y=None, return_variance=False)
Predicts output values for some input data given a set of training data
Author: Christian Elias Anderssen Dalan ceadyy@gmail.com
input_data_X: Input features that the gpr will evaluate.
training_data_X: training data inputs.
training_data_Y: training data outputs.
return_variance: Returns variance for each prediction if this is true
predicted_y: Predicted output data given cooresponding input_data_X and a set of training data inputs and outputs (training_data_X, training_data_Y)
predicted_variance: Predicted variance for each point of predicted output.
Source code in btjenesten/gpr.py
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
|
score(input_data_X, input_data_Y)
Returns the average and maximum error of our predict method.
Author: Christian Elias Anderssen Dalan ceadyy@gmail.com
input_data_X: input data that the gpr will predict corresponding output data to.
input_data_Y: Corresponding true ouput data for input_data_X.
avg_error - the average error between the predicted values and the true values max_error - the maximum error between the predicted values and the true values
Source code in btjenesten/gpr.py
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
|
update(new_X, new_Y, tol=1e-05)
Updates the training data in accordance to some newly measured data.
Author: Christian Elias Anderssen Dalan ceadyy@gmail.com
new_X: Set of new features that have been measured.
new_Y: Corresponding set of labels to new_X.
tol: Tolerance which the training data set can differ from new points. If this is too low you may encounter singular covariance matrices.
Source code in btjenesten/gpr.py
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 |
|
no_normalization(training_data)
generate functions which essentially does nothing
Author: No-one
Source code in btjenesten/gpr.py
374 375 376 377 378 379 380 381 382 383 384 385 386 |
|
normalize_training_data_x(training_data)
generate functions to normalize and recover unnormalized training data
Author: Audun
(more detailed explanation is required)
Source code in btjenesten/gpr.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
|
normalize_training_data_x_log(training_data)
generate functions to normalize and recover unnormalized training data
Author: Audun
(more detailed explanation is required)
Source code in btjenesten/gpr.py
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 |
|
Constant(X1, X2, k=0.5)
Kernel that returns a constant covariance value between \(x_i\) and \(x_j\) Useful if all values depend on eachother equally.
X1: Dataset 1
X2: Dataset 2
k: constant that determines the covariance.
A matrix with the same shape as our input data. All matrix elements have the value k.
Source code in btjenesten/kernels.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
Funny_trigonometric(X1, X2, k=1)
Kernel that I made only for fun. May work for extravagant datasets
X1: Dataset 1
X2: Dataset 2
k: constant that determines the frequency of the trigonometric functions.
A covariance matrix that might be a bit crazy.
Source code in btjenesten/kernels.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
|
RBF(X1, X2, l=np.array([1.0]))
Radial basis function of the form: $$ e^{-l * d(X_i,X_j)} $$
X1: Dataset 1
X2: Dataset 2 l: Length scale parameter. Can be adjusted to adjust the covariance between \(x_i\) and \(x_j\). Increasing l will decrease the covariance, and vice versa.
A matrix with the same shape as our input data, where the elemets are: \(e^{-l \cdot d(x_i, x_j)}\) where \(d(x_i, x_j)\) is the difference between element \(x_i\) in X1 and element \(x_j\) in X2.
Source code in btjenesten/kernels.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|