File size: 132,237 Bytes
54da53e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Training a new model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**If the pretrained models do not give satisfactory performance on your data, it is easy to train your own classifier through SpikeInterface!**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of cores set to: 23\n"
]
}
],
"source": [
"from pathlib import Path\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import spikeinterface as si\n",
"import spikeinterface.extractors as se\n",
"import spikeinterface.postprocessing as spost\n",
"import spikeinterface.qualitymetrics as sqm\n",
"import os\n",
"from os import cpu_count\n",
"import json\n",
"# Set the number of CPU cores to be used globally - defaults to all cores -1\n",
"n_cores = cpu_count() -1\n",
"si.set_global_job_kwargs(n_jobs = n_cores)\n",
"print(f\"Number of cores set to: {n_cores}\")\n",
"\n",
"# SET OUTPUT FOLDER\n",
"output_folder = Path(r'E:\\spikeinterface_repository_stuff')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load data "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## First step: Loading the recording and sorting objects"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the tutorial, we are using simulated data to create recording and sorting objects."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"recording = si.generate_recording(num_channels=50, sampling_frequency=30000.,\n",
" durations=[30], set_probe=True)\n",
"# load your recoring depeding on the acquistion software you used, for example:\n",
"# recording = se.read_spikeglx(recording_path, stream_name='imec0.ap')\n",
"\n",
"labelled_sorting = si.generate_sorting(num_units=100, sampling_frequency=30000., durations=[30],\n",
" firing_rates=15, refractory_period_ms=1.5)\n",
"# load your sorting depeding on the which spike sorter you used, for example:\n",
"# sorting = se.read_kilosort(folder_path)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 2: Create a SortingAnalyzer\n",
"\n",
"Create a SpikeInterface SortingAnalyzer object. In this example, we use simulated data and generate random labels for the units, which serve as our target for training.\n",
"\n",
"Important: The labels generated here are random, so the model's performance will be at chance level. \n",
"\n",
"**For real applications, replace this with your own data and curated labels to achieve meaningful results.**\n",
"\n",
"To know more about sorting analyzer, please refer to : https://spikeinterface.readthedocs.io/en/latest/modules/postprocessing.html\n",
"\n",
"If you have already have WaveformExtractor from previous run, you can use it to create a SortingAnalyzer. \n",
"Please refer to: https://spikeinterface.readthedocs.io/en/latest/tutorials/waveform_extractor_to_sorting_analyzer.html"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"analyzer = si.create_sorting_analyzer(sorting = labelled_sorting, recording = recording, sparse = True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 3: Compute quality metrics\n",
"Compute metrics from multiple SortingAnalyzer objects (each corresponding to a different recording).\n",
"Pass the metrics as a list to the model training function."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# Defines a function to compute all analyzer properties and quality metrics\n",
"# Note: this can be a time-consuming step, especially computing PCA-based metrics for long recordings\n",
"\n",
"def compute_all_metrics(analyzer):\n",
"\n",
" # Compute required extensions for quality metrics\n",
" analyzer.compute({\n",
"\t'noise_levels': {},\n",
"\t'random_spikes': {'max_spikes_per_unit': 1_000},\n",
"\t'templates': {'ms_before': 1.5, 'ms_after': 3.5},\n",
"\t'spike_amplitudes': {},\n",
"\t'waveforms': {},\n",
"\t'principal_components': {},\n",
"\t'spike_locations': {},\n",
"\t'unit_locations': {},\n",
"\t})\n",
"\n",
" # Compute all available quality metrics\n",
" analyzer.compute(\"quality_metrics\", metric_names = sqm.get_quality_metric_list() + sqm.get_quality_pca_metric_list())\n",
" analyzer.compute(\"template_metrics\", metric_names = spost.get_template_metric_names())\n",
"\n",
"\t# Make metric dataframe\n",
" quality_metrics = analyzer.extensions['quality_metrics'].data[\"metrics\"]\n",
" template_metrics = analyzer.extensions['template_metrics'].data[\"metrics\"]\n",
" calculated_metrics = pd.concat([quality_metrics, template_metrics], axis = 1)\n",
"\n",
" return calculated_metrics"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Compute all metrics\n",
"metrics = compute_all_metrics(analyzer)\n",
"metrics.index.name = 'cluster_id'\n",
"\n",
"# save the analyzer\n",
"analyzer.save_as(folder=output_folder / 'sorting_analyzer', format=\"binary_folder\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Add labels on which your model will be trained on\n",
"\n",
"Provide a single list of labels in the same order as the metrics.\n",
"\n",
"Flexible Labeling:\n",
"The set of unique labels you use is upto your requirements. \n",
"\n",
"This approach can be used for any cluster categorization task, whether you're sorting clusters into custom categories 'true' or 'false', or using standard labels like 'good', 'mua', and 'noise'."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"labelled_analyzer = si.load_sorting_analyzer(folder= output_folder / 'sorting_analyzer', format=\"binary_folder\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"label_conversion = {'noise': 0, 'good': 1}\n",
"\n",
"# These are assigned randomly here but you could load these from phy 'cluster_group.tsv', from the 'quality' property of the sorting, or similar\n",
"human_labels = np.random.choice(list(label_conversion.values()), labelled_analyzer.get_num_units())\n",
"labelled_analyzer.sorting.set_property('quality', human_labels)\n",
"\n",
"labels = [human_labels.tolist(), human_labels.tolist()]\n",
"\n",
"# Get labels from phy sorting (if loaded) using:\n",
"# human_labels = unlabelled_analyzer.sorting.get_property('quality')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 4: Train with Your Data\n",
"Load your data and corresponding curation labels, and use them to train the classifier. Experiment to see how well the model performs on your data!\n",
"\n",
"Note: For better generalizability, you’ll likely need multiple labeled recordings for training. \n",
"The best model is saved as 'best_model.skops' file. You can use this file to predict labels on other recorindgs by auto_label_unit() "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\jain\\Documents\\Github_extend\\spikeinterface\\src\\spikeinterface\\curation\\train_manual_curation.py:168: UserWarning: No metric_names provided, using all metrics calculated by the analyzers\n",
" warnings.warn(\"No metric_names provided, using all metrics calculated by the analyzers\")\n"
]
},
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: black;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-1 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-1 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-1 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-1 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-1 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: block;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-1 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-1 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-1 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-1 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 1ex;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-1 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('imputer', SimpleImputer(strategy='median')),\n",
" ('scaler', StandardScaler()),\n",
" ('classifier',\n",
" RandomForestClassifier(class_weight='balanced_subsample',\n",
" min_samples_leaf=4, min_samples_split=3,\n",
" random_state=1127402010))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> Pipeline<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.pipeline.Pipeline.html\">?<span>Documentation for Pipeline</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>Pipeline(steps=[('imputer', SimpleImputer(strategy='median')),\n",
" ('scaler', StandardScaler()),\n",
" ('classifier',\n",
" RandomForestClassifier(class_weight='balanced_subsample',\n",
" min_samples_leaf=4, min_samples_split=3,\n",
" random_state=1127402010))])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> SimpleImputer<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.impute.SimpleImputer.html\">?<span>Documentation for SimpleImputer</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>SimpleImputer(strategy='median')</pre></div> </div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> StandardScaler<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> RandomForestClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.RandomForestClassifier.html\">?<span>Documentation for RandomForestClassifier</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestClassifier(class_weight='balanced_subsample', min_samples_leaf=4,\n",
" min_samples_split=3, random_state=1127402010)</pre></div> </div></div></div></div></div></div>"
],
"text/plain": [
"Pipeline(steps=[('imputer', SimpleImputer(strategy='median')),\n",
" ('scaler', StandardScaler()),\n",
" ('classifier',\n",
" RandomForestClassifier(class_weight='balanced_subsample',\n",
" min_samples_leaf=4, min_samples_split=3,\n",
" random_state=1127402010))])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load labelled metrics and train model\n",
"from spikeinterface.curation.train_manual_curation import train_model\n",
"\n",
"# We will use a list of two (identical) analyzers here, we would advise using more than one to improve model performance\n",
"trainer = train_model(mode = \"analyzers\",\n",
" labels = labels,\n",
" analyzers = [labelled_analyzer, labelled_analyzer],\n",
" output_folder = str(output_folder), # Optional, can be set to save the model and model_info.json file\n",
" metric_names = None, # Can be set to specify which metrics to use for training\n",
" imputation_strategies = None, # Default to all\n",
" scaling_techniques = None, # Default to all\n",
" classifiers = None, # Default to Random Forest only. Other classifiers you can try [ \"AdaBoostClassifier\",\"GradientBoostingClassifier\",\n",
" # \"LogisticRegression\",\"MLPClassifier\"]\n",
" seed = None)\n",
"\n",
"best_model = trainer.best_pipeline\n",
"best_model\n",
"\n",
" \n",
"# OR load model from file\n",
"# import skops.io\n",
"# pipeline_path = Path(output_folder) / Path(\"best_model_label.skops\")\n",
"# unknown_types = skops.io.get_untrusted_types(file=pipeline_path)\n",
"# best_model = skops.io.load(pipeline_path, trusted=unknown_types)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>classifier name</th>\n",
" <th>imputation_strategy</th>\n",
" <th>scaling_strategy</th>\n",
" <th>accuracy</th>\n",
" <th>precision</th>\n",
" <th>recall</th>\n",
" <th>model_id</th>\n",
" <th>best_params</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>RandomForestClassifier</td>\n",
" <td>median</td>\n",
" <td>StandardScaler()</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>0</td>\n",
" <td>OrderedDict([('class_weight', 'balanced_subsam...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>RandomForestClassifier</td>\n",
" <td>median</td>\n",
" <td>MinMaxScaler()</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>1</td>\n",
" <td>OrderedDict([('class_weight', 'balanced'), ('c...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>RandomForestClassifier</td>\n",
" <td>median</td>\n",
" <td>RobustScaler()</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>2</td>\n",
" <td>OrderedDict([('class_weight', 'balanced_subsam...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>RandomForestClassifier</td>\n",
" <td>most_frequent</td>\n",
" <td>StandardScaler()</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>3</td>\n",
" <td>OrderedDict([('class_weight', 'balanced_subsam...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>RandomForestClassifier</td>\n",
" <td>most_frequent</td>\n",
" <td>MinMaxScaler()</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>0.899</td>\n",
" <td>4</td>\n",
" <td>OrderedDict([('class_weight', 'balanced'), ('c...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" classifier name imputation_strategy scaling_strategy accuracy \\\n",
"0 RandomForestClassifier median StandardScaler() 0.899 \n",
"1 RandomForestClassifier median MinMaxScaler() 0.899 \n",
"2 RandomForestClassifier median RobustScaler() 0.899 \n",
"3 RandomForestClassifier most_frequent StandardScaler() 0.899 \n",
"4 RandomForestClassifier most_frequent MinMaxScaler() 0.899 \n",
"\n",
" precision recall model_id \\\n",
"0 0.899 0.899 0 \n",
"1 0.899 0.899 1 \n",
"2 0.899 0.899 2 \n",
"3 0.899 0.899 3 \n",
"4 0.899 0.899 4 \n",
"\n",
" best_params \n",
"0 OrderedDict([('class_weight', 'balanced_subsam... \n",
"1 OrderedDict([('class_weight', 'balanced'), ('c... \n",
"2 OrderedDict([('class_weight', 'balanced_subsam... \n",
"3 OrderedDict([('class_weight', 'balanced_subsam... \n",
"4 OrderedDict([('class_weight', 'balanced'), ('c... "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load and disply top 5 pipelines and accuracies\n",
"accuracies = pd.read_csv(Path(output_folder) / \"model_accuracies.csv\", index_col = 0)\n",
"accuracies.head()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAKaCAYAAADI04HlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gU5drH8V8KSUhCQm8xkIQmTap06RIQBPRIkxoEDkcpgqKgUgIIiFIFAQugCIKgIApSpSmIFAFBepcSeo1Skuf9gzd7siRgdnaH4vl+rmsuyOzsvc/WmfupXsYYIwAAAAAAYAvv+10AAAAAAAD+yUi8AQAAAACwEYk3AAAAAAA2IvEGAAAAAMBGJN4AAAAAANiIxBsAAAAAABuReAMAAAAAYCMSbwAAAAAAbETiDQAAAACAjUi8AQAAAACwEYk3AOChM3XqVHl5eaW69e7d25bHXLt2rQYMGKALFy7YEt8dSa/Hxo0b73dRLPvggw80derU+10MAABs4Xu/CwAAgFUDBw5UZGSk075ixYrZ8lhr165VbGys2rVrp4wZM9ryGP/LPvjgA2XNmlXt2rW730UBAMDjSLwBAA+tevXqqWzZsve7GG65evWqgoKC7ncx7pv4+HgFBgbe72IAAGArupoDAP6xvv/+ez3xxBMKCgpShgwZVL9+fe3YscPpmG3btqldu3aKiopSQECAcubMqfbt2+vs2bOOYwYMGKBevXpJkiIjIx3d2g8dOqRDhw7Jy8sr1W7SXl5eGjBggFMcLy8v/f7773r++eeVKVMmValSxXH7559/rjJlyih9+vTKnDmzmjdvrqNHj1p67u3atVNwcLCOHDmiBg0aKDg4WGFhYRo/frwk6bffflPNmjUVFBSkvHnzasaMGU73T+q+vnr1av373/9WlixZFBISojZt2uj8+fMpHu+DDz5Q0aJF5e/vr9y5c+ull15K0S2/evXqKlasmDZt2qSqVasqMDBQb7zxhiIiIrRjxw6tWrXK8dpWr15dknTu3Dm9+uqrKl68uIKDgxUSEqJ69epp69atTrFXrlwpLy8vffnll3r77bf1yCOPKCAgQLVq1dK+fftSlHf9+vV66qmnlClTJgUFBemxxx7TmDFjnI7ZtWuXnnvuOWXOnFkBAQEqW7as5s+f73TMjRs3FBsbqwIFCiggIEBZsmRRlSpVtHTp0jS9TwCA/w20eAMAHloXL17UmTNnnPZlzZpVkjRt2jS1bdtW0dHReueddxQfH68JEyaoSpUq+vXXXxURESFJWrp0qQ4cOKCYmBjlzJlTO3bs0IcffqgdO3bo559/lpeXl5599lnt2bNHX3zxhUaNGuV4jGzZsun06dMul7tJkyYqUKCAhgwZImOMJOntt99W37591bRpU3Xo0EGnT5/W+++/r6pVq+rXX3+11L09ISFB9erVU9WqVTV8+HBNnz5dXbp0UVBQkN588021bNlSzz77rCZOnKg2bdqoYsWKKbrud+nSRRkzZtSAAQO0e/duTZgwQYcPH3YkutKtCoXY2FjVrl1b//nPfxzHbdiwQT/99JPSpUvniHf27FnVq1dPzZs3V6tWrZQjRw5Vr15dXbt2VXBwsN58801JUo4cOSRJBw4c0Lx589SkSRNFRkYqLi5OkyZNUrVq1fT7778rd+7cTuUdNmyYvL299eqrr+rixYsaPny4WrZsqfXr1zuOWbp0qRo0aKBcuXKpe/fuypkzp3bu3KnvvvtO3bt3lyTt2LFDlStXVlhYmHr37q2goCB9+eWXaty4sb766is988wzjuc+dOhQdejQQeXKldOlS5e0ceNGbd68WU8++aTL7xkA4B/KAADwkJkyZYqRlOpmjDGXL182GTNmNB07dnS638mTJ01oaKjT/vj4+BTxv/jiCyPJrF692rHv3XffNZLMwYMHnY49ePCgkWSmTJmSIo4k079/f8ff/fv3N5JMixYtnI47dOiQ8fHxMW+//bbT/t9++834+vqm2H+n12PDhg2OfW3btjWSzJAhQxz7zp8/b9KnT2+8vLzMzJkzHft37dqVoqxJMcuUKWOuX7/u2D98+HAjyXzzzTfGGGNOnTpl/Pz8TJ06dUxCQoLjuHHjxhlJZvLkyY591apVM5LMxIkTUzyHokWLmmrVqqXY/9dffznFNebWa+7v728GDhzo2LdixQojyRQuXNhcu3bNsX/MmDFGkvntt9+MMcbcvHnTREZGmrx585rz5887xU1MTHT8v1atWqZ48eLmr7/+crq9UqVKpkCBAo59JUqUMPXr109RbgAAkqOrOQDgoTV+/HgtXbrUaZNutWheuHBBLVq00JkzZxybj4+PypcvrxUrVjhipE+f3vH/v/76S2fOnFGFChUkSZs3b7al3J07d3b6++uvv1ZiYqKaNm3qVN6cOXOqQIECTuV1VYcOHRz/z5gxowoVKqSgoCA1bdrUsb9QoULKmDGjDhw4kOL+nTp1cmqx/s9//iNfX18tXLhQkrRs2TJdv35dL7/8sry9/3tZ0bFjR4WEhGjBggVO8fz9/RUTE5Pm8vv7+zviJiQk6OzZswoODlahQoVSfX9iYmLk5+fn+PuJJ56QJMdz+/XXX3Xw4EG9/PLLKXoRJLXgnzt3Tj/88IOaNm2qy5cvO96Ps2fPKjo6Wnv37tWxY8ck3XpNd+zYob1796b5OQEA/vfQ1RwA8NAqV65cqpOrJSVBNWvWTPV+ISEhjv+fO3dOsbGxmjlzpk6dOuV03MWLFz1Y2v+6vTv33r17ZYxRgQIFUj0+eeLrioCAAGXLls1pX2hoqB555BFHkpl8f2pjt28vU3BwsHLlyqVDhw5Jkg4fPizpVvKenJ+fn6Kiohy3JwkLC3NKjP9OYmKixowZow8++EAHDx5UQkKC47YsWbKkOD5PnjxOf2fKlEmSHM9t//79ku4++/2+fftkjFHfvn3Vt2/fVI85deqUwsLCNHDgQDVq1EgFCxZUsWLFVLduXbVu3VqPPfZYmp8jAOCfj8QbAPCPk5iYKOnWOO+cOXOmuN3X97+nv6ZNm2rt2rXq1auXSpYsqeDgYCUmJqpu3bqOOHdzewKbJHmCeLvkrexJ5fXy8tL3338vHx+fFMcHBwf/bTlSk1qsu+03/z/e3E63P/e/M2TIEPXt21ft27fXoEGDlDlzZnl7e+vll19O9f3xxHNLivvqq68qOjo61WPy588vSapatar279+vb775RkuWLNHHH3+sUaNGaeLEiU69DQAA/9tIvAEA/zj58uWTJGXPnl21a9e+43Hnz5/X8uXLFRsbq379+jn2p9Zt+E4JdlKL6u0zeN/e0vt35TXGKDIyUgULFkzz/e6FvXv3qkaNGo6/r1y5ohMnTuipp56SJOXNm1eStHv3bkVFRTmOu379ug4ePHjX1z+5O72+c+bMUY0aNfTJJ5847b9w4YJjkjtXJH02tm/ffseyJT2PdOnSpan8mTNnVkxMjGJiYnTlyhVVrVpVAwYMIPEGADgwxhsA8I8THR2tkJAQDRkyRDdu3Ehxe9JM5Emto7e3ho4ePTrFfZLW2r49wQ4JCVHWrFm1evVqp/0ffPBBmsv77LPPysfHR7GxsSnKYoxxWtrsXvvwww+dXsMJEybo5s2bqlevniSpdu3a8vPz09ixY53K/sknn+jixYuqX79+mh4nKCgoxWsr3XqPbn9NZs+e7Rhj7arSpUsrMjJSo0ePTvF4SY+TPXt2Va9eXZMmTdKJEydSxEg+k/3t701wcLDy58+va9euWSofAOCfiRZvAMA/TkhIiCZMmKDWrVurdOnSat68ubJly6YjR45owYIFqly5ssaNG6eQkBDHUls3btxQWFiYlixZooMHD6aIWaZMGUnSm2++qebNmytdunR6+umnFRQUpA4dOmjYsGHq0KGDypYtq9WrV2vPnj1pLm++fPk0ePBg9enTR4cOHVLjxo2VIUMGHTx4UHPnzlWnTp306quveuz1ccX169dVq1YtNW3aVLt379YHH3ygKlWqqGHDhpJuLanWp08fxcbGqm7dumrYsKHjuMcff1ytWrVK0+OUKVNGEyZM0ODBg5U/f35lz55dNWvWVIMGDTRw4EDFxMSoUqVK+u233zR9+nSn1nVXeHt7a8KECXr66adVsmRJxcTEKFeuXNq1a5d27NihxYsXS7o1cV+VKlVUvHhxdezYUVFRUYqLi9O6dev0xx9/ONYRL1KkiKpXr64yZcooc+bM2rhxo+bMmaMuXbpYKh8A4J+JxBsA8I/0/PPPK3fu3Bo2bJjeffddXbt2TWFhYXriiSecZtWeMWOGunbtqvHjx8sYozp16uj7779PsT70448/rkGDBmnixIlatGiREhMTdfDgQQUFBalfv346ffq05syZoy+//FL16tXT999/r+zZs6e5vL1791bBggU1atQoxcbGSpLCw8NVp04dR5J7P4wbN07Tp09Xv379dOPGDbVo0UJjx4516ho+YMAAZcuWTePGjVOPHj2UOXNmderUSUOGDEnzxHD9+vXT4cOHNXz4cF2+fFnVqlVTzZo19cYbb+jq1auaMWOGZs2apdKlS2vBggXq3bu35ecUHR2tFStWKDY2ViNGjFBiYqLy5cunjh07Oo4pUqSINm7cqNjYWE2dOlVnz55V9uzZVapUKadhCd26ddP8+fO1ZMkSXbt2TXnz5tXgwYPVq1cvy+UDAPzzeJl7MZMKAAB4qEydOlUxMTHasGFDqjPHAwCAtGOMNwAAAAAANiLxBgAAAADARiTeAAAAAADYiDHeAAAAAADYiBZvAAAAAABsROINAAAAAICN/hHreCcmJur48ePKkCGD07qiAAAAAADYwRijy5cvK3fu3PL2vnub9j8i8T5+/LjCw8PvdzEAAAAAAP9jjh49qkceeeSux/wjEu8MGTJIuvWEQ0JC7nNpAAAAAAD/dJcuXVJ4eLgjH72bf0TindS9PCQkhMQbAAAAAHDPpGW4M5OrAQAAAABgIxJvAAAAAABsROINAAAAAICNSLwBAAAAALARiTcAAAAAADYi8QYAAAAAwEYk3gAAAAAA2IjEGwAAAAAAG5F4AwAAAABgIxJvAAAAAABsROINAAAAAICNSLwBAAAAALARiTcAAAAAADYi8QYAAAAAwEYk3gAAAAAA2IjEGwAAAAAAG5F4AwAAAABgIxJvAAAAAABsROINAAAAAICNfK3cafz48Xr33Xd18uRJlShRQu+//77KlSuX6rE7duxQv379tGnTJh0+fFijRo3Syy+/7HTM0KFD9fXXX2vXrl1Knz69KlWqpHfeeUeFChWyUjyXRPRe4HaMQ8Pqe6AkAAAAAIB/IpdbvGfNmqWePXuqf//+2rx5s0qUKKHo6GidOnUq1ePj4+MVFRWlYcOGKWfOnKkes2rVKr300kv6+eeftXTpUt24cUN16tTR1atXXS0eAAAAAAAPFC9jjHHlDuXLl9fjjz+ucePGSZISExMVHh6url27qnfv3ne9b0REhF5++eUULd63O336tLJnz65Vq1apatWqf1umS5cuKTQ0VBcvXlRISEian4tEizcAAAAAwHWu5KEutXhfv35dmzZtUu3atf8bwNtbtWvX1rp166yVNhUXL16UJGXOnDnV269du6ZLly45bQAAAAAAPIhcSrzPnDmjhIQE5ciRw2l/jhw5dPLkSY8UKDExUS+//LIqV66sYsWKpXrM0KFDFRoa6tjCw8M98tgAAAAAAHjaAzer+UsvvaTt27dr5syZdzymT58+unjxomM7evToPSwhAAAAAABp59Ks5lmzZpWPj4/i4uKc9sfFxd1x4jRXdOnSRd99951Wr16tRx555I7H+fv7y9/f3+3HAwAAAADAbi61ePv5+alMmTJavny5Y19iYqKWL1+uihUrWi6EMUZdunTR3Llz9cMPPygyMtJyLAAAAAAAHiQur+Pds2dPtW3bVmXLllW5cuU0evRoXb16VTExMZKkNm3aKCws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nDt3znLcpk2bmrJly5rff//dsW/Hjh2mbNmypnnz5pbjfvjhh8bHx8fkyJHDlChRwpQsWdKxlSpVynLcNm3auPx7cDcXL140TZo0MQEBASZ79uymb9++5ubNm47bT548aekz/M0336S6+fj4mHHjxjn+dtVXX31lfHx8TJYsWUxwcLBZunSpyZgxo6ldu7aJjo42Pj4+Zvr06S7HTVKhQgUzYsQIY4wxwcHBjt+f9evXm7CwMMtxk6xevdq0bNnSVKhQwfzxxx/GGGM+++wzp8+2q65cuWJiYmKMr6+v8fLyMl5eXsbX19e0b9/eXL161XLckydPmlatWplcuXIZHx8fx29m0uauXbt2mZdeesnUrFnT1KxZ07z00ktm165dluN169bNlClTxqxZs8YEBQU53rt58+aZkiVLulXWM2fOmFq1ahkvLy/j7e3tiB0TE2N69uzpVmxPfSaSflvSsrnj1KlTZsSIEeaxxx4zvr6+pm7dumb27Nnm+vXrbsXds2ePmTRpkhk0aJCJjY112txh1zl02LBhZubMmY6/mzRpYry9vU3u3LnNli1bLMfNmzeviY2NNYcPH7YcIzVxcXGmRo0aKa4Fa9asaU6dOmU5bkJCghk4cKDJnTu38fHxcXw33nrrLfPxxx9bjuvJ71xSjKR/77ZZ1ahRI9OqVStz7do1p3PHihUrTP78+S3HHTRokHnyySdNUFCQ8ff3N5UrVzZvvvmmWbJkiVu/71aReP+/kydPmtdff90899xzxsvLy9SrV880btw41c2qwMBAs3fvXg+W+pZ8+fKZZcuWGWOcL3R27txpMmbMaDlugQIFTPfu3T3+wQwJCTELFy5MsX/BggUmJCTEctxnn33WvP/++yn2v//++6ZRo0aW406fPt1UrlzZ6YJm165d5oknnjCff/655biFCxc2c+fONcY4v2+//fabyZIli+W4JUuWNJ9++mmKuJs3bzY5cuSwHNcYY3r37m2yZctmPvjgA0elyfjx4022bNnMG2+8YTmul5dXqieu5cuXm6xZs7pTZJMlSxazfft2Y4wxH330kXnsscdMQkKC+fLLL82jjz5qOe6iRYuMn5+fKVeunOnRo4fp0aOHKVeunPH39zdLliyxHLd58+YmV65c5rXXXjOjRo0yo0ePdtqsKlasmFmwYIExxpht27YZf39/06dPH1Oh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4cIFVahQQenSpdOZM2c0cuRI/ec//7EcG7eWyNq0aZNatWqV6uRq7hg8eLBq166trVu3Or4Ly5cv14YNG7RkyRLLce/0u/bHH3+4taJCgwYN1KlTJ33yySdOa0F37tzZ7VVM0qVL55j1N3v27Dpy5IgKFy6s0NBQHT161FLM2NhYde7cOcUEXfHx8YqNjXVrgi53JtVLTdL1zMGDBxUeHu6xGZBdZVycn3jcuHH666+/JElvvvmm0qVLp7Vr1+pf//qX3nrrLZcfP2lJusjISFWqVCnVpbOsOHjwoEfi3G7FihW2xE2uYcOGGjhwoOM84eXlpSNHjuj11193nAetuNPvxNatW92arOzdd99V165dNX78eMdEYhs3blT37t313nvvWY7brVs3de/eXfv27XNcq/78888aP368hg0b5jRZrivXhcWKFdPWrVsVGRmp8uXLa/jw4fLz89OHH37o1uSezzzzjBo0aOBYdcRTn+WvvvpKc+bMccoBnnrqKaVPn15NmzbVhAkTPPI4acWs5qmYMGGCXn75ZbVv316VKlWSdOuCb+rUqRozZoz+/e9/e+yxzp07d8dZyV3x008/ady4cdq9e7ckqVChQuratauj/FZs3LhRly9fVo0aNXTq1Cm1adNGa9euVYECBTR58mSVKFHCUtyvvvpKzZs3V9myZVWxYkVJt34MNmzYoJkzZ1r+YQwLC9M333yjsmXLat68eXrppZe0YsUKTZs2TT/88IN++uknS3EPHDigK1eu6LHHHtPVq1f1yiuvOF6HkSNHupU0Tp8+PdX37fnnn5d0a0bSpFnO0+r06dOKiYnR999/n+rtVmaPffbZZyVJ33zzjerWreu0/EdCQoK2bdumQoUKadGiRS7Hlm7NXn03bdq0sRRX8vwapEkzIDdu3Fiffvqp04V5QkKCli9frqVLlzreU1cdPXpUDRs21I4dOxwVfUePHlWxYsU0f/58PfLII5biHj58+K63u/o5/vTTT2WMUfv27TV69Gin18HPz08RERGO77dVmzZt0qhRo5wq6F555RW3ZnjPmjWrVq1apaJFi+rjjz/W+++/r19//VVfffWV+vXr53gsd9xtPdIZM2aoUaNGliqqHoa4QUFBWrx4sapUqeJyOdJiy5Ytevfdd7VlyxalT59ejz32mPr06aMCBQq4HCtpZYmtW7eqaNGiTuuXJyQk6ODBg6pbt67lip4LFy6obdu2+vbbbx0XkTdv3lTDhg01depUt5L6OnXqqF27dnr++efVsWNHbdu2Td26ddO0adN0/vx5rV+/3uWY3t7eiouLU7Zs2Zz2//DDD2rWrJlOnz5tubySvcto2VHRnBZ2rSaQFq4s4+XKjP8Pu4sXL+q5555zXMPmzp1bJ0+eVMWKFbVw4UKXfyOTrtEvXryokJCQO1Yyjx8/3lJ5M2XKpPj4eN28edPxG5T0/9vLeu7cuTTH/bvKKKsV74sXL9bVq1f17LPPat++fWrQoIH27NnjaESsWbNmmmMld/nyZVuWZA0MDNSmTZtUuHBhp/07duxQuXLlHA2i9wqJ9x3MnTtXI0aMcLrg69Wrlxo1anSfS/bwy5cvn1q2bKmBAwc67e/fv78+//xz7d+/31LcgIAA7du3T4888og6deqkwMBAjR49WgcPHlSJEiUsrzX5sGnZsqUOHz6s0aNHq3r16po7d67i4uI0ePBgjRgxQvXr13c5ZtJSdJ9++qmaNm2q9OnTO25LSrI6duyorFmzWipzpkyZnP6+ceOG4uPj5efnp8DAQJdONqnF9uQapEkns+RLAiZJly6dIiIiNGLECDVo0MBymY0xWrZsmXbt2iXp1u9P7dq1Lcez06pVqzza0mK3wMBA7dq1S3ny5FHTpk1VtGhR9e/fX0ePHlWhQoUUHx9vKW5iYqLefvttTZw4UXFxcdqzZ4+ioqLUt29fRURE6IUXXvifiPvoo4/qyy+/tD3h8YTY2FjHv6+88orT2s9Jv2v/+te/5Ofn59bj7N271+m77IllEz1ZMW53YiHZt4yWHRXNrnA18V64cKF8fHwUHR3ttH/JkiVKSEhQvXr10vzY3t7eaW60cfd1sGNJ1SR2VZr8+OOP2rZtm65cuaLSpUtbPofaXcn86aefpvnYpB4OafF3le3Judvr0FONiLcvv1ikSBE1atTIreUXa9WqpSxZsuizzz5zVDD/+eefatu2rc6dO6dly5a5VWaX3fPO7f9jnnnmGce4pttnz/XkbLoJCQlm9+7dZs2aNWbVqlVO24Mmffr0d5w0yZ3xIXny5DGLFy82N2/eNOHh4ea7774zxtxaSiBjxoyW4yZ3+fLlFBODuOvatWvm6NGj5vDhw06bVTlz5nSMF8qQIYPZvXu3McaYb775xlSuXNmtsg4YMMBpfKyd9uzZY2rVquX22NuPPvrIZMuWzWmm5ffee8+EhIS4NQNnRESEY+mZh8W+fftMly5dTK1atUytWrVM165dPbKsUZI///zTre9H8uNTm4THE9+74sWLmzFjxpgjR46YkJAQxxjIjRs3ujwPRnKxsbEmKirKfP755yZ9+vSOcYUzZ840FSpU+J+J+91335no6GjHzM2eZse5burUqebPP//0YCkfLnaNE07OrmW0nn/+eVO5cmWzYcMGExQUZJYsWWKmTZtmChUq5LgGsJOrcyAUL1481eX2vv/+e/PYY4+59NjJx7VPnTrV5MyZ0/Tu3dux/GLv3r1Nrly53JqF3Rj7llQ9deqUqV+//h0nyHvQrFy50ly/fv1+F+OBsXfvXrNo0SLHRJruLtFp1/KLv/32m8mdO7fJkiWLqVmzpqlZs6bJkiWLCQsLuy9LjdHinYqoqCht2LBBWbJkcdp/4cIFlS5dWgcOHEhzrJiYGI0dO1YZMmRwtBreidUa359//lnPP/+8Dh8+nKIFztUuJKVLl9by5cuVKVMmRze8O9m8ebOl8j711FNq0qRJitdjypQpmjlzphYvXmwp7oABAzR69GjlypVL8fHx2rNnj/z9/TV58mR99NFHWrdunaW4Bw8eVJcuXbRy5UrH2CxJlsfGJtm7d6/at2+vtWvXOu13N25ISIi2bdumiIgI5c2bVzNmzFDlypV18OBBFS1a1HKL3v2wceNGtWrVytFaZNXw4cM1duxY/fjjj5o1a5aGDBmihQsXOsYO329jx45Vp06dFBAQoLFjx9712G7dull6jMWLF6thw4YqWbKk05jprVu36ttvv9WTTz5pKW58fLxee+01ffnllzp79myK2135HPv4+OjEiRPKnj37HVtz3P1+zJkzR88//7wSEhJUq1Ytx9jgoUOHavXq1XdsOfs7+fPn16RJk1SrVi2nVrBdu3apYsWKOn/+/P9E3OTdJgMDA1P0hHCn94onz3V26dmzpwYNGqSgoCD17Nnzrse621LoaatWrVLlypWdutx7SlBQkHbs2KGIiAhlyZJFK1euVPHixbVz507VrFlTJ06csBQ3V65c+uabb1SuXDmFhIRo48aNKliwoObPn6/hw4frxx9/9PAzceZqi3f69Om1c+dORUREOO0/dOiQihYtarnba61atdShQwe1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onLkp59+Uv369XXhwoV/fNybN29qyJAhat++fYrxf55g17mud+/eCgkJ0RtvvKFZs2apVatWioiI0JEjR1IdI/l3/m59ZS8vL8XGxurNN9+0VF5JWrRokfr06aNBgwapTJkyKSbmstJj6tVXX9X69es1e/ZsFSxYUJs3b1ZcXJzatGmjNm3auDXvS/Xq1dWjRw81atTIcozUhIWFadmyZU6TPHlCjRo19PXXXytTpkwejZuYmKi3335bEydOVFxcnPbs2aOoqCj17dtXEREReuGFF9Ica9u2bSpWrJi8vb21bdu2ux7r7prYFy5c0Jw5c7R//3716tVLmTNn1ubNm5UjRw63KmUk6fr16zp48KDy5ctny4z6njJq1Cj5+PioW7duWrZsmZ5++mkZYxyVzN27d7cU98KFC2rbtq2+/fbbFC29U6dOdZpvyhXGGI0ePVojRoxwTFKbO3du9erVS926dXOrEuLixYsaN26ctm7d6lgn/aWXXvLIBL5JZZc80wCTkJCgIUOGeOQ75xH3vHP7Q6BkyZJOW9GiRU1gYKAJCQlxayx2jhw5HGORkpsyZYrJnj27GyW2R1BQUKrrbe/du9etcSdp5epYbLviBgYGpvo6PKgaN25sMmTIYHLlymXq1Knj8fXib9y44fj7iy++MF27djVjx441165dsxx3xIgRJjAw0Lz22muONUh79eplAgMDzciRI12OV716dcd4uerVq99xc2cN0g0bNpgffvjBGGNMXFyciY6ONhkyZDClS5c2W7ZscTnevVhL19OuX79uatasmeo4Mne1a9fO7THB91JMTIwpU6aM05jeVatWmZCQEEuf4Yc1bnBwsG1reN8r69atMyNGjDDz58+3dP+VK1eaFStWGC8vL/P11187rbe8du1ax1hnd9w+TjFpc2fc4rVr10yHDh2Mr6+v8fLyMunSpTPe3t6mVatW5ubNm26Vd9asWSYqKsq8//77Zu3atWbr1q1Om1Vvv/22adu2rdN56UEWGxtroqKizOeff27Sp0/vuBaZOXOmqVChgkuxko9Dv9P8RJ4Yx7p161aTLVs2kz9/fuPr6+so85tvvmlat25tOe7Vq1dN+/btjY+Pj/Hx8XHE7dKlixk6dKhbZb4XDh06ZL766iu3Pr/J7dmzx8yfP9/Mnz/f49ecly5dSnW+CVfZec43xpiPP/7YFC1a1Pj5+Rk/Pz9TtGhR89FHH7kV05PfOU+gxTuNLl26pHbt2umZZ56x1AInScOGDVNsbKw6duzo1J1k8uTJ6tu3r9tjnn7//fdUl0Kx2lUlb9686tatm1555RWn/SNGjNDYsWPdmr0wLR6UFu+nn35a7dq1c3Rz9LT4+PhU3zerNdR2rRdvZ2tWZGSkYmNj1aZNG6f9n376qQYMGHBPxmy7wvz/zNrZs2f3eLelVatWqVKlSinGr1pRunRpLV++XJkyZfrbpYisLr2TLVs2rV279oFrgb7XEhMT9dxzz+ncuXNavHix1q5dq4YNG2rw4MGWW0IexriNGjXSs88+a+vs5p481924cUP//ve/1bdvX49225ZutdCHh4c7hqR4kl09pqRbc3ls375dV65cUalSpTzy3U7tNfDEMIFnnnlGy5cvV3BwsIoXL56i5f/rr79Oc6x70VMqf/78mjRpkmrVquV0LbJr1y5VrFhR58+fT3Osw4cPK0+ePPLy8rKtN4h0a1hc6dKlNXz4cKcyr127Vs8//7wOHTpkKW737t31008/afTo0apbt662bdumqKgoffPNNxowYIBby/Ft3LjxjssDuvKZSHLjxg3VrVtXEydO/J8/19l1zu/Xr59Gjhyprl27Og1vHTdunHr06PG3vZHvxJPfOU94cPt0PGBCQkIUGxurp59+2nLi3bt3b0VFRWnMmDH6/PPPJd1axH3KlClq2rSp5bIdOHBAzzzzjH777TfHiUz6bxcNqye02NhYdejQQStXrlT58uUl3aooWLRokT766CPL5bXLZ599pmbNmqUYk3f9+nXNnDnTkdRNmjRJOXLkSHPcp59+Wj169NBvv/2W6oQ+Vis2Tp8+rZiYGH3//fep3m71fUtrYv3TTz+pbNmyaR7D6Ovrq+HDh6dIjj3hxIkTjjFIyVWqVMkx+YonJI29dneyGWOM8ufPrx07dnj85JP8gvmvv/5KcdHgShfSRo0aOd7fRo0a2TJuvlWrVvrkk0/cWk7lTjx98WQnb29vzZw5U/Xr11fNmjW1bds2DR06NMVQnX963Hr16ql379767bffUu0C7c6YRTvOdenSpdNXX31ly7wlScmOpytXJfcS67+TJ08e5cmTx6Mx7ao8zZgxo8cqxdO6Brs7v6PHjh1LdcxqYmKiy3PaJE+m3Ums/86GDRs0adKkFPvDwsJ08uRJy3HnzZunWbNmqUKFCk6vadGiRbV//37LcZOu96Kjo7VkyRLVqVNHe/bsUVxcnJ555hlLMdOlS/e33fldYddkcH9XwZ6c1cp2u875EyZM0EcffaQWLVo49jVs2FCPPfaYunbtajnx9uR3zhNIvF1w8eJFy+OwkzRt2tStJDs13bt3V2RkpJYvX67IyEj98ssvOnv2rF555RW99957luO2a9dOhQsX1tixYx0XuYULF9aPP/7oSMQfJDExMapbt26KSWsuX76smJgYR8L4/PPPuxS3c+fOklIf++9OTf3LL7+sCxcuaP369apevbrmzp2ruLg4DR48WCNGjLAU0xX16tXTli1bXOpRUKtWLa1atcrj69nnz59fX375pd544w2n/Ukzp7rj5s2bio2N1dixYx0zswYHB6tr167q37+/pZZlb29vFShQQGfPnvV44h0fH6/XXntNX375pc6ePZvidlc+b8nHZA4YMMATxUvh5s2bmjx5spYtW5ZqomW1ZciOiydPS+1CbMCAAWrRooVatWqlqlWrOo5xJcl62OIml7RCR2rvu7uzmtt1rmvcuLHmzZunHj16WI6RGrsqV5OsWbNGkyZN0oEDBzR79myFhYVp2rRpioyMVJUqVVyOl3zSutRYnYVdSntiWL9+fX388cdpHivqyYpmO9dgT1KkSBGtWbMmxesxZ84clSpVynLcPHnyqHr16qpWrZqqV6/uWCPcE/z9/XXp0qUU+/fs2aNs2bJZjnv69OlUJxm8evWqW5UbQ4YM0ahRo/TSSy8pQ4YMGjNmjCIjI/Xvf//brTHInkw47ZoMLvlKSnax65x/48YNlS1bNsX+MmXK6ObNm5ZiSvZ956wi8U5F0nISSYwxOnHihKZNm6Z69eq5FTtpgooDBw7o1Vdf9cgEFevWrdMPP/ygrFmzytvbW97e3qpSpYqGDh2qbt26udVdp3z58po+fbrl+6fGrpZpc4fZoP/44w/Lk1NI9i1L8MMPP+ibb75R2bJl5e3trbx58+rJJ59USEiIhg4dqvr169vyuEmsjDKxqzUrNjZWzZo10+rVq1W5cmVJty6Uli9fri+//NJSzCRdu3bV119/reHDhzt1XxowYIDOnj2rCRMmWIo7bNgw9erVSxMmTFCxYsXcKmNyvXr10ooVKzRhwgS1bt1a48eP17FjxzRp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",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot feature importances\n",
"importances = best_model.named_steps['classifier'].feature_importances_\n",
"indices = np.argsort(importances)[::-1]\n",
"features = best_model.feature_names_in_\n",
"n_features = best_model.n_features_in_\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"plt.title(\"Feature Importances\")\n",
"plt.bar(range(n_features), importances[indices], align=\"center\")\n",
"plt.xticks(range(n_features), features, rotation=90)\n",
"plt.xlim([-1, n_features])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "spike_interface",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.16"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
|