PyIAML 1.0.0__tar.gz → 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyiaml-1.0.0 → pyiaml-1.0.1}/PKG-INFO +28 -33
- {pyiaml-1.0.0 → pyiaml-1.0.1}/PyIAML.egg-info/PKG-INFO +28 -33
- {pyiaml-1.0.0 → pyiaml-1.0.1}/README.md +27 -32
- {pyiaml-1.0.0 → pyiaml-1.0.1}/pyproject.toml +2 -2
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_encode_target_column.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_mice.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_bad_quality_rows.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_cyclical_date_encoding.py +0 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_polynomial_features.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_aalen_additive_model.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/cache_keys.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/iaml.py +2 -2
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/cumulative_dynamic_auc.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/sklearn_preprocessor.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/step.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/timed_pool_executor.py +1 -1
- {pyiaml-1.0.0 → pyiaml-1.0.1}/LICENSE +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/MANIFEST.in +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/PyIAML.egg-info/SOURCES.txt +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/PyIAML.egg-info/dependency_links.txt +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/PyIAML.egg-info/requires.txt +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/PyIAML.egg-info/top_level.txt +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/setup.cfg +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionable.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/boosting/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/boosting/act_adaboost.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_categorical_imputer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_count_vectorizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_drop_categorical_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_drop_date_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_drop_high_cardinality_categorical.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_drop_numerical_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_drop_textual_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_frequency_encoder.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_hashing_vectorizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_knn_imputer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_mean_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_missing_count_feature.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_missing_indicator.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_onehot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_ordinal_encoder.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_rare_category_grouper.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_simple_imputer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_split_date.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_target_encoder.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_text_normalizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_tf_idf.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_word2vec.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_coerce_numeric_strings.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_date_converter.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_duplicate_rows.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_high_missing_columns.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_id_like_columns.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_normalize_column_names.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_sentinel_to_na_n.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_trim_space.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_fast_ica.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_feature_agglomeration.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_k_bins_discretizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_k_means_features.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_kernel_pca.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_log_transformer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_nystroem.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_pca.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_power_transformer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_quantile_transformer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_rbf_sampler.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_select_percentile.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_sparse_random_projection.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_truncated_svd.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_permutation_importance_selector.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_remove_high_correlated_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_remove_low_variance_column.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_rfe.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_select_from_model.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_select_k_best.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_selection/act_vif_selector.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_adasyn.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_borderline_smote.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_near_miss.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_random_over_sampling.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_random_under_sampler.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_smote.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_smote_tomek.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_smoteenn.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/imbalance/act_tomek_links.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/normalize/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/normalize/act_max_abs_scaler.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/normalize/act_minmax_scaler.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/normalize/act_normalizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/normalize/act_robust_scaler.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/normalize/act_standard_scaler.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/_xgboost.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_bagging_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_bernoulli_nb.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_catboost_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_complement_nb.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_decision_tree_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_extra_trees_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_gaussian_nb.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_hist_gradient_boosting_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_knn.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_light_gbm_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_linear_discriminant_analysis.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_linear_svc.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_logistic_regression.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_mlp_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_multinomial_nb.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_passive_aggressive_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_quadratic_discriminant_analysis.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_randomforest.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_ridge_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_sgd_classifier.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_svm_svc.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/classifier/act_xgboost.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_ada_boost_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_ard_regression.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_catboost_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_decision_tree_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_elastic_net_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_extra_trees_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_gaussian_process_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_gboost_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_hist_gradient_boosting_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_huber_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_knn_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_lasso_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_light_gbm_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_linear_regression.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_mlp_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_poisson_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_quantile_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_randomforest_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_ransac_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_ridge_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_sgd_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_svm_svr.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/regressor/act_xgboost_regressor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_cox.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_coxnet_survival_analysis.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_extra_survival_trees.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_fast_survival_svm.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_gradient_boosting_survival_analysis.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_random_survival_forest.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_survival_component_wise_gboost.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_survival_tree.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_survival_xgboost.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_weibull_aft.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/cache.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/candidate.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/core_dispatcher.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/data_type.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/dataset.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/decorators/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/decorators/all.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/decorators/is_step.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/decorators/runner.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/explanation.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/iaml_pipeline.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/logger.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/meta_explorer_step.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/meta_ordered_step.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/meta_partial_explorer_step.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/meta_singleton.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metastep.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metric_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/_classification.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/_survival_times.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/accuracy_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/balanced_accuracy_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/brier_score.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/classification_error_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/concordance_index_ipcw.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/concordance_index_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/f1_score_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/integrated_brier_score.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/integrated_brier_score_loss.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/mean_absolute_error_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/mean_squared_error_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/mean_squared_log_error_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/median_absolute_error_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/precision_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/r2_score_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/recall_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/roc_auc_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/specificity_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/specificity_multiclass_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/metrics/specificity_multilabel_metric.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/optimizers/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/optimizers/bayesian_optimizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/optimizers/genetic_optimizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/optimizers/optimizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/optimizers/random_optimizer.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/bar_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/box_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/class_prediction_error_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/classification_report_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/confusion_matrix_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/correlation_heatmap_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/cumulative_hazard_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/density_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/histogram_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/kaplan_meier_comparison_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/line_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/missingness_heatmap_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/outlier_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/pair_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/precision_recall_curve_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/prediction_error_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/qq_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/residual_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/roc_dynamique_curve_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/rocauc_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/shap_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/target_distribution_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/plots/violin_plot.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/predictor.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/reference.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/shared_cache.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/splitters/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/splitters/kfold_splitter.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/splitters/random_splitter.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/stack.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/anova_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/cardinality_ratio_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/category_cooccurrence_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/chi_square_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/coef_variation_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/correlation_with_target.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/count.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/data_type_summary_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/duplicate_row_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/effect_size_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/entropy_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/event_rate_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/grouped_mean_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/iqr_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/kurtosis.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/mad_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/mean.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/median_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/minmax.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/missing_rate_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/mode.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/most_frequent_ratio.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/outlier_count_iqr_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/quantile.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/range.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/rare_category_rate.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/skewness.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/stdev.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/summary_table_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/time_by_group_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/time_summary_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/top_k_value_counts.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/unique_count_statistic.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/value_counts.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/variance.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/statistics/violin.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/step_cache.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/step_wrapper.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/type_of_target.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/void_step.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/worker_manager.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/wrapper/__init__.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/wrapper/wrap_basic_gridsearch.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/wrapper/wrap_genetic_gridsearch.py +0 -0
- {pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/wrapper/wrap_iterative_gridsearch.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyIAML
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Integrated AutoML for Medical Labs: explainable pipelines for clinical research
|
|
5
5
|
Author-email: Rudy MERIEUX <rmerieux@chu-reims.fr>, Hugo RUELLET <hruellet@chu-reims.fr>, Robin BOURACHOT <rbourachot@chu-reims.fr>, Youssouf DAHLOUK <ydahlouk@chu-reims.fr>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -718,9 +718,12 @@ preprocessing, model search and evaluation into one workflow for classification,
|
|
|
718
718
|
regression and survival analysis on tabular data.
|
|
719
719
|
|
|
720
720
|
Researchers can inspect the steps of a selected pipeline, evaluate its predictions
|
|
721
|
-
and generate explanations to discuss with clinicians and data scientists.
|
|
722
|
-
|
|
723
|
-
|
|
721
|
+
and generate explanations to discuss with clinicians and data scientists.
|
|
722
|
+
IAML includes a broad set of built-in methods. **Go further with customization.**
|
|
723
|
+
Add your team's preprocessing steps, models, metrics, validation splitters
|
|
724
|
+
and search optimizers to adapt the workflow to your research domain.
|
|
725
|
+
These contributions can be shared and reused across studies.
|
|
726
|
+
The [extension guide](https://iias-research.github.io/iaml/adaptability.html) shows how to get started.
|
|
724
727
|
|
|
725
728
|
## Clinical research workflow
|
|
726
729
|
|
|
@@ -738,13 +741,13 @@ reporting a study and recording the settings needed to repeat an experiment.
|
|
|
738
741
|
|
|
739
742
|
## Installation
|
|
740
743
|
|
|
741
|
-
Use Python 3.10 or later
|
|
744
|
+
Use Python 3.10 or later:
|
|
742
745
|
|
|
743
746
|
```bash
|
|
744
|
-
python -m pip install
|
|
747
|
+
python -m pip install PyIAML
|
|
745
748
|
```
|
|
746
749
|
|
|
747
|
-
The distribution is named `PyIAML
|
|
750
|
+
The distribution is named `PyIAML`. The Python import is `iaml`.
|
|
748
751
|
|
|
749
752
|
## How to run
|
|
750
753
|
|
|
@@ -754,45 +757,37 @@ It uses a dataset bundled with scikit-learn, so no dataset download is needed.
|
|
|
754
757
|
```python
|
|
755
758
|
from sklearn.datasets import load_breast_cancer
|
|
756
759
|
from sklearn.model_selection import train_test_split
|
|
757
|
-
|
|
758
760
|
from iaml import IAML
|
|
759
761
|
|
|
760
|
-
|
|
761
|
-
def main():
|
|
762
|
+
if __name__ == "__main__":
|
|
762
763
|
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
|
|
763
764
|
X_train, X_test, y_train, y_test = train_test_split(
|
|
764
|
-
X, y,
|
|
765
|
+
X, y, stratify=y, random_state=42
|
|
765
766
|
)
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
predictions = best_candidate.predict(X_test)
|
|
772
|
-
scores = best_candidate.evaluate(X_test, y_test)
|
|
773
|
-
print("Predictions:", predictions[:5])
|
|
774
|
-
print("Test metrics:", scores)
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
if __name__ == "__main__":
|
|
778
|
-
main()
|
|
767
|
+
search = IAML(max_duration=30, max_workers=1)
|
|
768
|
+
search.fit(X_train, y_train)
|
|
769
|
+
chosen_model = search.chosen_candidate
|
|
770
|
+
print(chosen_model.evaluate(X_test, y_test))
|
|
779
771
|
```
|
|
780
772
|
|
|
781
|
-
`
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
773
|
+
`chosen_model` is the selected model, including its preprocessing.
|
|
774
|
+
`evaluate` scores it on the held-out test set. The dataset labels are `0` for
|
|
775
|
+
malignant and `1` for benign. Keep the `__main__` guard because training uses
|
|
776
|
+
multiprocessing. The example uses one worker and a 30-second search budget.
|
|
777
|
+
Final fitting can take additional time.
|
|
785
778
|
|
|
786
779
|
## Documentation
|
|
787
780
|
|
|
788
781
|
The [user guides](https://iias-research.github.io/iaml/) cover data preparation, model search, evaluation
|
|
789
782
|
and interpretation:
|
|
790
783
|
|
|
791
|
-
- [
|
|
792
|
-
- [
|
|
793
|
-
- [
|
|
794
|
-
- [
|
|
795
|
-
- [
|
|
784
|
+
- [Quick Start](https://iias-research.github.io/iaml/quick_start.html): install IAML and run an example.
|
|
785
|
+
- [01 / Build](https://iias-research.github.io/iaml/usage.html): prepare data and configure a search.
|
|
786
|
+
- [02 / Evaluate](https://iias-research.github.io/iaml/evaluation.html): assess predictions on held-out data.
|
|
787
|
+
- [03 / Explain](https://iias-research.github.io/iaml/explainability.html): inspect methods and interpret feature contributions.
|
|
788
|
+
- [Study reporting](https://iias-research.github.io/iaml/scientific.html): save outputs and record experiment settings.
|
|
789
|
+
- [Extending IAML](https://iias-research.github.io/iaml/adaptability.html): add reusable methods for your team's research.
|
|
790
|
+
- [Component availability](https://iias-research.github.io/iaml/component_status.html): explore the main component families and their API documentation.
|
|
796
791
|
|
|
797
792
|
## Credits
|
|
798
793
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyIAML
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Integrated AutoML for Medical Labs: explainable pipelines for clinical research
|
|
5
5
|
Author-email: Rudy MERIEUX <rmerieux@chu-reims.fr>, Hugo RUELLET <hruellet@chu-reims.fr>, Robin BOURACHOT <rbourachot@chu-reims.fr>, Youssouf DAHLOUK <ydahlouk@chu-reims.fr>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -718,9 +718,12 @@ preprocessing, model search and evaluation into one workflow for classification,
|
|
|
718
718
|
regression and survival analysis on tabular data.
|
|
719
719
|
|
|
720
720
|
Researchers can inspect the steps of a selected pipeline, evaluate its predictions
|
|
721
|
-
and generate explanations to discuss with clinicians and data scientists.
|
|
722
|
-
|
|
723
|
-
|
|
721
|
+
and generate explanations to discuss with clinicians and data scientists.
|
|
722
|
+
IAML includes a broad set of built-in methods. **Go further with customization.**
|
|
723
|
+
Add your team's preprocessing steps, models, metrics, validation splitters
|
|
724
|
+
and search optimizers to adapt the workflow to your research domain.
|
|
725
|
+
These contributions can be shared and reused across studies.
|
|
726
|
+
The [extension guide](https://iias-research.github.io/iaml/adaptability.html) shows how to get started.
|
|
724
727
|
|
|
725
728
|
## Clinical research workflow
|
|
726
729
|
|
|
@@ -738,13 +741,13 @@ reporting a study and recording the settings needed to repeat an experiment.
|
|
|
738
741
|
|
|
739
742
|
## Installation
|
|
740
743
|
|
|
741
|
-
Use Python 3.10 or later
|
|
744
|
+
Use Python 3.10 or later:
|
|
742
745
|
|
|
743
746
|
```bash
|
|
744
|
-
python -m pip install
|
|
747
|
+
python -m pip install PyIAML
|
|
745
748
|
```
|
|
746
749
|
|
|
747
|
-
The distribution is named `PyIAML
|
|
750
|
+
The distribution is named `PyIAML`. The Python import is `iaml`.
|
|
748
751
|
|
|
749
752
|
## How to run
|
|
750
753
|
|
|
@@ -754,45 +757,37 @@ It uses a dataset bundled with scikit-learn, so no dataset download is needed.
|
|
|
754
757
|
```python
|
|
755
758
|
from sklearn.datasets import load_breast_cancer
|
|
756
759
|
from sklearn.model_selection import train_test_split
|
|
757
|
-
|
|
758
760
|
from iaml import IAML
|
|
759
761
|
|
|
760
|
-
|
|
761
|
-
def main():
|
|
762
|
+
if __name__ == "__main__":
|
|
762
763
|
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
|
|
763
764
|
X_train, X_test, y_train, y_test = train_test_split(
|
|
764
|
-
X, y,
|
|
765
|
+
X, y, stratify=y, random_state=42
|
|
765
766
|
)
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
predictions = best_candidate.predict(X_test)
|
|
772
|
-
scores = best_candidate.evaluate(X_test, y_test)
|
|
773
|
-
print("Predictions:", predictions[:5])
|
|
774
|
-
print("Test metrics:", scores)
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
if __name__ == "__main__":
|
|
778
|
-
main()
|
|
767
|
+
search = IAML(max_duration=30, max_workers=1)
|
|
768
|
+
search.fit(X_train, y_train)
|
|
769
|
+
chosen_model = search.chosen_candidate
|
|
770
|
+
print(chosen_model.evaluate(X_test, y_test))
|
|
779
771
|
```
|
|
780
772
|
|
|
781
|
-
`
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
773
|
+
`chosen_model` is the selected model, including its preprocessing.
|
|
774
|
+
`evaluate` scores it on the held-out test set. The dataset labels are `0` for
|
|
775
|
+
malignant and `1` for benign. Keep the `__main__` guard because training uses
|
|
776
|
+
multiprocessing. The example uses one worker and a 30-second search budget.
|
|
777
|
+
Final fitting can take additional time.
|
|
785
778
|
|
|
786
779
|
## Documentation
|
|
787
780
|
|
|
788
781
|
The [user guides](https://iias-research.github.io/iaml/) cover data preparation, model search, evaluation
|
|
789
782
|
and interpretation:
|
|
790
783
|
|
|
791
|
-
- [
|
|
792
|
-
- [
|
|
793
|
-
- [
|
|
794
|
-
- [
|
|
795
|
-
- [
|
|
784
|
+
- [Quick Start](https://iias-research.github.io/iaml/quick_start.html): install IAML and run an example.
|
|
785
|
+
- [01 / Build](https://iias-research.github.io/iaml/usage.html): prepare data and configure a search.
|
|
786
|
+
- [02 / Evaluate](https://iias-research.github.io/iaml/evaluation.html): assess predictions on held-out data.
|
|
787
|
+
- [03 / Explain](https://iias-research.github.io/iaml/explainability.html): inspect methods and interpret feature contributions.
|
|
788
|
+
- [Study reporting](https://iias-research.github.io/iaml/scientific.html): save outputs and record experiment settings.
|
|
789
|
+
- [Extending IAML](https://iias-research.github.io/iaml/adaptability.html): add reusable methods for your team's research.
|
|
790
|
+
- [Component availability](https://iias-research.github.io/iaml/component_status.html): explore the main component families and their API documentation.
|
|
796
791
|
|
|
797
792
|
## Credits
|
|
798
793
|
|
|
@@ -6,9 +6,12 @@ preprocessing, model search and evaluation into one workflow for classification,
|
|
|
6
6
|
regression and survival analysis on tabular data.
|
|
7
7
|
|
|
8
8
|
Researchers can inspect the steps of a selected pipeline, evaluate its predictions
|
|
9
|
-
and generate explanations to discuss with clinicians and data scientists.
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
and generate explanations to discuss with clinicians and data scientists.
|
|
10
|
+
IAML includes a broad set of built-in methods. **Go further with customization.**
|
|
11
|
+
Add your team's preprocessing steps, models, metrics, validation splitters
|
|
12
|
+
and search optimizers to adapt the workflow to your research domain.
|
|
13
|
+
These contributions can be shared and reused across studies.
|
|
14
|
+
The [extension guide](https://iias-research.github.io/iaml/adaptability.html) shows how to get started.
|
|
12
15
|
|
|
13
16
|
## Clinical research workflow
|
|
14
17
|
|
|
@@ -26,13 +29,13 @@ reporting a study and recording the settings needed to repeat an experiment.
|
|
|
26
29
|
|
|
27
30
|
## Installation
|
|
28
31
|
|
|
29
|
-
Use Python 3.10 or later
|
|
32
|
+
Use Python 3.10 or later:
|
|
30
33
|
|
|
31
34
|
```bash
|
|
32
|
-
python -m pip install
|
|
35
|
+
python -m pip install PyIAML
|
|
33
36
|
```
|
|
34
37
|
|
|
35
|
-
The distribution is named `PyIAML
|
|
38
|
+
The distribution is named `PyIAML`. The Python import is `iaml`.
|
|
36
39
|
|
|
37
40
|
## How to run
|
|
38
41
|
|
|
@@ -42,45 +45,37 @@ It uses a dataset bundled with scikit-learn, so no dataset download is needed.
|
|
|
42
45
|
```python
|
|
43
46
|
from sklearn.datasets import load_breast_cancer
|
|
44
47
|
from sklearn.model_selection import train_test_split
|
|
45
|
-
|
|
46
48
|
from iaml import IAML
|
|
47
49
|
|
|
48
|
-
|
|
49
|
-
def main():
|
|
50
|
+
if __name__ == "__main__":
|
|
50
51
|
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
|
|
51
52
|
X_train, X_test, y_train, y_test = train_test_split(
|
|
52
|
-
X, y,
|
|
53
|
+
X, y, stratify=y, random_state=42
|
|
53
54
|
)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
predictions = best_candidate.predict(X_test)
|
|
60
|
-
scores = best_candidate.evaluate(X_test, y_test)
|
|
61
|
-
print("Predictions:", predictions[:5])
|
|
62
|
-
print("Test metrics:", scores)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if __name__ == "__main__":
|
|
66
|
-
main()
|
|
55
|
+
search = IAML(max_duration=30, max_workers=1)
|
|
56
|
+
search.fit(X_train, y_train)
|
|
57
|
+
chosen_model = search.chosen_candidate
|
|
58
|
+
print(chosen_model.evaluate(X_test, y_test))
|
|
67
59
|
```
|
|
68
60
|
|
|
69
|
-
`
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
61
|
+
`chosen_model` is the selected model, including its preprocessing.
|
|
62
|
+
`evaluate` scores it on the held-out test set. The dataset labels are `0` for
|
|
63
|
+
malignant and `1` for benign. Keep the `__main__` guard because training uses
|
|
64
|
+
multiprocessing. The example uses one worker and a 30-second search budget.
|
|
65
|
+
Final fitting can take additional time.
|
|
73
66
|
|
|
74
67
|
## Documentation
|
|
75
68
|
|
|
76
69
|
The [user guides](https://iias-research.github.io/iaml/) cover data preparation, model search, evaluation
|
|
77
70
|
and interpretation:
|
|
78
71
|
|
|
79
|
-
- [
|
|
80
|
-
- [
|
|
81
|
-
- [
|
|
82
|
-
- [
|
|
83
|
-
- [
|
|
72
|
+
- [Quick Start](https://iias-research.github.io/iaml/quick_start.html): install IAML and run an example.
|
|
73
|
+
- [01 / Build](https://iias-research.github.io/iaml/usage.html): prepare data and configure a search.
|
|
74
|
+
- [02 / Evaluate](https://iias-research.github.io/iaml/evaluation.html): assess predictions on held-out data.
|
|
75
|
+
- [03 / Explain](https://iias-research.github.io/iaml/explainability.html): inspect methods and interpret feature contributions.
|
|
76
|
+
- [Study reporting](https://iias-research.github.io/iaml/scientific.html): save outputs and record experiment settings.
|
|
77
|
+
- [Extending IAML](https://iias-research.github.io/iaml/adaptability.html): add reusable methods for your team's research.
|
|
78
|
+
- [Component availability](https://iias-research.github.io/iaml/component_status.html): explore the main component families and their API documentation.
|
|
84
79
|
|
|
85
80
|
## Credits
|
|
86
81
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "PyIAML"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.1"
|
|
4
4
|
authors = [
|
|
5
5
|
{ name="Rudy MERIEUX", email="rmerieux@chu-reims.fr" },
|
|
6
6
|
{ name="Hugo RUELLET", email="hruellet@chu-reims.fr" },
|
|
@@ -65,7 +65,7 @@ dev-dependencies = [
|
|
|
65
65
|
"ipywidgets>=8.1.5",
|
|
66
66
|
"pre-commit>=3.8.0",
|
|
67
67
|
"sphinx-autoapi>=3.3.3",
|
|
68
|
-
"
|
|
68
|
+
"furo>=2025.12.19",
|
|
69
69
|
]
|
|
70
70
|
|
|
71
71
|
[tool.uv.dependency-groups]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This prototype transforms y rather than X, recomputes the mapping on each call,
|
|
4
4
|
and cannot reverse predictions. It is incompatible with the pipeline transformer
|
|
5
|
-
contract and must remain outside automatic cleaning.
|
|
5
|
+
contract and must remain outside automatic cleaning.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import textwrap
|
|
@@ -35,7 +35,7 @@ class ActMICEForestImputer(Actionable):
|
|
|
35
35
|
"""[STEP] Impute missing values with MICE (miceforest/LightGBM).
|
|
36
36
|
|
|
37
37
|
Copies and serialized steps retain fitted state without rebuilding models.
|
|
38
|
-
Accessing ``kernel`` or transforming data restores a private kernel
|
|
38
|
+
Accessing ``kernel`` or transforming data restores a private kernel. Refitting
|
|
39
39
|
replaces that state directly.
|
|
40
40
|
"""
|
|
41
41
|
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_bad_quality_rows.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Experimental row filter, available only through an explicit module import.
|
|
2
2
|
|
|
3
3
|
Its missingness threshold, minimum sample policy and alignment of resampled data
|
|
4
|
-
need integration tests before automatic use.
|
|
4
|
+
need integration tests before automatic use.
|
|
5
5
|
"""
|
|
6
6
|
from typing import Any
|
|
7
7
|
import textwrap
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_polynomial_features.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Experimental polynomial expansion, available only through an explicit import.
|
|
2
2
|
|
|
3
3
|
Unbounded output dimensionality can exhaust memory during automatic exploration.
|
|
4
|
-
Kept outside the default preprocessing stage
|
|
4
|
+
Kept outside the default preprocessing stage.
|
|
5
5
|
"""
|
|
6
6
|
import textwrap
|
|
7
7
|
import pandas as pd
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/predictors/survival/act_aalen_additive_model.py
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Requires the optional, undeclared lifelines dependency. Parameter forwarding and
|
|
4
4
|
the time-by-sample hazard output do not implement IAML's predictor contract yet.
|
|
5
|
-
Excluded from automatic model selection
|
|
5
|
+
Excluded from automatic model selection.
|
|
6
6
|
"""
|
|
7
7
|
import textwrap
|
|
8
8
|
from typing import Any
|
|
@@ -32,7 +32,7 @@ def hash_dataset(
|
|
|
32
32
|
|
|
33
33
|
Targets are positional, as in Dataset, so their pandas index is not used.
|
|
34
34
|
Serialization preserves their shape and dtype, including structured survival
|
|
35
|
-
targets. This only serializes local inputs
|
|
35
|
+
targets. This only serializes local inputs. No pickle is loaded here.
|
|
36
36
|
"""
|
|
37
37
|
payload = (
|
|
38
38
|
"iaml-dataset-v2",
|
|
@@ -61,7 +61,7 @@ class IAML: # pylint: disable=too-many-instance-attributes
|
|
|
61
61
|
:param int, optional max_workers: Maximum parallel workers. Default to cpu count.
|
|
62
62
|
:param int, optional max_stage_duration: Maximum duration of a stage. Default to None.
|
|
63
63
|
:param callable, optional splitter: Split function to use. Default to kfold_splitter.
|
|
64
|
-
:param int, optional max_duration: Search time budget
|
|
64
|
+
:param int, optional max_duration: Search time budget. -1 means no global limit.
|
|
65
65
|
:param int | str, optional time_before_sample_use: Time before we use sampled data.
|
|
66
66
|
Default to None.
|
|
67
67
|
:param bool, optional preprocessor: Use preprocessor. Default to False.
|
|
@@ -73,7 +73,7 @@ class IAML: # pylint: disable=too-many-instance-attributes
|
|
|
73
73
|
:param bool, optional keep_training_history: If True, store detailed CV audit records for
|
|
74
74
|
every evaluated pipeline. Default to False.
|
|
75
75
|
:param bool, optional refit_on_sample: Reuse the initial train_on_n_samples sample for
|
|
76
|
-
final fitting. If False, refit on all input rows.
|
|
76
|
+
final fitting. If False, refit on all input rows. Defaults to True. Has no effect
|
|
77
77
|
without a positive train_on_n_samples limit.
|
|
78
78
|
:param initial_preprocessor: Optional clonable sklearn transformer. It must return
|
|
79
79
|
a numeric DataFrame with unchanged rows and index. Every generated pipeline,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The current implementation passes survival probabilities where risk scores are
|
|
4
4
|
required, and its time grid and aggregation need validation. Importing this module
|
|
5
|
-
must not activate the metric in AutoML.
|
|
5
|
+
must not activate the metric in AutoML.
|
|
6
6
|
"""
|
|
7
7
|
from typing import Any
|
|
8
8
|
import textwrap
|
|
@@ -20,7 +20,7 @@ class SklearnPreprocessor(Step):
|
|
|
20
20
|
on each supplied Dataset.X, without target values or patient-group columns.
|
|
21
21
|
``transformer_`` is the fitted clone, retained for prediction/provenance and
|
|
22
22
|
serialization. The template and its hyperparameters participate in cache
|
|
23
|
-
keys
|
|
23
|
+
keys. The learned vocabulary does not alter the pipeline configuration.
|
|
24
24
|
|
|
25
25
|
A DataFrame output is required so column names and row alignment remain
|
|
26
26
|
explicit. This step is deliberately not registered under a search tag: it
|
|
@@ -237,7 +237,7 @@ class Step: # pylint: disable=too-many-public-methods, too-many-instance-attribu
|
|
|
237
237
|
|
|
238
238
|
:param bool default: Default behavior when trying to passthrough configurations from
|
|
239
239
|
one step which have no "passthrough" key. When "passthrough" is undefined and "default"
|
|
240
|
-
is set to False, the configuration will not be returned
|
|
240
|
+
is set to False, the configuration will not be returned. Otherwise, the default value
|
|
241
241
|
for that configuration will be returned.
|
|
242
242
|
:return: A dictionary view of the configuration with parameters' names and values.
|
|
243
243
|
"""
|
|
@@ -437,7 +437,7 @@ class TimedPoolExecutor: # pylint: disable=too-many-instance-attributes
|
|
|
437
437
|
"""Wait until all the task are finished or timeout is reach
|
|
438
438
|
If timeout is reach -> Remaining tasks will be kill without sending results
|
|
439
439
|
|
|
440
|
-
:param float timeout: Maximum seconds to wait
|
|
440
|
+
:param float timeout: Maximum seconds to wait. None waits without a timeout.
|
|
441
441
|
:param bool, optional reset: Reset the instance after join(). Defaults to True.
|
|
442
442
|
|
|
443
443
|
:return: All finished task results
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/cleaning/act_drop_high_cardinality_categorical.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_date_converter.py
RENAMED
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_duplicate_rows.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_drop_id_like_columns.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_precleaning/act_sentinel_to_na_n.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_k_bins_discretizer.py
RENAMED
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_k_means_features.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_log_transformer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_power_transformer.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_rbf_sampler.py
RENAMED
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_select_percentile.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyiaml-1.0.0 → pyiaml-1.0.1}/src/iaml/actionables/features_preprocessing/act_truncated_svd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|