Commit 6fe47a56 authored by leswing's avatar leswing
Browse files

DONE

parent cf6a1faf
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -2,8 +2,10 @@
Code for processing datasets using scikit-learn.
"""
import numpy as np
from sklearn.cross_decomposition import PLSRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import RandomForestRegressor
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import RidgeCV
@@ -14,6 +16,9 @@ from deepchem.models import Model
from deepchem.utils.save import load_from_disk
from deepchem.utils.save import save_to_disk

NON_WEIGHTED_MODELS = {LogisticRegression, PLSRegression, GaussianProcessRegressor, ElasticNetCV, LassoCV}


class SklearnModel(Model):
  """
  Abstract base class for different ML models.
@@ -27,11 +32,12 @@ class SklearnModel(Model):
    y = np.squeeze(dataset.y)
    w = np.squeeze(dataset.w)
    # Logistic regression doesn't support weights
    if not isinstance(self.model_instance, LogisticRegression):
      self.model_instance.fit(X, y, w)
    else:
    for model_instance in NON_WEIGHTED_MODELS:
      if not isinstance(self.model_instance, model_instance):
        continue
      self.model_instance.fit(X, y)
    y_pred_raw = self.model_instance.predict(X)
      return
    self.model_instance.fit(X, y, w)

  def predict_on_batch(self, X, pad_batch=False):
    """