Expand source code
from typing import Type
import numpy as np
from ..sklearnmodel import SklearnModel
class OLS(SklearnModel):
def __init__(self,
stat_model: Type,
**kwargs):
self.stat_model = stat_model
self.stat_model_fit = None
super().__init__(**kwargs)
def fit(self, X: np.ndarray, y: np.ndarray) -> 'OLS':
self.stat_model_fit = self.stat_model(y, X).fit()
SklearnModel.fit(self, X, self.stat_model_fit.resid)
return self
def predict(self, X: np.ndarray=None) -> np.ndarray:
if X is None:
X = self.data.X
sm_prediction = self.stat_model_fit.predict(X)
bart_prediction = SklearnModel.predict(self, X)
return sm_prediction + bart_prediction
Classes
class OLS (stat_model: Type, **kwargs)-
The main access point to building BART models in BartPy
Parameters
n_trees:int- the number of trees to use, more trees will make a smoother fit, but slow training and fitting
n_chains:int- the number of independent chains to run more chains will improve the quality of the samples, but will require more computation
sigma_a:float- shape parameter of the prior on sigma
sigma_b:float- scale parameter of the prior on sigma
n_samples:int- how many recorded samples to take
n_burn:int- how many samples to run without recording to reach convergence
thin:float- percentage of samples to store. use this to save memory when running large models
p_grow:float- probability of choosing a grow mutation in tree mutation sampling
p_prune:float- probability of choosing a prune mutation in tree mutation sampling
alpha:float- prior parameter on tree structure
beta:float- prior parameter on tree structure
store_in_sample_predictions:bool- whether to store full prediction samples set to False if you don't need in sample results - saves a lot of memory
store_acceptance_trace:bool- whether to store acceptance rates of the gibbs samples unless you're very memory constrained, you wouldn't want to set this to false useful for diagnostics
tree_sampler:TreeMutationSampler- Method of sampling used on trees
defaults to
bartpy.samplers.unconstrainedtree initializer:Initializer- Class that handles the initialization of tree structure and leaf values
n_jobs:int- how many cores to use when computing MCMC samples
set to
-1to use all cores
Expand source code
class OLS(SklearnModel): def __init__(self, stat_model: Type, **kwargs): self.stat_model = stat_model self.stat_model_fit = None super().__init__(**kwargs) def fit(self, X: np.ndarray, y: np.ndarray) -> 'OLS': self.stat_model_fit = self.stat_model(y, X).fit() SklearnModel.fit(self, X, self.stat_model_fit.resid) return self def predict(self, X: np.ndarray=None) -> np.ndarray: if X is None: X = self.data.X sm_prediction = self.stat_model_fit.predict(X) bart_prediction = SklearnModel.predict(self, X) return sm_prediction + bart_predictionAncestors
- SklearnModel
- sklearn.base.BaseEstimator
- sklearn.utils._estimator_html_repr._HTMLDocumentationLinkMixin
- sklearn.utils._metadata_requests._MetadataRequester
- sklearn.base.RegressorMixin
Inherited members