估计器
该文件是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) - 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 宽通用公共许可证的条款重新分发和/或修改它,许可证的版本可以是第 3 版,或者(根据您的选择)任何以后的版本。
TPOT 的发布是希望它能有用, 但没有任何保证;甚至没有对 适销性或特定用途适用性的暗示保证。更多详情请参阅 GNU 较宽松通用公共许可证。
您应该已经收到了一份GNU较宽松通用公共许可证的副本,随TPOT一起提供。如果没有,请参见http://www.gnu.org/licenses/。
TPOTEstimator
¶
基类:BaseEstimator
Source code in tpot2/tpot_estimator/estimator.py
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 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 | |
classes_
property
¶
类别标签。仅当最后一步是分类器时存在。
__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)
|
Note that TPOT MDR may be slow to run because the feature selection routines are computationally expensive, especially on large datasets. |
|
required |
scorers |
(list, scorer)
|
用于交叉验证过程的评分器或评分器列表。 参见 https://scikit-learn.org/stable/modules/model_evaluation.html |
required |
scorers_weights |
list
|
在优化过程中应用于评分器的权重列表。 |
required |
classification |
bool
|
如果为True,问题被视为分类问题。如果为False,问题被视为回归问题。 用于确定交叉验证策略。 |
required |
cv |
(int, cross - validator)
|
|
10
|
other_objective_functions |
list
|
应用于管道的其他目标函数列表。该函数接受一个参数用于graphpipeline估计器,并返回单个分数或分数列表。 |
[]
|
other_objective_functions_weights |
list
|
应用于其他目标函数的权重列表。 |
[]
|
objective_function_names |
list
|
应用于目标函数的名称列表。如果为None,将使用目标函数的名称。 |
None
|
bigger_is_better |
bool
|
如果为True,则目标函数被最大化。如果为False,则目标函数被最小化。使用负权重来反转方向。 |
True
|
memory |
如果提供,管道将在调用fit后使用joblib.Memory缓存每个转换器。此功能用于在优化过程中避免计算与另一个已拟合管道参数和输入数据相同的拟合转换器。 - 字符串 'auto': TPOT 使用临时目录进行内存缓存,并在关闭时清理它。 - 缓存目录的字符串路径 TPOT 使用提供的目录进行内存缓存,TPOT 不会在关闭时清理缓存目录。如果目录不存在,TPOT 将创建它。 - Memory 对象: TPOT 使用 joblib.Memory 的实例进行内存缓存, 并且 TPOT 不会在关闭时清理缓存目录。 - None: TPOT 不使用内存缓存。 |
None
|
|
categorical_features |
在预处理步骤中输入和/或进行独热编码的分类列。仅在预处理不为False时使用。 - None : 如果为None,TPOT2将自动使用pandas数据框中的对象列作为预处理中的独热编码对象。 - 分类特征列表。如果X是数据框,这应该是列名的列表。如果X是numpy数组,这应该是列索引的列表 |
None
|
|
preprocessing |
(bool or BaseEstimator / Pipeline)
|
实验性 - 将在未来版本中更改 一个用于在交叉验证前预处理数据的管道。请注意,这些步骤的参数未进行优化。将它们添加到搜索空间中以进行优化。 - bool : 如果为True,将使用默认的预处理管道,包括插补和独热编码。 - Pipeline : 如果提供了管道的实例,将使用该管道作为预处理管道。 |
False
|
population_size |
int
|
种群大小 |
50
|
initial_population_size |
int
|
初始种群的大小。如果为None,将使用population_size。 |
None
|
population_scaling |
int
|
用于确定阈值从开始百分位数移动到结束百分位数的速度的缩放因子。 |
0.5
|
generations_until_end_population |
int
|
种群大小达到population_size所需的代数 |
1
|
generations |
int
|
运行的代数 |
50
|
max_time_mins |
float
|
运行优化的最大时间。如果为none或inf,将运行到世代结束。 |
float("inf")
|
max_eval_time_mins |
float
|
评估单个个体的最长时间。如果为none或inf,则每次评估没有时间限制。 |
5
|
validation_strategy |
str
|
实验性 用于从种群中选择最终管道的验证策略。TPOT2 可能会过度拟合交叉验证分数。可以使用第二个验证集来选择最终管道。 - 'auto' : 根据数据集形状自动确定验证策略。 - 'reshuffled' : 使用相同的数据进行交叉验证和最终验证,但使用不同的折叠分割。这是小数据集的默认设置。 - 'split' : 使用单独的验证集进行最终验证。数据将根据 validation_fraction 进行分割。这是中等数据集的默认设置。 - 'none' : 不使用单独的验证集进行最终验证。根据原始交叉验证分数进行选择。这是大数据集的默认设置。 |
'none'
|
validation_fraction |
float
|
实验性 当validation_strategy为'split'时,用于验证集的数据集比例。必须在0到1之间。 |
0.2
|
disable_label_encoder |
bool
|
如果为True,TPOT将检查目标是否需要重新标记为从0到N的连续整数。这对于XGBoost的兼容性是必要的。如果标签需要编码,TPOT2将使用sklearn.preprocessing.LabelEncoder来编码标签。编码器可以通过self.label_encoder_属性访问。 如果为False,将不使用额外的标签编码器。 |
False
|
early_stop |
int
|
在提前停止之前,没有改进的代数。所有目标必须在容差范围内收敛才能触发此操作。通常,5-20的值是合适的。 |
None
|
scorers_early_stop_tol |
-浮点数列表 每个评分器的容忍度列表。如果最佳分数与当前分数之间的差异小于容忍度,则认为个体已收敛 如果列表中的某个索引为None,则该条目将不用于提前停止 -整数 如果给出一个整数,它将用作所有目标的容忍度 |
0.001
|
|
other_objectives_early_stop_tol |
-浮点数列表 每个其他目标函数的容忍度列表。如果最佳分数与当前分数之间的差异小于容忍度,则认为个体已收敛 如果列表中的某个索引为None,则该项目将不用于提前停止 -整数 如果给出一个整数,它将用作所有目标的容忍度 |
None
|
|
threshold_evaluation_pruning |
list[start, end]
|
用于评估早停的起始和结束百分位数阈值。 值介于0到100之间。 |
None
|
threshold_evaluation_scaling |
float [0,inf)
|
用于确定阈值从开始百分位数移动到结束百分位数的速度的缩放因子。 必须大于零。数值越大,阈值移动到结束的速度越快。 |
0.5
|
selection_evaluation_pruning |
list
|
每轮交叉验证中选择的种群大小的下限和上限百分比。值介于0和1之间。 |
None
|
selection_evaluation_scaling |
float
|
一个缩放因子,用于确定我们如何快速将阈值从起始百分位数移动到结束百分位数。 必须大于零。数值越大,阈值将更快地移动到结束位置。 |
0.5
|
min_history_threshold |
int
|
在使用阈值提前停止之前所需的最小历史分数数量。 |
0
|
survival_percentage |
float
|
在世代开始时用于变异和交叉的种群大小的百分比。其余的将被丢弃。个体通过传递给survival_selector的选择器进行选择。此参数的值必须在0到1之间,包括0和1。 例如,如果种群大小为100,生存百分比为0.5,则将从现有种群中使用NSGA2选择50个个体。这些个体将用于变异和交叉以生成下一代的100个个体。其余的将从现有种群中丢弃。在下一代中,将有50个父代加上100个个体,总共150个。生存百分比基于种群大小参数,而不是现有种群大小(在使用连续减半时的当前种群大小)。因此,在下一代中,我们仍将从当前存在的150个个体中选择50个。 |
1
|
crossover_probability |
float
|
通过两个个体之间的交叉生成新个体的概率。 |
.2
|
mutate_probability |
float
|
通过个体之间的交叉生成新个体的概率。 |
.7
|
mutate_then_crossover_probability |
float
|
通过变异两个个体然后进行交叉生成新个体的概率。 |
.05
|
crossover_then_mutate_probability |
float
|
通过两个个体之间的交叉生成新个体,然后对结果个体进行变异的概率。 |
.05
|
survival_selector |
function
|
用于选择个体存活的函数。必须接受一个分数矩阵并返回选定的索引。 用于在每一代开始时选择population_size * survival_percentage个体用于变异和交叉。 |
survival_select_NSGA2
|
parent_selector |
function
|
用于选择交叉的父母对和变异的个体的函数。必须接受一个分数矩阵并返回选定的索引。 |
parent_select_NSGA2
|
budget_range |
list[start, end]
|
用于预算缩放的起始和结束预算。 |
None
|
budget_scaling |
用于确定预算从开始到结束预算的移动速度的缩放因子。 |
0.5
|
|
generations_until_end_budget |
int
|
在达到最大预算之前要运行的代数。 |
1
|
stepwise_steps |
int
|
在调整预算和人口规模时采取的阶梯步数。 |
1
|
n_jobs |
int
|
并行运行的进程数。 |
1
|
memory_limit |
str
|
每个作业的内存限制。有关更多信息,请参阅 Dask LocalCluster 文档。 |
None
|
client |
Client
|
用于并行化的dask客户端。如果不为None,这将覆盖n_jobs和memory_limit参数。如果为None,将创建一个新的客户端,其中num_workers=n_jobs且memory_limit=memory_limit。 |
None
|
processes |
bool
|
如果为True,将使用多进程来并行化优化过程。如果为False,将使用线程。 True似乎表现更好。然而,交互式调试需要False。 |
True
|
warm_start |
bool
|
如果为True,将从上次运行的最后一世代继续进化算法。 |
False
|
periodic_checkpoint_folder |
str
|
用于定期保存种群的文件夹。如果为None,则不会进行定期保存。 如果提供了,训练将从此检查点恢复。 |
None
|
callback |
CallBackInterface
|
回调对象。未实现 |
None
|
verbose |
int
|
在优化过程中打印多少信息。较高的值包括较低值的信息。 0. 无 1. 进度条
|
1
|
scatter |
bool
|
如果为True,将数据分散到dask工作节点。如果为False,则不会分散数据。这对于调试很有用。 |
True
|
random_state |
(int, None)
|
用于实验可重复性的种子。该值将传递给 numpy.random.default_rng() 以创建生成器实例,并传递给其他类
|
None
|
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
fitted_pipeline_ |
GraphPipeline
|
一个继承自sklearn BaseEstimator的GraphPipeline的已拟合实例。这是在传递给fit的完整X, y上拟合的。 |
evaluated_individuals |
A pandas data frame containing data for all evaluated individuals in the run.
|
Columns: - objective functions : The first few columns correspond to the passed in scorers and objective functions - Parents : A tuple containing the indexes of the pipelines used to generate the pipeline of that row. If NaN, this pipeline was generated randomly in the initial population. - Variation_Function : Which variation function was used to mutate or crossover the parents. If NaN, this pipeline was generated randomly in the initial population. - Individual : The internal representation of the individual that is used during the evolutionary algorithm. This is not an sklearn BaseEstimator. - Generation : The generation the pipeline first appeared. - Pareto_Front : The nondominated front that this pipeline belongs to. 0 means that its scores is not strictly dominated by any other individual. To save on computational time, the best frontier is updated iteratively each generation. The pipelines with the 0th pareto front do represent the exact best frontier. However, the pipelines with pareto front >= 1 are only in reference to the other pipelines in the final population. All other pipelines are set to NaN. - Instance : The unfitted GraphPipeline BaseEstimator. - validation objective functions : Objective function scores evaluated on the validation set. - Validation_Pareto_Front : The full pareto front calculated on the validation set. This is calculated for all pipelines with Pareto_Front equal to 0. Unlike the Pareto_Front which only calculates the frontier and the final population, the Validation Pareto Front is calculated for all pipelines tested on the validation set. |
pareto_front |
与评估个体相同的pandas dataframe,但仅包含前沿帕累托前沿管道。
|
|
Source code in tpot2/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 | |
apply_make_pipeline(ind, preprocessing_pipeline=None, export_graphpipeline=False, **pipeline_kwargs)
¶
辅助函数,用于从tpot2个体类创建sklearn管道的列。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
ind |
要转换为管道的个体。 |
required | |
preprocessing_pipeline |
在个体的管道之前包含的预处理管道。 |
None
|
|
export_graphpipeline |
强制将管道导出为图形管道。将所有嵌套的管道、FeatureUnions 和 GraphPipelines 展平为单个 GraphPipeline。 |
False
|
|
pipeline_kwargs |
传递给 export_pipeline 或 export_flattened_graphpipeline 方法的关键字参数。 |
{}
|
返回:
| 类型 | 描述 |
|---|---|
sklearn estimator
|
|
Source code in tpot2/tpot_estimator/estimator_utils.py
check_empty_values(data)
¶
检查数据集中的空值。
参数: data (numpy.ndarray 或 pandas.DataFrame): 要检查的数据集。
返回: bool: 如果数据集包含空值则为True,否则为False。
Source code in tpot2/tpot_estimator/estimator.py
check_if_y_is_encoded(y)
¶
检查目标 y 是否由从 0 到 N 的连续整数组成。 XGBoost 要求目标以这种方式编码。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
y |
目标向量。 |
必填 |
返回:
| 类型 | 描述 |
|---|---|
bool
|
如果目标被编码为从0到N的顺序整数,则为True,否则为False |
Source code in tpot2/tpot_estimator/estimator_utils.py
convert_parents_tuples_to_integers(row, object_to_int)
¶
辅助函数,用于将父行转换为表示父代在种群中索引的整数。
使用自定义索引的原始pandas数据框。此函数将自定义索引转换为整数索引,以便最终用户更容易操作。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
row |
要转换的行。 |
必填 | |
object_to_int |
一个将对象映射到整数索引的字典。 |
required |
Returns
元组 带有自定义索引的行已转换为整数索引。
Source code in tpot2/tpot_estimator/estimator_utils.py
cross_val_score_objective(estimator, X, y, scorers, cv, fold=None)
¶
计算估计器的交叉验证分数。每个折叠只拟合一次估计器,并循环遍历评分器以评估估计器。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
estimator |
用于拟合和评分的估计器。 |
必填 | |
X |
特征矩阵。 |
必填 | |
y |
目标向量。 |
必填 | |
scorers |
要使用的评分器。 如果是列表,将循环遍历评分器并返回评分器列表。 如果是单个评分器,将返回单个分数。 |
required | |
cv |
使用的交叉验证器。例如,sklearn.model_selection.KFold 或 sklearn.model_selection.StratifiedKFold。 |
required | |
fold |
要返回分数的折叠。如果为None,将返回所有分数的平均值(每个评分器)。默认值为None。 |
None
|
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
scores |
ndarray or float
|
每个评分器的估计器得分。如果 fold 为 None,将返回所有得分的平均值(每个评分器)。 如果使用多个评分器,则返回一个列表,否则返回单个评分器的浮点数。 |
Source code in tpot2/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 |
要评估的个体。 |
required | |
x |
特征矩阵。 |
必填 | |
y |
目标向量。 |
必填 | |
scorers |
用于交叉验证的评分器。 |
必填 | |
cv |
使用的交叉验证器。例如,sklearn.model_selection.KFold 或 sklearn.model_selection.StratifiedKFold。 如果是一个整数,将使用 sklearn.model_selection.KFold 并设置 n_splits=cv。 |
required | |
other_objective_functions |
用于评估管道的独立目标函数列表。签名格式为 obj(pipeline) -> float 或 obj(pipeline) -> np.ndarray 这些函数接收未拟合的估计器。 |
required | |
step |
要返回分数的折叠。如果为None,将返回所有分数的平均值(每个评分器)。默认值为None。 |
None
|
|
budget |
用于对数据进行子采样的预算。如果为None,将使用完整的数据集。默认值为None。 将子采样budget*len(x)个样本。 |
None
|
|
is_classification |
如果为True,将进行分层子采样。默认为True。 |
True
|
|
export_graphpipeline |
强制将管道导出为图形管道。将所有嵌套的sklearn管道、FeatureUnions和GraphPipelines展平为单个GraphPipeline。 |
False
|
|
pipeline_kwargs |
传递给 export_pipeline 或 export_flattened_graphpipeline 方法的关键字参数。 |
{}
|
返回:
| 类型 | 描述 |
|---|---|
ndarray
|
管道的连接分数。前 len(scorers) 个元素是交叉验证分数,其余元素是独立的目标函数。 |
Source code in tpot2/tpot_estimator/estimator_utils.py
remove_underrepresented_classes(x, y, min_count)
¶
辅助函数,用于从数据集中移除样本数少于min_count的类别。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
x |
特征矩阵。 |
必填 | |
y |
目标向量。 |
必填 | |
min_count |
保留一个类别所需的最小样本数。 |
required |
返回:
| 类型 | 描述 |
|---|---|
(ndarray, ndarray)
|
特征矩阵和目标向量,其中移除了样本数少于min_count的类别的行。 |
Source code in tpot2/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 |
要评估的个体。 |
required | |
X_train |
训练集的特征矩阵。 |
required | |
y_train |
训练集的目标向量。 |
required | |
X_test |
测试集的特征矩阵。 |
required | |
y_test |
测试集的目标向量。 |
required | |
scorers |
用于交叉验证的评分器。 |
必填 | |
other_objective_functions |
用于评估管道的独立目标函数列表。签名格式为 obj(pipeline) -> float 或 obj(pipeline) -> np.ndarray 这些函数接收未拟合的估计器。 |
required | |
export_graphpipeline |
强制将管道导出为图形管道。将所有嵌套的sklearn管道、FeatureUnions和GraphPipelines展平为单个GraphPipeline。 |
False
|
|
pipeline_kwargs |
传递给 export_pipeline 或 export_flattened_graphpipeline 方法的关键字参数。 |
{}
|
返回:
| 类型 | 描述 |
|---|---|
ndarray
|
管道的连接分数。前 len(scorers) 个元素是交叉验证分数,其余元素是独立的目标函数。 |