首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyCaret compare_models()函数的输出显示的模型比PyCaret模型支持的少

PyCaret compare_models()函数的输出显示的模型比PyCaret模型支持的少
EN

Stack Overflow用户
提问于 2022-04-29 07:35:18
回答 2查看 570关注 0票数 0

在PyCaret上,我不了解关于这个库的几件事:

  1. 根据本教程,https://github.com/pycaret/pycaret/blob/master/tutorials/Regression%20Tutorial%20Level%20Beginner%20-%20REG101.ipynb有25个回归器可在PyCaret模型库中使用。

我使用PyCaret进行回归。但compare_models()函数的输出模型较少。更准确地说,我建立了一个差异,缺少以下模型:ard, tr, kr, svm, mlp, xgboost, catboost

也许这些模型不适合回归?还是我必须用以下方式创建单独的模型:

代码语言:javascript
复制
ard = create_model('ard', ply = 5)
tr = create_model('tr', ply = 5)
kr = create_model('kr', ply = 5)
svm = create_model('svm', ply=5)
mlp = create_model('mlp', ply=5)
xgboot = create_model('xgboost', ply=5)
catboost = create_model('catboost', ply=5)

  1. I通过setup()函数初始化PyCaret环境:

回归=设置(data= dataset_predictions_meteo,target =‘MonthNumber_OBSERVEE’,categorical_features = 'MonthNumber‘,'origine’,'LIB_SOURCE',numeric_features = 'DIFF_HOURS‘,’target‘,

session_id=123,train_size=0.8,normalize=True,#transform_target=True remove_perfect_collinearity = True)

在预处理管道之前,我的原始数据集是:

代码语言:javascript
复制
    LIB_SOURCE  TEMPERATURE_PREDITE     DIFF_HOURS  TEMPERATURE_OBSERVEE    MonthNumber     origine
gfs_025     10.376662   348.0   5.9500  12  Sencrop
gfs_025     8.688105    351.0   6.6200  12  Sencrop
gfs_025     5.323708    354.0   1.1250  12  Sencrop
gfs_025     5.271800    357.0   -1.5425     12  Sencrop
gfs_025     6.889182    324.0   5.9500  12  Sencrop
gfs_025     15.815905   336.0   23.7150     5   Visiogreen
gfs_025     15.294277   339.0   19.5925     5   Visiogreen
gfs_025     19.515454   342.0   25.3750     5   Visiogreen
gfs_025     25.983438   345.0   34.1500     5   Visiogreen
gfs_025     28.534859   348.0   37.6650     5   Visiogreen

在预处理管道之后,我的数据集是:

代码语言:javascript
复制
get_config('X')

TEMPERATURE_PREDITE     DIFF_HOURS  LIB_SOURCE_arome_001    LIB_SOURCE_arpege_01    LIB_SOURCE_gfs_025  MonthNumber_1   MonthNumber_10  MonthNumber_11  MonthNumber_12  MonthNumber_2   MonthNumber_3   MonthNumber_4   MonthNumber_5   MonthNumber_8   origine_Sencrop
    -0.142182   2.887928    0.0     0.0     1.0     0.0     0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     1.0
    -0.446260   2.921703    0.0     0.0     1.0     0.0     0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     1.0
    -1.052127   2.955477    0.0     0.0     1.0     0.0     0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     1.0
    -1.061474   2.989251    0.0     0.0     1.0     0.0     0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     1.0
    -0.770213   2.617735    0.0     0.0     1.0     0.0     0.
0.837327    2.752832    0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0     1.0     0.0     0.0
0.743391    2.786606    0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0     1.0     0.0     0.0
1.503548    2.820380    0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0     1.0     0.0     0.0
2.668314    2.854154    0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0     1.0     0.0     0.0
3.127778    2.887928    0.0     0.0     1.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0     1.0     0.0     0.0

因此,由于我在remove_perfect_collinearity to True函数中设置了setup(),所以对于带有3个值的分类变量LIB_SOURCE,PyCaret只保留2列,但情况并非如此。对于具有2个值的原始变量,在处理流水线后,PyCaret只保留1列,似乎效果更好。

此外,对于数字特征DIFF_HOURSTEMPERATURE_PREDITE,由于在setup()函数中将其规范化设置为True,因此PyCaret将它们进行转换。但对我来说,正常化应该把0到1之间的值转换成0到1,但事实并非如此。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-04 20:02:53

显示的模型取决于安装在您的环境中的模型库以及您的安装程序。这可能是不同的,因为您提到的许多模型库在默认情况下都没有安装。

票数 1
EN

Stack Overflow用户

发布于 2022-05-17 14:16:48

根据pycaret,这个代码示例只适用于回归模型,但正如您在教程中看到的,它包含所有模型。

代码语言:javascript
复制
from pycaret.regression import *

使用您的模型如下所示;

代码语言:javascript
复制
exp_reg101 = setup(data = data, target = 'Price', session_id=123) 

这不需要拆分数据x和y,只需将整个数据包括目标变量,只需指定目标。将您的模型与下面的代码块进行比较;

代码语言:javascript
复制
best = compare_models()

这种代码的使用没有任何参数和地零基,你可以添加参数,它应该给你所有的回归模型比较。我不认为这是关于环境的,但以防万一,在colab上试用。

至于你的另一个问题,我认为星级和最小级之间存在混淆。如果您希望您的数据范围在0到1之间,如果您没有负值,您应该查找mixmaxscale。我不能说更多,但检查比例类型,据我所知,有3种类型: StandardScaler,MinMaxScaler和RobustScaler。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72054335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档