nkululeko 0.88.12__tar.gz → 0.89.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.
Files changed (167) hide show
  1. {nkululeko-0.88.12 → nkululeko-0.89.1}/CHANGELOG.md +12 -3
  2. {nkululeko-0.88.12/nkululeko.egg-info → nkululeko-0.89.1}/PKG-INFO +18 -12
  3. {nkululeko-0.88.12 → nkululeko-0.89.1}/README.md +5 -8
  4. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/constants.py +1 -1
  5. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/ensemble.py +9 -1
  6. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_analyser.py +7 -4
  7. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_tree.py +3 -1
  8. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/reporter.py +18 -0
  9. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/utils/util.py +1 -1
  10. {nkululeko-0.88.12 → nkululeko-0.89.1/nkululeko.egg-info}/PKG-INFO +18 -12
  11. {nkululeko-0.88.12 → nkululeko-0.89.1}/LICENSE +0 -0
  12. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/aesdd/process_database.py +0 -0
  13. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/androids/process_database.py +0 -0
  14. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/ased/process_database.py +0 -0
  15. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/asvp-esd/process_database.py +0 -0
  16. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/baved/process_database.py +0 -0
  17. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/cafe/process_database.py +0 -0
  18. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/clac/process_database.py +0 -0
  19. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/cmu-mosei/process_database.py +0 -0
  20. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/demos/process_database.py +0 -0
  21. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/ekorpus/process_database.py +0 -0
  22. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emns/process_database.py +0 -0
  23. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emofilm/convert_to_16k.py +0 -0
  24. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emofilm/process_database.py +0 -0
  25. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emorynlp/process_database.py +0 -0
  26. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emov-db/process_database.py +0 -0
  27. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emovo/process_database.py +0 -0
  28. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/emozionalmente/create.py +0 -0
  29. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/enterface/process_database.py +0 -0
  30. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/esd/process_database.py +0 -0
  31. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/gerparas/process_database.py +0 -0
  32. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/iemocap/process_database.py +0 -0
  33. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/jl/process_database.py +0 -0
  34. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/jtes/process_database.py +0 -0
  35. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/meld/process_database.py +0 -0
  36. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/mesd/process_database.py +0 -0
  37. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/mess/process_database.py +0 -0
  38. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/mlendsnd/process_database.py +0 -0
  39. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/msp-improv/process_database2.py +0 -0
  40. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/msp-podcast/process_database.py +0 -0
  41. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/oreau2/process_database.py +0 -0
  42. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/portuguese/process_database.py +0 -0
  43. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/ravdess/process_database.py +0 -0
  44. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/ravdess/process_database_speaker.py +0 -0
  45. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/savee/process_database.py +0 -0
  46. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/shemo/process_database.py +0 -0
  47. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/subesco/process_database.py +0 -0
  48. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/tess/process_database.py +0 -0
  49. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/thorsten-emotional/process_database.py +0 -0
  50. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/urdu/process_database.py +0 -0
  51. {nkululeko-0.88.12 → nkululeko-0.89.1}/data/vivae/process_database.py +0 -0
  52. {nkululeko-0.88.12 → nkululeko-0.89.1}/docs/source/conf.py +0 -0
  53. {nkululeko-0.88.12 → nkululeko-0.89.1}/meta/demos/demo_best_model.py +0 -0
  54. {nkululeko-0.88.12 → nkululeko-0.89.1}/meta/demos/my_experiment.py +0 -0
  55. {nkululeko-0.88.12 → nkululeko-0.89.1}/meta/demos/my_experiment_local.py +0 -0
  56. {nkululeko-0.88.12 → nkululeko-0.89.1}/meta/demos/plot_faster_anim.py +0 -0
  57. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/__init__.py +0 -0
  58. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/aug_train.py +0 -0
  59. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/augment.py +0 -0
  60. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/augmenting/__init__.py +0 -0
  61. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/augmenting/augmenter.py +0 -0
  62. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/augmenting/randomsplicer.py +0 -0
  63. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/augmenting/randomsplicing.py +0 -0
  64. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/augmenting/resampler.py +0 -0
  65. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/__init__.py +0 -0
  66. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_age.py +0 -0
  67. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_arousal.py +0 -0
  68. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_dominance.py +0 -0
  69. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_gender.py +0 -0
  70. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_mos.py +0 -0
  71. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_pesq.py +0 -0
  72. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_sdr.py +0 -0
  73. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_snr.py +0 -0
  74. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_stoi.py +0 -0
  75. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/ap_valence.py +0 -0
  76. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/autopredict/estimate_snr.py +0 -0
  77. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/cacheddataset.py +0 -0
  78. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/data/__init__.py +0 -0
  79. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/data/dataset.py +0 -0
  80. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/data/dataset_csv.py +0 -0
  81. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/demo.py +0 -0
  82. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/demo_feats.py +0 -0
  83. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/demo_predictor.py +0 -0
  84. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/experiment.py +0 -0
  85. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/explore.py +0 -0
  86. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/export.py +0 -0
  87. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/__init__.py +0 -0
  88. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_agender.py +0 -0
  89. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_agender_agender.py +0 -0
  90. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_ast.py +0 -0
  91. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_auddim.py +0 -0
  92. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_audmodel.py +0 -0
  93. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_clap.py +0 -0
  94. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_hubert.py +0 -0
  95. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_import.py +0 -0
  96. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_mld.py +0 -0
  97. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_mos.py +0 -0
  98. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_opensmile.py +0 -0
  99. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_oxbow.py +0 -0
  100. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_praat.py +0 -0
  101. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_snr.py +0 -0
  102. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_spectra.py +0 -0
  103. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_spkrec.py +0 -0
  104. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_squim.py +0 -0
  105. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_trill.py +0 -0
  106. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_wav2vec2.py +0 -0
  107. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_wavlm.py +0 -0
  108. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feats_whisper.py +0 -0
  109. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/featureset.py +0 -0
  110. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feat_extract/feinberg_praat.py +0 -0
  111. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/feature_extractor.py +0 -0
  112. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/file_checker.py +0 -0
  113. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/filter_data.py +0 -0
  114. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/glob_conf.py +0 -0
  115. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/losses/__init__.py +0 -0
  116. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/losses/loss_ccc.py +0 -0
  117. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/losses/loss_softf1loss.py +0 -0
  118. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/modelrunner.py +0 -0
  119. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/__init__.py +0 -0
  120. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model.py +0 -0
  121. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_bayes.py +0 -0
  122. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_cnn.py +0 -0
  123. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_gmm.py +0 -0
  124. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_knn.py +0 -0
  125. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_knn_reg.py +0 -0
  126. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_lin_reg.py +0 -0
  127. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_mlp.py +0 -0
  128. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_mlp_regression.py +0 -0
  129. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_svm.py +0 -0
  130. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_svr.py +0 -0
  131. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_tree_reg.py +0 -0
  132. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_tuned.py +0 -0
  133. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_xgb.py +0 -0
  134. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/models/model_xgr.py +0 -0
  135. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/multidb.py +0 -0
  136. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/nkuluflag.py +0 -0
  137. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/nkululeko.py +0 -0
  138. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/plots.py +0 -0
  139. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/predict.py +0 -0
  140. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/__init__.py +0 -0
  141. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/defines.py +0 -0
  142. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/latex_writer.py +0 -0
  143. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/report.py +0 -0
  144. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/report_item.py +0 -0
  145. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/reporting/result.py +0 -0
  146. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/resample.py +0 -0
  147. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/runmanager.py +0 -0
  148. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/scaler.py +0 -0
  149. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/segment.py +0 -0
  150. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/segmenting/__init__.py +0 -0
  151. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/segmenting/seg_inaspeechsegmenter.py +0 -0
  152. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/segmenting/seg_silero.py +0 -0
  153. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/syllable_nuclei.py +0 -0
  154. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/test.py +0 -0
  155. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/test_predictor.py +0 -0
  156. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/test_pretrain.py +0 -0
  157. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/utils/__init__.py +0 -0
  158. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/utils/files.py +0 -0
  159. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko/utils/stats.py +0 -0
  160. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko.egg-info/SOURCES.txt +0 -0
  161. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko.egg-info/dependency_links.txt +0 -0
  162. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko.egg-info/requires.txt +0 -0
  163. {nkululeko-0.88.12 → nkululeko-0.89.1}/nkululeko.egg-info/top_level.txt +0 -0
  164. {nkululeko-0.88.12 → nkululeko-0.89.1}/pyproject.toml +0 -0
  165. {nkululeko-0.88.12 → nkululeko-0.89.1}/setup.cfg +0 -0
  166. {nkululeko-0.88.12 → nkululeko-0.89.1}/setup.py +0 -0
  167. {nkululeko-0.88.12 → nkululeko-0.89.1}/venv/bin/activate_this.py +0 -0
