估计器
此文件是 TPOT 库的一部分。
TPOT 当前版本由 Cedars-Sinai 开发,开发人员包括: - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) - Anil Saini (anil.saini@cshs.org) - Jose Hernandez (jgh9094@gmail.com) - Jay Moran (jay.moran@cshs.org) - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) - Hyunjun Choi (hyunjun.choi@cshs.org) - Gabriel Ketron (gabriel.ketron@cshs.org) - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) - Jason Moore (moorejh28@gmail.com)
TPOT 的原始版本主要由宾夕法尼亚大学开发,开发人员包括: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - Jason Moore (moorejh28@gmail.com) - 以及许多慷慨的开源贡献者
TPOT 是自由软件:您可以根据自由软件基金会发布的 GNU 宽通用公共许可证(GNU Lesser General Public License)的条款重新分发和/或修改它,可以选择使用许可证的第 3 版,或(您选择)任何更高版本。
分发 TPOT 是希望它会有用,但没有任何担保;甚至不包括适销性或特定用途适用性的默示担保。有关更多详细信息,请参阅 GNU 宽通用公共许可证。
您应该已经随 TPOT 收到了 GNU 宽通用公共许可证 的副本。如果未收到,请访问 https://gnu.ac.cn/licenses/。
TPOTEstimator
¶
基类:BaseEstimator
源代码位于 tpot/tpot_estimator/estimator.py
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 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 |
|
classes_
属性
¶
类别标签。仅当最后一步是分类器时存在。
__init__(search_space, scorers, scorers_weights, classification, cv=10, other_objective_functions=[], other_objective_functions_weights=[], objective_function_names=None, bigger_is_better=True, export_graphpipeline=False, memory=None, categorical_features=None, preprocessing=False, population_size=50, initial_population_size=None, population_scaling=0.5, generations_until_end_population=1, generations=None, max_time_mins=60, max_eval_time_mins=10, validation_strategy='none', validation_fraction=0.2, disable_label_encoder=False, early_stop=None, scorers_early_stop_tol=0.001, other_objectives_early_stop_tol=None, threshold_evaluation_pruning=None, threshold_evaluation_scaling=0.5, selection_evaluation_pruning=None, selection_evaluation_scaling=0.5, min_history_threshold=20, survival_percentage=1, crossover_probability=0.2, mutate_probability=0.7, mutate_then_crossover_probability=0.05, crossover_then_mutate_probability=0.05, survival_selector=survival_select_NSGA2, parent_selector=tournament_selection_dominated, budget_range=None, budget_scaling=0.5, generations_until_end_budget=1, stepwise_steps=5, n_jobs=1, memory_limit=None, client=None, processes=True, warm_start=False, periodic_checkpoint_folder=None, callback=None, verbose=0, scatter=True, random_state=None)
¶
一个使用遗传编程优化流水线的 sklearn 基本估计器。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
search_space |
(String, SearchSpace)
|
请注意,TPOT MDR 运行可能较慢,因为特征选择例程计算成本高昂,尤其是在大型数据集上。|
|
必需 |
scorers |
(list, scorer)
|
交叉验证过程中使用的评分器或评分器列表。参见 https://scikit-learn.cn/stable/modules/model_evaluation.html |
必需 |
scorers_weights |
列表
|
在优化过程中应用于评分器的权重列表。 |
必需 |
classification |
布尔值
|
如果为 True,则问题被视为分类问题。如果为 False,则问题被视为回归问题。用于确定 CV 策略。 |
必需 |
cv |
(int, cross - validator)
|
|
10
|
other_objective_functions |
列表
|
应用于流水线的其他目标函数列表。函数接受 graphpipeline 估计器的单个参数,并返回单个分数或分数列表。 |
[]
|
other_objective_functions_weights |
列表
|
应用于其他目标函数的权重列表。 |
[]
|
objective_function_names |
列表
|
应用于目标函数的名称列表。如果为 None,将使用目标函数的名称。 |
无
|
bigger_is_better |
布尔值
|
如果为 True,则最大化目标函数。如果为 False,则最小化目标函数。使用负权重来反转方向。 |
True
|
memory |
如果提供,流水线在调用 fit 时会使用 joblib.Memory 缓存每个转换器。此功能用于避免在优化过程中,当参数和输入数据与另一个已拟合的流水线相同时,重新计算流水线内的已拟合转换器。- 字符串 'auto':TPOT 使用临时目录进行内存缓存,并在关闭时清除它。- 字符串缓存目录路径:TPOT 使用提供的目录进行内存缓存,TPOT 在关闭时不会清除缓存目录。如果目录不存在,TPOT 将创建它。- Memory 对象:TPOT 使用 joblib.Memory 的实例进行内存缓存,TPOT 在关闭时不会清除缓存目录。- None:TPOT 不使用内存缓存。 |
无
|
|
categorical_features |
预处理步骤中用于填充和/或独热编码的分类列。仅当 preprocessing 不为 False 时使用。- None:如果为 None,TPOT 将自动使用 pandas dataframes 中的对象列作为预处理中独热编码的对象。- 分类特征列表。如果 X 是 dataframe,这应该是一个列名列表。如果 X 是 numpy 数组,这应该是一个列索引列表。 |
无
|
|
preprocessing |
(bool 或 BaseEstimator / Pipeline)
|
实验性 - 未来版本可能会更改 在 CV 之前用于预处理数据的流水线。请注意,这些步骤的参数不会被优化。将它们添加到搜索空间中进行优化。- bool:如果为 True,将使用默认预处理流水线,包括填充和独热编码。- Pipeline:如果给出了流水线实例,将使用该流水线作为预处理流水线。 |
False
|
population_size |
整数
|
种群大小 |
50
|
initial_population_size |
整数
|
初始种群大小。如果为 None,将使用 population_size。 |
无
|
population_scaling |
整数
|
确定阈值从起始百分位移到结束百分位的速度时使用的缩放因子。 |
0.5
|
generations_until_end_population |
整数
|
种群大小达到 population_size 的代数。 |
1
|
generations |
整数
|
运行的代数 |
50
|
max_time_mins |
浮点数
|
运行优化的最大时间(分钟)。如果为 None 或 inf,将运行直到达到代数上限。 |
float("inf")
|
max_eval_time_mins |
浮点数
|
评估单个个体的最大时间(分钟)。如果为 None 或 inf,则每次评估没有时间限制。 |
5
|
validation_strategy |
字符串
|
实验性 用于从种群中选择最终流水线的验证策略。TPOT 可能会过拟合交叉验证分数。可以使用第二个验证集来选择最终流水线。- 'auto':根据数据集形状自动确定验证策略。- 'reshuffled':对交叉验证和最终验证使用相同的数据,但折叠的划分不同。这是小型数据集的默认值。- 'split':使用单独的验证集进行最终验证。数据将根据 validation_fraction 进行划分。这是中型数据集的默认值。- 'none':不使用单独的验证集进行最终验证。根据原始交叉验证分数选择。这是大型数据集的默认值。 |
'none'
|
validation_fraction |
浮点数
|
实验性 当 validation_strategy 为 'split' 时,用于验证集的数据集比例。必须介于 0 和 1 之间。 |
0.2
|
disable_label_encoder |
布尔值
|
如果为 True,TPOT 将检查目标是否需要重新标记为从 0 到 N 的连续整数。这对于 XGBoost 兼容性是必需的。如果标签需要编码,TPOT 将使用 sklearn.preprocessing.LabelEncoder 对标签进行编码。编码器可以通过 self.label_encoder_ 属性访问。如果为 False,将不使用额外的标签编码器。 |
False
|
early_stop |
整数
|
在提前停止之前没有改进的代数。所有目标必须在容差范围内收敛才能触发此机制。通常,值在 5-20 之间比较好。 |
无
|
scorers_early_stop_tol |
-浮点数列表:每个评分器的容差列表。如果最佳分数与当前分数之间的差小于容差,则认为该个体已收敛 如果列表中的某个索引为 None,则该项不会用于提前停止 -整数:如果给定整数,将作为所有目标的容差。 |
0.001
|
|
other_objectives_early_stop_tol |
-浮点数列表:每个其他目标函数的容差列表。如果最佳分数与当前分数之间的差小于容差,则认为该个体已收敛 如果列表中的某个索引为 None,则该项不会用于提前停止 -整数:如果给定整数,将作为所有目标的容差。 |
无
|
|
threshold_evaluation_pruning |
list[start, end]
|
用于评估提前停止阈值的起始和结束百分位。值介于 0 和 100 之间。 |
无
|
threshold_evaluation_scaling |
浮点数 [0,inf)
|
确定阈值从起始百分位移到结束百分位的速度时使用的缩放因子。必须大于零。数值越大,阈值移到结束百分位的速度越快。 |
0.5
|
selection_evaluation_pruning |
列表
|
每轮 CV 选择的种群大小的较低和较高百分比。值介于 0 和 1 之间。 |
无
|
selection_evaluation_scaling |
浮点数
|
确定阈值从起始百分位移到结束百分位的速度时使用的缩放因子。必须大于零。数值越大,阈值移到结束百分位的速度越快。 |
0.5
|
min_history_threshold |
整数
|
在使用阈值提前停止之前所需的最小历史分数数量。 |
0
|
survival_percentage |
浮点数
|
在世代开始时用于变异和交叉的种群大小百分比。其余的被丢弃。个体使用传递到 survival_selector 的选择器进行选择。此参数的值必须介于 0 和 1 之间(包含)。例如,如果种群大小为 100,生存百分比为 0.5,将从现有种群中通过 NSGA2 选择 50 个体。这些个体将用于变异和交叉,以生成下一代的 100 个个体。其余的从当前种群中丢弃。在下一代,将有 50 个父代个体 + 100 个个体,总计 150 个。生存百分比基于 population size 参数,而不是现有种群大小(使用逐次减半时的当前种群大小)。因此,在下一代,我们仍然将从现有的 150 个体中选择 50 个。 |
1
|
crossover_probability |
浮点数
|
通过两个个体交叉生成新个体的概率。 |
.2
|
mutate_probability |
浮点数
|
通过一个个体变异生成新个体的概率。 |
.7
|
mutate_then_crossover_probability |
浮点数
|
对两个个体进行变异后再进行交叉生成新个体的概率。 |
.05
|
crossover_then_mutate_probability |
浮点数
|
通过两个个体交叉生成新个体,然后对结果个体进行变异的概率。 |
.05
|
survival_selector |
函数
|
用于选择生存个体的函数。必须接受一个分数矩阵并返回选定的索引。用于在每个世代开始时选择 population_size * survival_percentage 个体进行变异和交叉。 |
survival_select_NSGA2
|
parent_selector |
函数
|
用于选择进行交叉的父代对和进行变异的个体的函数。必须接受一个分数矩阵并返回选定的索引。 |
parent_select_NSGA2
|
budget_range |
list[start, end]
|
用于预算缩放的起始和结束预算。 |
无
|
budget_scaling |
确定预算从起始预算移到结束预算的速度时使用的缩放因子。 |
0.5
|
|
generations_until_end_budget |
整数
|
在达到最大预算之前运行的代数。 |
1
|
stepwise_steps |
整数
|
缩放预算和种群大小时采取的阶梯步数。 |
1
|
n_jobs |
整数
|
并行运行的进程数。 |
1
|
memory_limit |
字符串
|
每个作业的内存限制。有关更多信息,请参阅 Dask LocalCluster 文档。 |
无
|
client |
客户端
|
用于并行化的 dask 客户端。如果不是 None,这将覆盖 n_jobs 和 memory_limit 参数。如果为 None,将创建一个新的客户端,num_workers=n_jobs,memory_limit=memory_limit。 |
无
|
processes |
布尔值
|
如果为 True,将使用多进程并行化优化过程。如果为 False,将使用多线程。True 似乎性能更好。然而,交互式调试需要 False。 |
True
|
warm_start |
布尔值
|
如果为 True,将从上次运行的最后一代继续演化算法。 |
False
|
periodic_checkpoint_folder |
字符串
|
定期保存种群的文件夹。如果为 None,将不进行定期保存。如果提供,训练将从该检查点恢复。 |
无
|
callback |
CallBackInterface
|
回调对象。未实现 |
无
|
verbose |
整数
|
优化过程中打印的信息量。值越高,包含的信息越多。0. 无 1. 进度条
|
1
|
scatter |
布尔值
|
如果为 True,将数据分散到 dask workers。如果为 False,将不分散数据。这对于调试很有用。 |
True
|
random_state |
(int, None)
|
实验重现性的种子。此值将传递给 numpy.random.default_rng() 以创建生成器实例,然后传递给其他类
|
无
|
属性
名称 | 类型 | 描述 |
---|---|---|
fitted_pipeline_ |
GraphPipeline
|
GraphPipeline 的已拟合实例,继承自 sklearn BaseEstimator。这是在传递给 fit 的完整 X, y 上拟合的。 |
evaluated_individuals |
一个 pandas 数据框,包含运行中所有已评估个体的数据。
|
列:- 目标函数:前几列对应于传入的评分器和目标函数 - Parents:一个元组,包含用于生成该行流水线的流水线索引。如果为 NaN,则此流水线是在初始种群中随机生成的。- Variation_Function:用于变异或交叉父代的变异函数。如果为 NaN,则此流水线是在初始种群中随机生成的。- Individual:在演化算法中使用的个体内部表示。这不是一个 sklearn BaseEstimator。- Generation:流水线首次出现的世代。- Pareto_Front:此流水线所属的非支配前沿。0 表示其分数不被任何其他个体严格支配。为了节省计算时间,最佳前沿在每个世代迭代更新。帕累托前沿为 0 的流水线确实代表了精确的最佳前沿。然而,帕累托前沿 >= 1 的流水线仅参考最终种群中的其他流水线。所有其他流水线设置为 NaN。- Instance:未拟合的 GraphPipeline BaseEstimator。- 验证目标函数:在验证集上评估的目标函数分数。- Validation_Pareto_Front:在验证集上计算的完整帕累托前沿。这是针对所有 Pareto_Front 等于 0 的流水线计算的。与仅计算前沿和最终种群的 Pareto_Front 不同,Validation Pareto Front 是针对在验证集上测试的所有流水线计算的。 |
pareto_front |
与 evaluated_individuals 相同的 pandas 数据框,但仅包含前沿帕累托前沿流水线。
|
|
源代码位于 tpot/tpot_estimator/estimator.py
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 |
|
apply_make_pipeline(ind, preprocessing_pipeline=None, export_graphpipeline=False, **pipeline_kwargs)
¶
辅助函数,用于从 tpot individual 类创建一列 sklearn 流水线。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
ind |
要转换为流水线的个体。 |
必需 | |
preprocessing_pipeline |
要包含在个体流水线之前的预处理流水线。 |
无
|
|
export_graphpipeline |
强制将流水线导出为图流水线。将所有嵌套的流水线、FeatureUnions 和 GraphPipelines 平展到一个单一的 GraphPipeline 中。 |
False
|
|
pipeline_kwargs |
传递给 export_pipeline 或 export_flattened_graphpipeline 方法的关键字参数。 |
{}
|
返回
类型 | 描述 |
---|---|
sklearn 估计器
|
|
源代码位于 tpot/tpot_estimator/estimator_utils.py
check_empty_values(data)
¶
检查数据集中的空值。
参数:data (numpy.ndarray 或 pandas.DataFrame):要检查的数据集。
返回:bool:如果数据集包含空值,则为 True,否则为 False。
源代码位于 tpot/tpot_estimator/estimator.py
check_if_y_is_encoded(y)
¶
检查目标 y 是否由从 0 到 N 的连续整数组成。XGBoost 要求目标以这种方式编码。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
y |
目标向量。 |
必需 |
返回
类型 | 描述 |
---|---|
布尔值
|
如果目标编码为从 0 到 N 的连续整数,则为 True,否则为 False |
源代码位于 tpot/tpot_estimator/estimator_utils.py
convert_parents_tuples_to_integers(row, object_to_int)
¶
辅助函数,用于将父代行转换为表示父代在种群中索引的整数。
使用自定义索引作为父代的原始 pandas 数据框。此函数将自定义索引转换为整数索引,方便最终用户操作。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
row |
要转换的行。 |
必需 | |
object_to_int |
一个将对象映射到整数索引的字典。 |
必需 |
返回
元组:自定义索引已转换为整数索引的行。
源代码位于 tpot/tpot_estimator/estimator_utils.py
cross_val_score_objective(estimator, X, y, scorers, cv, fold=None)
¶
计算估计器的交叉验证分数。每个折叠仅拟合估计器一次,并遍历评分器来评估估计器。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
估计器 |
要拟合和评分的估计器。 |
必需 | |
X |
特征矩阵。 |
必需 | |
y |
目标向量。 |
必需 | |
scorers |
要使用的评分器。如果是一个列表,将遍历评分器并返回一个评分器列表。如果是一个评分器,将返回一个分数。 |
必需 | |
cv |
要使用的交叉验证器。例如,sklearn.model_selection.KFold 或 sklearn.model_selection.StratifiedKFold。 |
必需 | |
fold |
返回分数的折叠。如果为 None,将返回所有分数的平均值(每个评分器)。默认值为 None。 |
无
|
返回
名称 | 类型 | 描述 |
---|---|---|
scores |
ndarray 或 float
|
每个评分器对估计器的分数。如果 fold 为 None,将返回所有分数的平均值(每个评分器)。如果使用多个评分器,则返回列表,否则返回单个评分器的浮点数。 |
源代码位于 tpot/tpot_estimator/cross_val_utils.py
objective_function_generator(pipeline, x, y, scorers, cv, other_objective_functions, step=None, budget=None, is_classification=True, export_graphpipeline=False, **pipeline_kwargs)
¶
使用交叉验证评估流水线,并将其结果与独立的其他目标函数分数连接起来。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
pipeline |
要评估的个体。 |
必需 | |
x |
特征矩阵。 |
必需 | |
y |
目标向量。 |
必需 | |
scorers |
交叉验证中使用的评分器。 |
必需 | |
cv |
要使用的交叉验证器。例如,sklearn.model_selection.KFold 或 sklearn.model_selection.StratifiedKFold。如果是一个整数,将使用 sklearn.model_selection.KFold,其中 n_splits=cv。 |
必需 | |
other_objective_functions |
一个独立的目标函数列表,用于评估流水线。签名应为 obj(pipeline) -> float 或 obj(pipeline) -> np.ndarray。这些函数接受未拟合的估计器。 |
必需 | |
step |
返回分数的折叠。如果为 None,将返回所有分数的平均值(每个评分器)。默认值为 None。 |
无
|
|
budget |
用于对数据进行二次抽样的预算。如果为 None,将使用完整数据集。默认值为 None。将对 budget*len(x) 个样本进行二次抽样。 |
无
|
|
is_classification |
如果为 True,将对二次抽样进行分层。默认值为 True。 |
True
|
|
export_graphpipeline |
强制将流水线导出为图流水线。将所有嵌套的 sklearn 流水线、FeatureUnions 和 GraphPipelines 平展到一个单一的 GraphPipeline 中。 |
False
|
|
pipeline_kwargs |
传递给 export_pipeline 或 export_flattened_graphpipeline 方法的关键字参数。 |
{}
|
返回
类型 | 描述 |
---|---|
ndarray
|
流水线的连接分数。前 len(scorers) 个元素是交叉验证分数,其余元素是独立的客观函数。 |
源代码位于 tpot/tpot_estimator/estimator_utils.py
remove_underrepresented_classes(x, y, min_count)
¶
辅助函数,用于从数据集中移除样本数少于 min_count 的类别。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
x |
特征矩阵。 |
必需 | |
y |
目标向量。 |
必需 | |
min_count |
保留类别的最小样本数。 |
必需 |
返回
类型 | 描述 |
---|---|
(ndarray, ndarray)
|
已移除样本数少于 min_count 的类别的特征矩阵和目标向量。 |
源代码位于 tpot/tpot_estimator/estimator_utils.py
val_objective_function_generator(pipeline, X_train, y_train, X_test, y_test, scorers, other_objective_functions, export_graphpipeline=False, **pipeline_kwargs)
¶
在训练集上训练流水线,并使用评分器和其他目标函数在测试集上评估它。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
pipeline |
要评估的个体。 |
必需 | |
X_train |
训练集的特征矩阵。 |
必需 | |
y_train |
训练集的目标向量。 |
必需 | |
X_test |
测试集的特征矩阵。 |
必需 | |
y_test |
测试集的目标向量。 |
必需 | |
scorers |
交叉验证中使用的评分器。 |
必需 | |
other_objective_functions |
一个独立的目标函数列表,用于评估流水线。签名应为 obj(pipeline) -> float 或 obj(pipeline) -> np.ndarray。这些函数接受未拟合的估计器。 |
必需 | |
export_graphpipeline |
强制将流水线导出为图流水线。将所有嵌套的 sklearn 流水线、FeatureUnions 和 GraphPipelines 平展到一个单一的 GraphPipeline 中。 |
False
|
|
pipeline_kwargs |
传递给 export_pipeline 或 export_flattened_graphpipeline 方法的关键字参数。 |
{}
|
返回
类型 | 描述 |
---|---|
ndarray
|
流水线的连接分数。前 len(scorers) 个元素是交叉验证分数,其余元素是独立的客观函数。 |