Source code for schrodinger.application.matsci.mlearn.sklearn_json.decomposition
"""
Module for serializing and de-serializing decomposition models
Copyright Schrodinger, LLC. All rights reserved.
"""
import numpy as np
from sklearn.decomposition import PCA
from . import common
[docs]def serialize_pca(model):
    serialized_model = {
        'meta': 'pca',
        'components_': model.components_.tolist(),
        'mean_': model.mean_.tolist(),
        'explained_variance_': model.explained_variance_.tolist(),
        'params': model.get_params()
    }
    common.serialize_params_random_state(serialized_model['params'])
    return serialized_model 
[docs]def deserialize_pca(model_dict):
    common.deserialize_params_random_state(model_dict['params'])
    model = PCA(**model_dict['params'])
    model.components_ = np.array(model_dict['components_'])
    model.mean_ = np.array(model_dict['mean_'])
    model.explained_variance_ = np.array(model_dict['explained_variance_'])
    return model