@@ -1,8 +1,17 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- Version 0.88.12
4
+ Version 0.89.1
5
+ --------------
6
+ * print and save result of feature importance
7
+
8
+ Version 0.89.0
5
9
  --------------
10
+ * added Roc plots and classification report on Debug
11
+
12
+
13
+ Version 0.88.12
14
+ ---------------
6
15
  * added n_jobs for sklearn processing
7
16
  * re_named num_workers n_jobs
8
17
 
@@ -475,9 +484,9 @@ Version 0.66.3
475
484
 
476
485
  Version 0.66.2
477
486
  --------------
478
- * enabled data-pathes with quotes
487
+ * enabled data-pacthes with quotes
479
488
  * enabled missing category labels
480
- * used tgdm for progress display
489
+ * used tqdm for progress display
481
490
 
482
491
  Version 0.66.1
483
492
  --------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.88.12
3
+ Version: 0.89.1
4
4
  Summary: Machine learning audio prediction experiments based on templates
5
5
  Home-page: https://github.com/felixbur/nkululeko
6
6
  Author: Felix Burkhardt
@@ -204,7 +204,7 @@ All of them take *--config <my_config.ini>* as an argument.
204
204
  * *configurations*: which experiments to combine
205
205
  * *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
206
206
  * *--threshold*: uncertainty threshold (1.0 means no threshold)
