pysubgroup package

Submodules

pysubgroup.algorithms module

Created on 29.04.2016

@author: lemmerfn

class pysubgroup.algorithms.Apriori(representation_type=None, combination_name='Conjunction', use_numba=True)[source]

Bases: object

execute(task)[source]
get_next_level(promising_candidates)[source]
get_next_level_candidates(task, result, next_level_candidates)[source]
get_next_level_candidates_vectorized(task, result, next_level_candidates)[source]
get_next_level_numba(promising_candidates)[source]
class pysubgroup.algorithms.BeamSearch(beam_width=20, beam_width_adaptive=False)[source]

Bases: object

Implements the BeamSearch algorithm. Its a basic implementation

execute(task)[source]
class pysubgroup.algorithms.BestFirstSearch[source]

Bases: object

execute(task)[source]
class pysubgroup.algorithms.DFS(apply_representation)[source]

Bases: object

Implementation of a depth-first-search with look-ahead using a provided datastructure.

execute(task)[source]
search_internal(task, result, sg)[source]
class pysubgroup.algorithms.DFSNumeric[source]

Bases: object

execute(task)[source]
search_internal(task, prefix, modification_set, result, bitset)[source]
tpl

alias of size_mean_parameters

class pysubgroup.algorithms.GeneralisingBFS[source]

Bases: object

execute(task)[source]
class pysubgroup.algorithms.SimpleDFS[source]

Bases: object

execute(task, use_optimistic_estimates=True)[source]
search_internal(task, prefix, modification_set, result, use_optimistic_estimates)[source]
class pysubgroup.algorithms.SimpleSearch(show_progress=True)[source]

Bases: object

execute(task)[source]
class pysubgroup.algorithms.SubgroupDiscoveryTask(data, target, search_space, qf, result_set_size=10, depth=3, min_quality=-inf, constraints=None)[source]

Bases: object

Capsulates all parameters required to perform standard subgroup discovery

pysubgroup.algorithms.constraints_satisfied(constraints, subgroup, statistics=None, data=None)[source]

pysubgroup.binary_target module

Created on 29.09.2017

@author: lemmerfn

class pysubgroup.binary_target.BinaryTarget(target_attribute=None, target_value=None, target_selector=None)[source]

Bases: BaseTarget

calculate_statistics(subgroup, data, cached_statistics=None)[source]
covers(instance)[source]
get_attributes()[source]
get_base_statistics(subgroup, data)[source]
statistic_types = ('size_sg', 'size_dataset', 'positives_sg', 'positives_dataset', 'size_complement', 'relative_size_sg', 'relative_size_complement', 'coverage_sg', 'coverage_complement', 'target_share_sg', 'target_share_complement', 'target_share_dataset', 'lift')
class pysubgroup.binary_target.ChiSquaredQF(direction='both', min_instances=5, stat='chi2')[source]

Bases: SimplePositivesQF

ChiSquaredQF which test for statistical independence of a subgroup against it’s complement

static chi_squared_qf(instances_dataset, positives_dataset, instances_subgroup, positives_subgroup, min_instances=5, bidirect=True, direction_positive=True, index=0)[source]

Performs chi2 test of statistical independence

Test whether a subgroup is statistically independent from it’s complement (see scipy.stats.chi2_contingency).

Parameters:

instances_dataset

positives_dataset,

instances_subgroup, positives_subgroup : int

counts of subgroup and dataset

:parampositives_dataset,

instances_subgroup, positives_subgroup : int

counts of subgroup and dataset

Parameters:
  • min_instances (int, optional) – number of required instances, if less -inf is returned for that subgroup

  • bidirect (bool, optional) – If true both directions are considered interesting else direction_positive decides which direction is interesting

  • direction_positive (bool, optional) – Only used if bidirect=False; specifies whether you are interested in positive (True) or negative deviations

  • index ({0, 1}, optional) – decides whether the test statistic (0) or the p-value (1) should be used

