其他设置参数
所有其他设置相关参数
必需参数
setup 函数中只有两个必需参数。
参数
data: 类 dataframe = None
数据集,形状为 (n_samples, n_features),其中 n_samples 是样本数,n_features 是特征数。如果 data 不是 pandas dataframe,它将被转换为 dataframe 并使用默认列名。
data_func: Callable[[], DATAFRAME_LIKE] = None
用于生成
data
(类 dataframe 输入)的函数。当数据集很大且需要并行操作(例如compare_models
)时,此函数非常有用。它可以避免将大型数据集从驱动程序广播到 worker。注意,data
和data_func
中必须且只能设置一个。target: float, int, str 或 sequence, 默认 = -1
如果是 int 或 str,则分别表示 data 中目标列的索引或名称。默认值选择数据集中的最后一列。如果是 sequence,其形状应为 (n_samples,)。
index: bool, int, str 或 sequence, 默认 = False
处理
data
dataframe 中的索引。如果为 False:重置为 RangeIndex。
如果为 True:保留提供的索引。
如果为 int:要用作索引的列的位置。
如果为 str:要用作索引的列的名称。
如果为 sequence:形状为 (n_samples,) 的数组,用作索引。
实验日志记录
PyCaret 可以自动记录整个实验,包括设置参数、模型超参数、性能指标和管道工件。默认设置使用 MLflow
作为日志记录后端。wandb
、cometml
、dagshub
也可用作后端。可以在 setup 中启用一个参数来自动跟踪所有指标、超参数和模型工件。
参数
log_experiment: bool or str or BaseLogger or list of str or BaseLogger, default = False PyCaret
BaseLogger
(或其列表)或 str(mlflow
、wandb
、comet_ml
或dagshub
之一),对应一个日志记录器,用于确定要使用的实验日志记录器。设置为True
将仅使用MLFlow
。experiment_name: str, 默认 = None
用于日志记录的实验名称。当
log_experiment = False
时忽略。experiment_custom_tags: dict, 默认 = None 传递给 mlflow.set_tags 的 tag_name: String -> value: (String,如果不是则会转换为字符串) 字典,用于为实验添加新的自定义标签。
log_plots: bool 或 list, 默认 = False
设置为 True 时,某些图将自动记录在 MLFlow 服务器中。要更改要记录的图类型,请传递包含图 ID 的列表。请参阅
plot_model
的文档。当log_experiment = False
时忽略。log_profile: bool, 默认 = False
设置为 True 时,数据概况将作为 HTML 文件记录在 MLflow 服务器上。
当
log_experiment = False
时忽略。log_data: bool, 默认 = False 设置为
True
时,训练集和测试集将记录为 CSV 文件。
示例
要初始化 MLflow
服务器,您必须在 notebook 内或从命令行运行以下命令。服务器初始化后,您可以在 https://localhost:5000
上跟踪您的实验。
配置 MLflow 跟踪服务器
当没有配置后端时,数据会存储在提供的本地文件(如果为空则为 ./mlruns)。要配置后端,请在执行 setup 函数之前使用 mlflow.set_tracking_uri
。
一个空字符串,或以 file:/ 开头的本地文件路径。数据存储在提供的本地文件(如果为空则为 ./mlruns)。
一个 HTTP URI,例如 https://my-tracking-server:5000。
一个 Databricks 工作区,作为字符串“databricks”提供,或者,要使用 Databricks CLI 配置文件,提供“databricks://<profileName>”。
Databricks 上的 PyCaret
在 Databricks 上使用 PyCaret 时,setup 中的 experiment_name
参数必须包含完整的存储路径。请参阅下面的示例,了解如何在 Databricks 上使用时记录实验。
模型选择
setup 中的以下参数可用于设置模型选择过程的参数。这些参数与数据预处理无关,但会影响您的模型选择过程。
参数
train_size: float, 默认 = 0.7 用于训练和验证的数据集比例。
test_data: 类 dataframe 或 None, 默认 = None
如果不为 None,则
test_data
用作保留集,并忽略train_size
参数。data
和test_data
中的列必须匹配。data_split_shuffle: bool, 默认 = True 设置为
False
时,防止在train_test_split
期间对行进行洗牌。data_split_stratify: bool or list, 默认 = True 控制
train_test_split
期间的分层。设置为True
时,将按目标列进行分层。要在其他任何列上分层,请传递列名列表。当data_split_shuffle
为False
时忽略。fold_strategy: str or scikit-learn CV 生成器对象, 默认 = ‘stratifiedkfold’ 交叉验证策略的选择。可能的值有
‘kfold’
‘stratifiedkfold’
‘groupkfold’
‘timeseries’
与 scikit-learn 兼容的自定义 CV 生成器对象。
对于
groupkfold
,列名必须在fold_groups
参数中传递。示例:setup(fold_strategy="groupkfold", fold_groups="COLUMN_NAME")
fold: int, 默认 = 10 交叉验证中使用的折叠数。必须至少为 2。这是一个全局设置,可以通过使用
fold
参数在函数级别覆盖。当fold_strategy
是自定义对象时忽略。fold_shuffle: bool, 默认 = False 控制 CV 的 shuffle 参数。仅当
fold_strategy
为kfold
或stratifiedkfold
时适用。当fold_strategy
是自定义对象时忽略。fold_groups: str 或 数组状对象 (array-like), 形状为 (n_samples,), 默认 = None
当交叉验证使用 ‘GroupKFold’ 时可选的分组标签。它接受形状为 (n_samples, ) 的数组,其中 n_samples 是训练数据集中的行数。传递字符串时,它被解释为数据集中包含分组标签的列名。
其他参数
setup 中的以下参数可用于控制其他实验设置,例如使用 GPU 进行训练或设置实验的详细程度。它们不会以任何方式影响数据。
参数
n_jobs: int, 默认 = -1 并行运行的作业数(对于支持并行处理的函数)-1 表示使用所有处理器。要在单个处理器上运行所有函数,请设置
n_jobs = None
use_gpu: bool 或 str, 默认 = False 设置为
True
时,将使用支持 GPU 的算法进行训练,如果不可用则回退到 CPU。设置为force
时,将仅使用启用 GPU 的算法,并在不可用时引发异常。当False
时,所有算法仅使用 CPU 训练。启用 GPU 的算法session_id: int, 默认 = None 控制实验的随机性。它等同于 scikit-learn 中的
random_state
。当为None
时,会生成一个伪随机数。这可用于以后重现整个实验。verbose: bool, 默认 = True 设置为
False
时,不打印信息网格。profile: bool, 默认 = False 设置为
True
时,将显示交互式 EDA 报告。profile_kwargs: dict, 默认 = {} (空字典) 传递给用于创建 EDA 报告的
ProfileReport
方法的参数字典。如果profile
为 False 则忽略。custom_pipeline: (str, transformer) 的 list, dict 或 Pipeline, 默认 = None
其他自定义转换器。如果传入,它们将在所有内置转换器之后,最后应用于管道。
custom_pipeline_position: int, 默认 = -1 自定义管道在整个预处理管道中的位置。默认值将自定义管道添加到最后。
preprocess: bool, 默认 = True 设置为
False
时,除了train_test_split
和在custom_pipeline
参数中传递的自定义转换之外,不应用任何转换。当 preprocess 设置为False
时,数据必须已准备好进行建模(无缺失值、无日期、类别数据已编码)。system_log: bool 或 str 或 logging.Logger, 默认 = True
是否保存系统日志文件(命名为 logs.log)。如果输入是字符串,则将其用作日志文件的路径。如果输入已经是 logger 对象,则直接使用该对象。
memory: str, bool 或 Memory, 默认=True
用于缓存管道中已拟合的转换器。
如果为 False:不执行缓存。
如果为 True:使用默认临时目录。
如果为 str:缓存目录的路径。
最近更新
这有帮助吗?