在PyCaret上,我不了解关于这个库的几件事:
我使用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)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)
在预处理管道之前,我的原始数据集是:
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因此,由于我在remove_perfect_collinearity to True函数中设置了setup(),所以对于带有3个值的分类变量LIB_SOURCE,PyCaret只保留2列,但情况并非如此。对于具有2个值的原始变量,在处理流水线后,PyCaret只保留1列,似乎效果更好。
此外,对于数字特征DIFF_HOURS和TEMPERATURE_PREDITE,由于在setup()函数中将其规范化设置为True,因此PyCaret将它们进行转换。但对我来说,正常化应该把0到1之间的值转换成0到1,但事实并非如此。
谢谢。
发布于 2022-05-04 20:02:53
显示的模型取决于安装在您的环境中的模型库以及您的安装程序。这可能是不同的,因为您提到的许多模型库在默认情况下都没有安装。
发布于 2022-05-17 14:16:48
根据pycaret,这个代码示例只适用于回归模型,但正如您在教程中看到的,它包含所有模型。
from pycaret.regression import *使用您的模型如下所示;
exp_reg101 = setup(data = data, target = 'Price', session_id=123) 这不需要拆分数据x和y,只需将整个数据包括目标变量,只需指定目标。将您的模型与下面的代码块进行比较;
best = compare_models()这种代码的使用没有任何参数和地零基,你可以添加参数,它应该给你所有的回归模型比较。我不认为这是关于环境的,但以防万一,在colab上试用。
至于你的另一个问题,我认为星级和最小级之间存在混淆。如果您希望您的数据范围在0到1之间,如果您没有负值,您应该查找mixmaxscale。我不能说更多,但检查比例类型,据我所知,有3种类型: StandardScaler,MinMaxScaler和RobustScaler。
https://stackoverflow.com/questions/72054335
复制相似问题