static chi_squared_qf_weighted(subgroup, data, weighting_attribute, effective_sample_size=0, min_instances=5)[source]
evaluate(subgroup, target, data, statistics=None)[source]
class pysubgroup.binary_target.GeneralizationAware_StandardQF(a)[source]

Bases: GeneralizationAwareQF_stats

evaluate(subgroup, target, data, statistics=None)[source]
get_max(*args)[source]
class pysubgroup.binary_target.LiftQF[source]

Bases: StandardQF

Lift Quality Function

LiftQF is a StandardQF with a=0. Thus it treats the difference in ratios as the quality without caring about the relative size of a subgroup.

class pysubgroup.binary_target.SimpleBinomialQF[source]

Bases: StandardQF

Simple Binomial Quality Function

SimpleBinomialQF is a StandardQF with a=0.5. It is an order equivalent approximation of the full binomial test if the subgroup size is much smaller than the size of the entire dataset.

class pysubgroup.binary_target.SimplePositivesQF[source]

Bases: AbstractInterestingnessMeasure

calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
gp_get_null_vector()[source]
gp_get_params(_cover_arr, v)[source]
gp_get_stats(row_index)[source]
gp_merge(left, right)[source]
property gp_requires_cover_arr
gp_size_sg(stats)[source]
gp_to_str(stats)[source]
tpl

alias of PositivesQF_parameters

class pysubgroup.binary_target.StandardQF(a)[source]

Bases: SimplePositivesQF, BoundedInterestingnessMeasure

StandardQF which weights the relative size against the difference in averages

The StandardQF is a general form of quality function which for different values of a is order equivalen to many popular quality measures.

a

used as an exponent to scale the relative size to the difference in averages

Type:

float

evaluate(subgroup, target, data, statistics=None)[source]
optimistic_estimate(subgroup, target, data, statistics=None)[source]
optimistic_generalisation(subgroup, target, data, statistics=None)[source]
static standard_qf(a, instances_dataset, positives_dataset, instances_subgroup, positives_subgroup)[source]
class pysubgroup.binary_target.WRAccQF[source]

Bases: StandardQF

Weighted Relative Accuracy Quality Function

WRAccQF is a StandardQF with a=1. It is order equivalent to the difference in the observed and expected number of positive instances.

pysubgroup.constraints module

class pysubgroup.constraints.MinSupportConstraint(min_support)[source]

Bases: object

gp_is_satisfied(node)[source]
gp_prepare(qf)[source]
property is_monotone
is_satisfied(subgroup, statistics=None, data=None)[source]

pysubgroup.datasets module

pysubgroup.datasets.get_credit_data()[source]
pysubgroup.datasets.get_titanic_data()[source]

pysubgroup.fi_target module

Created on 29.09.2017

@author: lemmerfn

class pysubgroup.fi_target.AreaQF[source]

Bases: SimpleCountQF

evaluate(subgroup, target, data, statistics=None)[source]
class pysubgroup.fi_target.CountQF[source]

Bases: SimpleCountQF, BoundedInterestingnessMeasure

evaluate(subgroup, target, data, statistics=None)[source]
optimistic_estimate(subgroup, target, data, statistics=None)[source]
class pysubgroup.fi_target.FITarget[source]

Bases: BaseTarget

calculate_statistics(subgroup_description, data, cached_statistics=None)[source]
get_attributes()[source]
get_base_statistics(subgroup, data)[source]
statistic_types = ('size_sg', 'size_dataset')
class pysubgroup.fi_target.SimpleCountQF[source]

Bases: AbstractInterestingnessMeasure

calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup_description, target, data, statistics=None)[source]
gp_get_null_vector()[source]
gp_get_params(_cover_arr, v)[source]
gp_get_stats(_)[source]
gp_merge(left, right)[source]
gp_requires_cover_arr = False
gp_size_sg(stats)[source]
gp_to_str(stats)[source]
tpl

alias of CountQF_parameters

