PyCaret compare_models() 函数的输出显示的模型少于支持的 PyCaret 模型
Output for PyCaret compare_models() function shows less models than PyCaret models supported
PyCaret 上的新功能,我不了解这个库的几个方面:
- 根据本教程,https://github.com/pycaret/pycaret/blob/master/tutorials/Regression%20Tutorial%20Level%20Beginner%20-%20REG101.ipynbPyCaret 模型库中有 25 个可用的回归器。
我正在使用 PyCaret 进行回归。
但是 compare_models()
函数的输出显示的模型较少。更准确地说,我建立了一个微分并且缺少以下模型:ard, tr, kr, svm, mlp, xgboost, catboost
.
也许这些模型不适合回归?
或者我是否必须创建单独的模型:
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)
我初始化了 PyCaret 环境感谢setup()
函数:
回归=设置(数据=dataset_predictions_meteo,目标='TEMPERATURE_OBSERVEE',categorical_features=['MonthNumber','origine','LIB_SOURCE'] ,
numeric_features = ['DIFF_HOURS' , 'TEMPERATURE_PREDITE'],
session_id=123,
train_size=0.8,
归一化=真,
#transform_target=真
remove_perfect_collinearity = 真)
预处理管道之前,我的原始数据集是:
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
预处理管道后,我的数据集是:
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
所以因为我在 setup()
函数中设置了 remove_perfect_collinearity to True
,所以我希望对于具有 3 个值的分类变量 LIB_SOURCE
,PyCaret 只保留 2 列,但事实并非如此。对于具有 2 个值的 origine 变量,在处理管道后,PyCaret 似乎只保留 1 列。
此外,对于数值特征 DIFF_HOURS
和 TEMPERATURE_PREDITE
,PyCaret 会转换它们,因为 setup()
函数中的 normalize 设置为 True。但对我来说,归一化应该在 0 和 1 之间转换值,但事实并非如此。
谢谢。
显示的模型取决于安装在您的环境中的模型库以及您的设置。它可能会有所不同,因为您提到的许多模型库默认情况下都没有安装。
根据 pycaret,此代码示例仅适用于回归模型,但正如您在教程中看到的,它包括所有模型。
from pycaret.regression import *
使用您的模型如下所示;
exp_reg101 = setup(data = data, target = 'Price', session_id=123)
这不需要拆分您的数据 x 和 y 只需将您的整个数据包括您的目标变量即可指定您的目标。
比较您的模型,如下面的代码块;
best = compare_models()
这种没有任何参数和零基础的代码用法,你可以添加参数,它应该给你所有的回归模型比较。我不认为它与环境有关,但以防万一在 colab 上使用它来尝试一下。
关于你的另一个问题,我认为 stardartscale 和 minmaxscale 之间存在混淆。如果您希望数据范围在 0 到 1 之间并且没有负值,则应该寻找 mixmaxscale。我不能说更多,但检查秤类型据我所知有 3 种类型;
StandardScaler、MinMaxScaler 和 RobustScaler。
PyCaret 上的新功能,我不了解这个库的几个方面:
- 根据本教程,https://github.com/pycaret/pycaret/blob/master/tutorials/Regression%20Tutorial%20Level%20Beginner%20-%20REG101.ipynbPyCaret 模型库中有 25 个可用的回归器。
我正在使用 PyCaret 进行回归。
但是 compare_models()
函数的输出显示的模型较少。更准确地说,我建立了一个微分并且缺少以下模型:ard, tr, kr, svm, mlp, xgboost, catboost
.
也许这些模型不适合回归? 或者我是否必须创建单独的模型:
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)
我初始化了 PyCaret 环境感谢
setup()
函数:回归=设置(数据=dataset_predictions_meteo,目标='TEMPERATURE_OBSERVEE',categorical_features=['MonthNumber','origine','LIB_SOURCE'] , numeric_features = ['DIFF_HOURS' , 'TEMPERATURE_PREDITE'],
session_id=123, train_size=0.8, 归一化=真, #transform_target=真 remove_perfect_collinearity = 真)
预处理管道之前,我的原始数据集是:
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
预处理管道后,我的数据集是:
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
所以因为我在 setup()
函数中设置了 remove_perfect_collinearity to True
,所以我希望对于具有 3 个值的分类变量 LIB_SOURCE
,PyCaret 只保留 2 列,但事实并非如此。对于具有 2 个值的 origine 变量,在处理管道后,PyCaret 似乎只保留 1 列。
此外,对于数值特征 DIFF_HOURS
和 TEMPERATURE_PREDITE
,PyCaret 会转换它们,因为 setup()
函数中的 normalize 设置为 True。但对我来说,归一化应该在 0 和 1 之间转换值,但事实并非如此。
谢谢。
显示的模型取决于安装在您的环境中的模型库以及您的设置。它可能会有所不同,因为您提到的许多模型库默认情况下都没有安装。
根据 pycaret,此代码示例仅适用于回归模型,但正如您在教程中看到的,它包括所有模型。
from pycaret.regression import *
使用您的模型如下所示;
exp_reg101 = setup(data = data, target = 'Price', session_id=123)
这不需要拆分您的数据 x 和 y 只需将您的整个数据包括您的目标变量即可指定您的目标。 比较您的模型,如下面的代码块;
best = compare_models()
这种没有任何参数和零基础的代码用法,你可以添加参数,它应该给你所有的回归模型比较。我不认为它与环境有关,但以防万一在 colab 上使用它来尝试一下。
关于你的另一个问题,我认为 stardartscale 和 minmaxscale 之间存在混淆。如果您希望数据范围在 0 到 1 之间并且没有负值,则应该寻找 mixmaxscale。我不能说更多,但检查秤类型据我所知有 3 种类型; StandardScaler、MinMaxScaler 和 RobustScaler。