Merge branch 'master' into dev
This commit is contained in:
commit
f1020e8169
|
@ -66,4 +66,8 @@ Basic examples that illustrate usage of the the framework are in the notebook fo
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from risk import deid
|
import sys
|
||||||
|
if sys.version_info.major == 2:
|
||||||
|
from risk import deid
|
||||||
|
else:
|
||||||
|
from risk.risk import deid
|
||||||
|
|
14
risk/risk.py
14
risk/risk.py
|
@ -57,8 +57,10 @@ class deid :
|
||||||
This function will perform experimentation by performing a random policies (combinations of attributes)
|
This function will perform experimentation by performing a random policies (combinations of attributes)
|
||||||
This function is intended to explore a variety of policies and evaluate their associated risk.
|
This function is intended to explore a variety of policies and evaluate their associated risk.
|
||||||
|
|
||||||
@param pop|sample data-frame with popublation reference
|
:pop|sample data-frame with population or sample reference
|
||||||
@param id key field that uniquely identifies patient/customer ...
|
:field_count number of fields to randomly select
|
||||||
|
:strict if set the field_count is exact otherwise field_count is range from 2-field_count
|
||||||
|
:num_runs number of runs (by default 5)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pop= args['pop'] if 'pop' in args else None
|
pop= args['pop'] if 'pop' in args else None
|
||||||
|
@ -76,7 +78,7 @@ class deid :
|
||||||
|
|
||||||
sample = args['sample'] if 'sample' in args else pd.DataFrame(self._df)
|
sample = args['sample'] if 'sample' in args else pd.DataFrame(self._df)
|
||||||
|
|
||||||
k = sample.columns.size if 'field_count' not in args else int(args['field_count']) + 1
|
k = sample.columns.size if 'field_count' not in args else int(args['field_count']) +1
|
||||||
if 'id' in args :
|
if 'id' in args :
|
||||||
id = args['id']
|
id = args['id']
|
||||||
columns = list(set(sample.columns.tolist()) - set([id]))
|
columns = list(set(sample.columns.tolist()) - set([id]))
|
||||||
|
@ -85,8 +87,10 @@ class deid :
|
||||||
o = pd.DataFrame()
|
o = pd.DataFrame()
|
||||||
|
|
||||||
for i in np.arange(RUNS):
|
for i in np.arange(RUNS):
|
||||||
n = np.random.randint(2,k)
|
if 'strict' not in args or ('strict' in args and args['strict'] is False):
|
||||||
|
n = np.random.randint(2,k)
|
||||||
|
else:
|
||||||
|
n = args['field_count']
|
||||||
cols = np.random.choice(columns,n,replace=False).tolist()
|
cols = np.random.choice(columns,n,replace=False).tolist()
|
||||||
params = {'sample':sample,'cols':cols}
|
params = {'sample':sample,'cols':cols}
|
||||||
if pop is not None :
|
if pop is not None :
|
||||||
|
|
Loading…
Reference in New Issue