pysubgroup.gp_growth module

class pysubgroup.gp_growth.GpGrowth(mode='b_u')[source]

Bases: object

add_if_required(prefix, gp_stats)[source]
calculate_quality_function_for_patterns(task, results, arrs)[source]
check_constraints(node)[source]
check_tree_is_ordered(root, prefix=None)[source]

Verify that the nodes of a tree are sorted in ascending order

convert_results_to_subgroups(results, selectors_sorted)[source]
create_copy_of_path(nodes, new_nodes, stats)[source]
create_copy_of_tree_top_down(from_root, nodes=None, parent=None, is_valid_class=None)[source]
create_initial_tree(arrs)[source]
create_new_tree_from_nodes(nodes)[source]
execute(task)[source]
get_nodes_upwards(node)[source]
get_stats_for_class(cls_nodes)[source]
get_top_down_tree_for_class(cls_nodes, cls, is_valid_class)[source]
merge_trees_top_down(nodes, mutable_root, from_root, is_valid_class)[source]
nodes_to_cls_nodes(nodes)[source]
normal_insert(root, nodes, new_stats, classes)[source]
prepare_selectors(search_space, data)[source]
recurse(cls_nodes, prefix, is_single_path=False)[source]
recurse_top_down(cls_nodes, root, depth_in=0)[source]
remove_selectors_with_low_optimistic_estimate(s, search_space_size)[source]
setup(task)[source]
setup_constraints(constraints, qf)[source]
setup_from_quality_function(qf)[source]
to_file(task, path)[source]
pysubgroup.gp_growth.identity(x, *args, **kwargs)[source]

pysubgroup.measures module

Created on 28.04.2016

@author: lemmerfn

class pysubgroup.measures.AbstractInterestingnessMeasure[source]

Bases: ABC

ensure_statistics(subgroup, target, data, statistics=None)[source]
class pysubgroup.measures.BoundedInterestingnessMeasure[source]

Bases: AbstractInterestingnessMeasure

class pysubgroup.measures.CombinedInterestingnessMeasure(measures, weights=None)[source]

Bases: BoundedInterestingnessMeasure

calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, cached_statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
evaluate_from_statistics(instances_dataset, positives_dataset, instances_subgroup, positives_subgroup)[source]
optimistic_estimate(subgroup, target, data, statistics=None)[source]
class pysubgroup.measures.CountCallsInterestingMeasure(qf)[source]

Bases: BoundedInterestingnessMeasure

calculate_statistics(sg, target, data, statistics=None)[source]
class pysubgroup.measures.GeneralizationAwareQF(qf)[source]

Bases: AbstractInterestingnessMeasure

calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
class ga_tuple(subgroup_quality, generalisation_quality)

Bases: tuple

generalisation_quality

Alias for field number 1

subgroup_quality

Alias for field number 0

get_qual_and_previous_qual(subgroup, target, data)[source]
class pysubgroup.measures.GeneralizationAwareQF_stats(qf)[source]

Bases: AbstractInterestingnessMeasure

calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
ga_tuple

alias of ga_stats_tuple

get_max(*args)[source]
get_stats_and_previous_stats(subgroup, target, data)[source]
pysubgroup.measures.maximum_statistic_filter(result_set, statistic, maximum)[source]
pysubgroup.measures.minimum_quality_filter(result_set, minimum)[source]
pysubgroup.measures.minimum_statistic_filter(result_set, statistic, minimum, data)[source]
pysubgroup.measures.overlap_filter(result_set, data, similarity_level=0.9)[source]
pysubgroup.measures.overlaps_list(sg, list_of_sgs, data, similarity_level=0.9)[source]
pysubgroup.measures.unique_attributes(result_set, data)[source]

pysubgroup.model_target module

class pysubgroup.model_target.EMM_Likelihood(model)[source]

Bases: AbstractInterestingnessMeasure

calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
get_tuple(sg_size, params, cover_arr)[source]
gp_get_params(cover_arr, v)[source]
property gp_requires_cover_arr
tpl