207
- * *--weightes*: weights for performance_weighted method (could be from previous UAR, ACC)
207
+ * *--weights*: weights for performance_weighted method (could be from previous UAR, ACC)
208
208
  * *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
209
209
  * *--no_labels* (optional): indicate that no ground truth is given
210
210
  * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
@@ -220,14 +220,11 @@ All of them take *--config <my_config.ini>* as an argument.
220
220
  * **nkululeko.predict**: [predict features](http://blog.syntheticspeech.de/2023/08/16/nkululeko-how-to-predict-labels-for-your-data-from-existing-models-and-check-them/) like SNR, MOS, arousal/valence, age/gender, with DNN models
221
221
  * **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
222
222
  * **nkululeko.resample**: check on all [sampling rates and change](http://blog.syntheticspeech.de/2023/08/31/how-to-fix-different-sampling-rates-in-a-dataset-with-nkululeko/) to 16kHz
223
- * **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command-line.
224
- * usage: nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET]
225
- [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
226
-
227
-
228
-
229
-
223
+ * **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command-line. Usage:
230
224
 
225
+ ```bash
226
+ $ python -m nkululeko.nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET] [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
227
+ ```
231
228
 
232
229
  There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
233
230
  * [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
@@ -359,8 +356,17 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
359
356
  Changelog
360
357
  =========
361
358
 
362
- Version 0.88.12
359
+ Version 0.89.1
363
360
  --------------
361
+ * print and save result of feature importance
362
+
363
+ Version 0.89.0
364
+ --------------
365
+ * added Roc plots and classification report on Debug
366
+
367
+
368
+ Version 0.88.12
369
+ ---------------
364
370
  * added n_jobs for sklearn processing
365
371
  * re_named num_workers n_jobs
366
372
 
@@ -833,9 +839,9 @@ Version 0.66.3
833
839
 
834
840
  Version 0.66.2
835
841
  --------------
836
- * enabled data-pathes with quotes
842
+ * enabled data-pacthes with quotes
837
843
  * enabled missing category labels
838
- * used tgdm for progress display
844
+ * used tqdm for progress display
839
845
 
840
846
  Version 0.66.1
841
847
  --------------
@@ -160,7 +160,7 @@ All of them take *--config <my_config.ini>* as an argument.
160
160
  * *configurations*: which experiments to combine
161
161
  * *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
162
162
  * *--threshold*: uncertainty threshold (1.0 means no threshold)
163
- * *--weightes*: weights for performance_weighted method (could be from previous UAR, ACC)
163
+ * *--weights*: weights for performance_weighted method (could be from previous UAR, ACC)
164
164
  * *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
165
165
  * *--no_labels* (optional): indicate that no ground truth is given
166
166
  * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
@@ -176,14 +176,11 @@ All of them take *--config <my_config.ini>* as an argument.
176
176
  * **nkululeko.predict**: [predict features](http://blog.syntheticspeech.de/2023/08/16/nkululeko-how-to-predict-labels-for-your-data-from-existing-models-and-check-them/) like SNR, MOS, arousal/valence, age/gender, with DNN models
177
177
  * **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
178
178
  * **nkululeko.resample**: check on all [sampling rates and change](http://blog.syntheticspeech.de/2023/08/31/how-to-fix-different-sampling-rates-in-a-dataset-with-nkululeko/) to 16kHz
179
- * **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command-line.
180
- * usage: nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET]
181
- [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
182
-
183
-
184
-
185
-
179
+ * **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command-line. Usage:
186
180
 
181
+ ```bash
182
+ $ python -m nkululeko.nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET] [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
183
+ ```
187
184
 
188
185
  There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
189
186
  * [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
@@ -1,2 +1,2 @@
1
- VERSION="0.88.12"
1
+ VERSION="0.89.1"
2
2
  SAMPLING_RATE = 16000
@@ -26,7 +26,11 @@ from pathlib import Path
26
26
 
27
27
  import numpy as np
28
28
  import pandas as pd
29
- from sklearn.metrics import balanced_accuracy_score
29
+ from sklearn.metrics import(
30
+ balanced_accuracy_score,
31
+ classification_report,
32
+ f1_score
33
+ )
30
34
 
31
35
  from nkululeko.constants import VERSION
32
36
  from nkululeko.experiment import Experiment
@@ -284,6 +288,10 @@ def ensemble_predictions(
284
288
  predicted = ensemble_preds["predicted"]
285
289
  uar = balanced_accuracy_score(truth, predicted)
286
290
  acc = (truth == predicted).mean()
291
+ # print classification report
292
+ Util("ensemble").debug(f"\n {classification_report(truth, predicted)}")
293
+ # f1 = f1_score(truth, predicted, pos_label='p')
294
+ # Util("ensemble").debug(f"F1: {f1:.3f}")
287
295
  Util("ensemble").debug(f"{method}: UAR: {uar:.3f}, ACC: {acc:.3f}")
288
296
 
289
297
  return ensemble_preds
@@ -139,7 +139,7 @@ class FeatureAnalyser:
139
139
  elif model_s == "svm":
140
140
  from sklearn.svm import SVC
141
141
 
142
- c = float(self.util.config_val("MODEL", "C_val", "0.001"))
142
+ c = float(self.util.config_val("MODEL", "C_val", "1.0"))
143
143
  model = SVC(kernel="linear", C=c, gamma="scale")
144
144
  result_importances[model_s] = self._get_importance(
145
145
  model, permutation
@@ -205,7 +205,7 @@ class FeatureAnalyser:
205
205
  model, permutation
206
206
  )
207
207
  elif model_s == "xgr":
208
- from xgboost import XGBClassifier
208
+ from xgboost import XGBRegressor
209
209
 
210
210
  model = XGBRegressor()
211
211
  result_importances[model_s] = self._get_importance(
@@ -270,12 +270,14 @@ class FeatureAnalyser:
270
270
  )
271
271
  )
272
272
 
273
+ # print feature importance values to file and debug and save to result
274
+ self.util.debug(f"Importance features from {model_name}: features = \n{df_imp['feats'].values.tolist()}")
273
275
  # result file
274
276
  res_dir = self.util.get_path("res_dir")
275
277
  filename = f"_EXPL_{model_name}"
276
278
  if permutation:
277
279
  filename += "_perm"
278
- filename = f"{res_dir}{self.util.get_exp_name(only_data=True)}{filename}_{model_name}.txt"
280
+ filename = f"{res_dir}{self.util.get_exp_name(only_data=True)}{filename}_{max_feat_num}_fi.txt"
279
281
  with open(filename, "w") as text_file:
280
282
  text_file.write(
281
283
  "features in order of decreasing importance according to model"
@@ -283,7 +285,8 @@ class FeatureAnalyser:
283
285
  )
284
286
 
285
287
  df_imp.to_csv(filename, mode="a")
286
-
288
+ self.util.debug(f"Saved feature importance values to {filename}")
289
+
287
290
  # check if feature distributions should be plotted
288
291
  plot_feats = self.util.config_val("EXPL", "feature_distributions", False)
289
292
  if plot_feats:
@@ -12,4 +12,6 @@ class Tree_model(Model):
12
12
  def __init__(self, df_train, df_test, feats_train, feats_test):
13
13
  super().__init__(df_train, df_test, feats_train, feats_test)
14
14
  self.name = "tree"
15
- self.clf = DecisionTreeClassifier() # set up the classifier
15
+ self.clf = DecisionTreeClassifier(
16
+ random_state=42
17
+ ) # set up the classifier
@@ -27,6 +27,7 @@ from sklearn.metrics import (
27
27
  r2_score,
28
28
  roc_auc_score,
29
29
  roc_curve,
30
+ RocCurveDisplay,
30
31
  )
31
32
 
32
33
  import nkululeko.glob_conf as glob_conf
@@ -75,6 +76,7 @@ class Reporter:
75
76
  self.result = Result(0, 0, 0, 0, "unknown")
76
77
  self.run = run
77
78
  self.epoch = epoch
79
+ self.model_type = self.util.get_model_type()
78
80
  self._set_metric()
79
81
  self.filenameadd = ""
80
82
  self.cont_to_cat = False
@@ -387,6 +389,7 @@ class Reporter:
387
389
  epoch = self.epoch
388
390
  """Print all evaluation values to text file."""
389
391
  res_dir = self.util.get_path("res_dir")
392
+ fig_dir = self.util.get_path("fig_dir")
390
393
  file_name = f"{res_dir}{self.util.get_exp_name()}_{epoch}{self.filenameadd}.txt"
391
394
  if self.util.exp_is_classification():
392
395
  labels = glob_conf.labels
@@ -397,6 +400,10 @@ class Reporter:
397
400
  target_names=labels,
398
401
  output_dict=True,
399
402
  )
403
+ # print classifcation report in console
404
+ self.util.debug(
405
+ f"\n {classification_report(self.truths, self.preds, target_names=labels)}"
406
+ )
400
407
  except ValueError as e:
401
408
  self.util.debug(
402
409
  "Reporter: caught a ValueError when trying to get"
@@ -415,6 +422,17 @@ class Reporter:
415
422
  if len(np.unique(self.truths)) == 2:
416
423
  fpr, tpr, _ = roc_curve(self.truths, self.preds)
417
424
  auc_score = auc(fpr, tpr)
425
+ display = RocCurveDisplay(
426
+ fpr=fpr,
427
+ tpr=tpr,
428
+ roc_auc=auc_score,
429
+ estimator_name=f"{self.model_type} estimator",
430
+ )
431
+ # save plot
432
+ plot_path = f"{fig_dir}{self.util.get_exp_name()}_{epoch}{self.filenameadd}_roc.{self.format}"
433
+ display.plot(ax=None)
434
+ plt.savefig(plot_path)
435
+ self.util.debug(f"Saved ROC curve to {plot_path}")
418
436
  pauc_score = roc_auc_score(self.truths, self.preds, max_fpr=0.1)
419
437
  auc_pauc = f"auc: {auc_score:.3f}, pauc: {pauc_score:.3f} from epoch: {epoch}"
420
438
  self.util.debug(auc_pauc)
@@ -175,7 +175,7 @@ class Util:
175
175
  """Get the experiment directory."""
176
176
  root = os.path.join(self.config["EXP"]["root"], "")
177
177
  name = self.config["EXP"]["name"]
178
- dir_name = f"{root}{name}"
178
+ dir_name = f"{root}/{name}"
179
179
  audeer.mkdir(dir_name)
180
180
  return dir_name
181
181
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.88.12
3
+ Version: 0.89.1
4
4
  Summary: Machine learning audio prediction experiments based on templates
5
5
  Home-page: https://github.com/felixbur/nkululeko
6
6
  Author: Felix Burkhardt
@@ -204,7 +204,7 @@ All of them take *--config <my_config.ini>* as an argument.
204
204
  * *configurations*: which experiments to combine
205
205
  * *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
206
206
  * *--threshold*: uncertainty threshold (1.0 means no threshold)
207
- * *--weightes*: weights for performance_weighted method (could be from previous UAR, ACC)
207
+ * *--weights*: weights for performance_weighted method (could be from previous UAR, ACC)
208
208
  * *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
209
209
  * *--no_labels* (optional): indicate that no ground truth is given
210
210
  * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
@@ -220,14 +220,11 @@ All of them take *--config <my_config.ini>* as an argument.
220
220
  * **nkululeko.predict**: [predict features](http://blog.syntheticspeech.de/2023/08/16/nkululeko-how-to-predict-labels-for-your-data-from-existing-models-and-check-them/) like SNR, MOS, arousal/valence, age/gender, with DNN models
221
221
  * **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
222
222
  * **nkululeko.resample**: check on all [sampling rates and change](http://blog.syntheticspeech.de/2023/08/31/how-to-fix-different-sampling-rates-in-a-dataset-with-nkululeko/) to 16kHz
223
- * **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command-line.
224
- * usage: nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET]
225
- [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
226
-
227
-
228
-
229
-
223
+ * **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command-line. Usage:
230
224
 
225
+ ```bash
226
+ $ python -m nkululeko.nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET] [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
227
+ ```
231
228
 
232
229
  There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
233
230
  * [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
@@ -359,8 +356,17 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
359
356
  Changelog
360
357
  =========
361
358
 
362
- Version 0.88.12
359
+ Version 0.89.1
363
360
  --------------
361
+ * print and save result of feature importance
362
+
363
+ Version 0.89.0
364
+ --------------
365
+ * added Roc plots and classification report on Debug
366
+
367
+
368
+ Version 0.88.12
369
+ ---------------
364
370
  * added n_jobs for sklearn processing
365
371
  * re_named num_workers n_jobs
366
372
 
@@ -833,9 +839,9 @@ Version 0.66.3
833
839
 
834
840
  Version 0.66.2
835
841
  --------------
836
- * enabled data-pathes with quotes
842
+ * enabled data-pacthes with quotes
837
843
  * enabled missing category labels
838
- * used tgdm for progress display
844
+ * used tqdm for progress display
839
845
 
840
846
  Version 0.66.1
841
847
  --------------
File without changes
File without changes
File without changes
File without changes