Skip to content

Commit

Permalink
__init__.py fixes dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
VicentePerezSoloviev committed Jun 4, 2020
1 parent 367f03d commit 31a0825
Show file tree
Hide file tree
Showing 17 changed files with 1,010 additions and 10 deletions.
2 changes: 0 additions & 2 deletions EDApy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,3 @@
import warnings

warnings.simplefilter(action='ignore', category=FutureWarning)
from sklearn.cluster import KMeans

6 changes: 3 additions & 3 deletions EDApy/optimization/multivariate/EDA_multivariate.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import rpy2.robjects.packages as rp
import numpy as np

from EDApy.optimization.multivariate.__BayesianNetwork import learn_structure, calculate_fit
from EDApy.optimization.multivariate.__matrix import nearestPD, normalizacion, is_invertible
from EDApy.optimization.multivariate.__clustering import clustering
from .__BayesianNetwork import learn_structure, calculate_fit
from .__clustering import clustering
from .__matrix import nearestPD, normalizacion, is_invertible

utils = rp.importr('utils')
utils.chooseCRANmirror(ind=1)
Expand Down
2 changes: 1 addition & 1 deletion EDApy/optimization/multivariate/__clustering.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans


def clustering(n_clusters, dataset, evidences, cluster_vars):
Expand All @@ -15,6 +14,7 @@ def clustering(n_clusters, dataset, evidences, cluster_vars):

values = list(dataset.index)

from sklearn.cluster import KMeans
k_means = KMeans(n_clusters=n_clusters, random_state=0).fit(np.array(data).T)
labels = list(k_means.labels_)

Expand Down
41 changes: 39 additions & 2 deletions EDApy/optimization/multivariate/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,44 @@

# __init__.py

from .EDA_multivariate import EDAgbn as EDA_multivariate
from .__BayesianNetwork import print_structure as print_structure
# __all__ = ['EDA_multivariate', '__BayesianNetwork']

import subprocess
import sys

import warnings
warnings.filterwarnings("ignore")


def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])


def check_package(installed_pack, package):
if package in installed_pack:
return True
else:
return False

if sys.version_info[0] < 3:
raise Exception("Python version should be greater than 3")

requirements = ['pandas', 'numpy', 'rpy2', 'pyvis', 'sklearn']
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze'])
installed_packages = [r.decode().split('==')[0] for r in reqs.split()]

for package in requirements:
if not check_package(installed_packages, package):
if package == 'sklearn':
package = 'scikit-learn'

print('package ', package, ' is not installed. Would you like to install it? y/n')
response = input()
if response == 'y' or response == 'yes':
install(package)
elif response == 'n' or response == 'no':
print('dependencies insatisfied')


from .EDA_multivariate import EDAgbn as EDA_multivariate
from .__BayesianNetwork import print_structure as print_structure
33 changes: 33 additions & 0 deletions EDApy/optimization/univariate/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,39 @@

# __init__.py


import subprocess
import sys


def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])


def check_package(installed_pack, package):
if package in installed_pack:
return True
else:
return False


if sys.version_info[0] < 3:
raise Exception("Python version should be greater than 3")

requirements = ['pandas', 'numpy', 'scipy']
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze'])
installed_packages = [r.decode().split('==')[0] for r in reqs.split()]

for package in requirements:
if not check_package(installed_packages, package):
print('package ', package, ' is not installed. Would you like to install it? y/n')
response = input()
if response == 'y' or response == 'yes':
install(package)
elif response == 'n' or response == 'no':
print('dependencies not satisfied')


from .discrete import UMDAd as EDA_discrete
from .continuous import UMDAc as EDA_continuous

3 changes: 1 addition & 2 deletions EDApy/optimization/univariate/continuous.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import pandas as pd
import numpy as np
from scipy.stats import norm

'''
In this version of UMDA, instead of a vector of probabilities, a vector of univariate normal distributions is found
Expand Down Expand Up @@ -161,6 +160,7 @@ def update_vector(self):
array = self.generation[var].values

# calculate mu and std from data
from scipy.stats import norm
mu, std = norm.fit(array)

# std should never be 0
Expand Down Expand Up @@ -220,4 +220,3 @@ def run(self, output=True):
print('IT ', i, 'best cost ', best_mae_local)

return self.best_mae_global, self.best_ind_global, self.history

20 changes: 20 additions & 0 deletions build/lib/EDApy/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python
# coding: utf-8

# __init__.py

import sys

if sys.version_info[0] < 3:
raise Exception("Python version should be greater than 3")

import warnings

warnings.simplefilter(action='ignore', category=FutureWarning)
from sklearn.cluster import KMeans

from .optimization.multivariate.EDA_multivariate import EDAgbn as EDA_multivariate
from .optimization.univariate.discrete import UMDAd as EDA_discrete
from .optimization.univariate.continuous import UMDAc as EDA_continuous

from .optimization.multivariate.__BayesianNetwork import print_structure as print_structure
Empty file.
Loading

0 comments on commit 31a0825

Please sign in to comment.