alias of EMM_Likelihood

class pysubgroup.model_target.PolyRegression_ModelClass(x_name='x', y_name='y', degree=1)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
fit(subgroup, data=None)[source]
gp_get_null_vector()[source]
gp_get_params(v)[source]
gp_get_stats(row_index)[source]
static gp_merge(u, v)[source]
property gp_requires_cover_arr
gp_size_sg(stats)[source]
gp_to_str(stats)[source]
likelihood(stats, sg)[source]
loglikelihood(stats, sg)[source]
class pysubgroup.model_target.beta_tuple(beta, size_sg)

Bases: tuple

beta

Alias for field number 0

size_sg

Alias for field number 1

pysubgroup.numeric_target module

Created on 29.09.2017

@author: lemmerfn

class pysubgroup.numeric_target.NumericTarget(target_variable)[source]

Bases: object

calculate_statistics(subgroup, data, cached_statistics=None)[source]
get_attributes()[source]
get_base_statistics(subgroup, data)[source]
statistic_types = ('size_sg', 'size_dataset', 'mean_sg', 'mean_dataset', 'std_sg', 'std_dataset', 'median_sg', 'median_dataset', 'max_sg', 'max_dataset', 'min_sg', 'min_dataset', 'mean_lift', 'median_lift')
class pysubgroup.numeric_target.StandardQFNumeric(a, invert=False, estimator='sum')[source]

Bases: BoundedInterestingnessMeasure

class Average_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, _)[source]
class Ordering_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, target_values_sg)[source]
get_estimate_numpy(values_sg, _, mean_dataset)[source]
class Summation_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, _)[source]
calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
optimistic_estimate(subgroup, target, data, statistics=None)[source]
static standard_qf_numeric(a, _, mean_dataset, instances_subgroup, mean_sg)[source]
tpl

alias of StandardQFNumeric_parameters

class pysubgroup.numeric_target.StandardQFNumericMedian(a, invert=False, estimator='sum')[source]

Bases: BoundedInterestingnessMeasure

class Average_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, _)[source]
class Ordering_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, target_values_sg)[source]
get_estimate_numpy(values_sg, _, mean_dataset)[source]
class Summation_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_median, cover_arr, _)[source]
calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
optimistic_estimate(subgroup, target, data, statistics=None)[source]
static standard_qf_numeric(a, _, median_dataset, instances_subgroup, median_sg)[source]
tpl

alias of StandardQFNumericMedian_parameters

class pysubgroup.numeric_target.StandardQFNumericTscore(a, invert=False, estimator='sum')[source]

Bases: BoundedInterestingnessMeasure

class Average_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, _)[source]
class Ordering_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, target_values_sg)[source]
get_estimate_numpy(values_sg, _, mean_dataset)[source]
class Summation_Estimator(qf)[source]

Bases: object

calculate_constant_statistics(data, target)[source]
get_data(data, target)[source]
get_estimate(subgroup, sg_size, sg_mean, cover_arr, _)[source]
calculate_constant_statistics(data, target)[source]
calculate_statistics(subgroup, target, data, statistics=None)[source]
evaluate(subgroup, target, data, statistics=None)[source]
optimistic_estimate(subgroup, target, data, statistics=None)[source]
static standard_qf_numeric(a, _, mean_dataset, instances_subgroup, mean_sg, std_sg)[source]
tpl

alias of StandardQFNumericTscore_parameters

pysubgroup.refinement_operator module

class pysubgroup.refinement_operator.RefinementOperator[source]

Bases: object

class pysubgroup.refinement_operator.StaticGeneralizationOperator(selectors)[source]

Bases: object

refinements(sG)[source]
class pysubgroup.refinement_operator.StaticSpecializationOperator(selectors)[source]

Bases: object

refinements(subgroup)[source]

pysubgroup.representations module

class pysubgroup.representations.BitSetRepresentation(df, selectors_to_patch)[source]

Bases: RepresentationBase

Conjunction

alias of BitSet_Conjunction

Disjunction

alias of BitSet_Disjunction

patch_classes()[source]
patch_selector(sel)[source]
class pysubgroup.representations.BitSet_Conjunction(*args, **kwargs)[source]

Bases: Conjunction

append_and(to_append)[source]
compute_representation()[source]
n_instances = 0
property size_sg
class pysubgroup.representations.BitSet_Disjunction(*args, **kwargs)[source]

Bases: Disjunction

append_or(to_append)[source]
compute_representation()[source]
property size_sg
class pysubgroup.representations.NumpySetRepresentation(df, selectors_to_patch)[source]

Bases: RepresentationBase

Conjunction

alias of NumpySet_Conjunction

patch_classes()[source]
patch_selector(sel)[source]
class pysubgroup.representations.NumpySet_Conjunction(*args, **kwargs)[source]

Bases: Conjunction

all_set = None
append_and(to_append)[source]
compute_representation()[source]
property size_sg
class pysubgroup.representations.RepresentationBase(new_conjunction, selectors_to_patch)[source]

Bases: object

patch_all_selectors()[source]
patch_classes()[source]
patch_selector(sel)[source]
undo_patch_classes()[source]
class pysubgroup.representations.SetRepresentation(df, selectors_to_patch)[source]

Bases: RepresentationBase

Conjunction

alias of Set_Conjunction

patch_classes()[source]
patch_selector(sel)[source]
class pysubgroup.representations.Set_Conjunction(*args, **kwargs)[source]

Bases: Conjunction

all_set = {}
append_and(to_append)[source]
compute_representation()[source]
property size_sg

pysubgroup.subgroup_description module

Created on 28.04.2016

@author: lemmerfn

class pysubgroup.subgroup_description.BooleanExpressionBase[source]

Bases: ABC

abstract append_and(to_append)[source]
abstract append_or(to_append)[source]
class pysubgroup.subgroup_description.Conjunction(selectors)[source]

Bases: BooleanExpressionBase

append_and(to_append)[source]
append_or(to_append)[source]
covers(instance)[source]
property depth
static from_str(s)[source]
pop_and()[source]
pop_or()[source]
property selectors
class pysubgroup.subgroup_description.DNF(selectors=None)[source]

Bases: Disjunction

append_and(to_append)[source]
append_or(to_append)[source]
pop_and()[source]
class pysubgroup.subgroup_description.Disjunction(selectors=None)[source]

Bases: BooleanExpressionBase

append_and(to_append)[source]
append_or(to_append)[source]
covers(instance)[source]
property selectors
class pysubgroup.subgroup_description.EqualitySelector(*args, **kwargs)[source]

Bases: SelectorBase

property attribute_name
property attribute_value
classmethod compute_descriptions(attribute_name, attribute_value, selector_name)[source]
covers(data)[source]
static from_str(s)[source]
property selectors
set_descriptions(attribute_name, attribute_value, selector_name=None)[source]
class pysubgroup.subgroup_description.IntervalSelector(*args, **kwargs)[source]

Bases: SelectorBase

property attribute_name
classmethod compute_descriptions(attribute_name, lower_bound, upper_bound, selector_name=None)[source]
classmethod compute_string(attribute_name, lower_bound, upper_bound, rounding_digits)[source]
covers(data_instance)[source]
static from_str(s)[source]
property lower_bound
property selectors
set_descriptions(attribute_name, lower_bound, upper_bound, selector_name=None)[source]
property upper_bound
class pysubgroup.subgroup_description.NegatedSelector(*args, **kwargs)[source]

Bases: SelectorBase

property attribute_name
covers(data_instance)[source]
property selectors
set_descriptions(selector)[source]
class pysubgroup.subgroup_description.SelectorBase(*args, **kwargs)[source]

Bases: ABC

abstract set_descriptions(*args, **kwargs)[source]
pysubgroup.subgroup_description.create_nominal_selectors(data, ignore=None)[source]
pysubgroup.subgroup_description.create_nominal_selectors_for_attribute(data, attribute_name, dtypes=None)[source]
pysubgroup.subgroup_description.create_numeric_selectors(data, nbins=5, intervals_only=True, weighting_attribute=None, ignore=None)[source]
pysubgroup.subgroup_description.create_numeric_selectors_for_attribute(data, attr_name, nbins=5, intervals_only=True, weighting_attribute=None)[source]
pysubgroup.subgroup_description.create_selectors(data, nbins=5, intervals_only=True, ignore=None)[source]
pysubgroup.subgroup_description.get_cover_array_and_size(subgroup, data_len=None, data=None)[source]
pysubgroup.subgroup_description.get_size(subgroup, data_len=None, data=None)[source]
pysubgroup.subgroup_description.remove_target_attributes(selectors, target)[source]

pysubgroup.utils module

Created on 02.05.2016

@author: lemmerfn

class pysubgroup.utils.BaseTarget[source]

Bases: object

all_statistics_present(cached_statistics)[source]
class pysubgroup.utils.SubgroupDiscoveryResult(results, task)[source]

Bases: object

to_dataframe(statistics_to_show=None, autoround=False, include_target=False)[source]
to_descriptions(include_stats=False)[source]
to_latex(statistics_to_show=None)[source]
to_table(statistics_to_show=None, print_header=True, include_target=False)[source]
pysubgroup.utils.add_if_required(result, sg, quality, task: SubgroupDiscoveryTask, check_for_duplicates=False, statistics=None, explicit_result_set_size=None)[source]

Important

Only add/remove subgroups from result by using heappop and heappush to ensure order of subgroups by quality.

pysubgroup.utils.conditional_invert(val, invert)[source]
pysubgroup.utils.count_bits(bitset_as_int)[source]
pysubgroup.utils.derive_effective_sample_size(weights)[source]
pysubgroup.utils.equal_frequency_discretization(data, attribute_name, nbins=5, weighting_attribute=None)[source]
pysubgroup.utils.find_set_bits(bitset_as_int)[source]
pysubgroup.utils.float_formatter(x, digits=2)[source]
pysubgroup.utils.intersect_of_ordered_list(list_1, list_2)[source]
pysubgroup.utils.is_categorical_attribute(data, attribute_name)[source]
pysubgroup.utils.is_numerical_attribute(data, attribute_name)[source]
pysubgroup.utils.minimum_required_quality(result, task)[source]
pysubgroup.utils.overlap(sg, another_sg, data)[source]
pysubgroup.utils.perc_formatter(x)[source]
pysubgroup.utils.powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)[source]
pysubgroup.utils.prepare_subgroup_discovery_result(result, task)[source]
pysubgroup.utils.remove_selectors_with_attributes(selector_list, attribute_list)[source]
pysubgroup.utils.results_df_autoround(df)[source]
pysubgroup.utils.to_bits(list_of_ints)[source]

pysubgroup.visualization module

pysubgroup.visualization.compare_distributions_numeric(sgs, data, bins)[source]
pysubgroup.visualization.plot_distribution_numeric(sg, data, bins)[source]
pysubgroup.visualization.plot_npspace(result_df, data, annotate=True, fixed_limits=False)[source]
pysubgroup.visualization.plot_roc(result_df, data, qf=<pysubgroup.binary_target.StandardQF object>, levels=40, annotate=False)[source]
pysubgroup.visualization.plot_sgbars(result_df, _, ylabel='target share', title='Discovered Subgroups', dynamic_widths=False, _suffix='')[source]
pysubgroup.visualization.similarity_dendrogram(result, data)[source]
pysubgroup.visualization.similarity_sgs(sgd_results, data, color=True)[source]
pysubgroup.visualization.supportSetVisualization(result, in_order=True, drop_empty=True)[source]

Module contents