You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lazypredict 0.2.12版本中如何自定义选择分类模型?

解决Lazypredict 0.2.12自定义选择模型的报错问题

错误原因分析

  1. 'str' object has no attribute 'name':Lazypredict 0.2.12版本的classifiers参数不接受字符串别名(比如'random_forest'),必须传入sklearn的模型类或实例。
  2. too many values to unpack (expected 2):当设置predictions=True时,fit()方法返回三个值(模型评估结果、测试集预测结果、分类报告),仅尝试解包成两个变量会触发该报错。

正确代码示例

import lazypredict
from lazypredict.Supervised import LazyClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 导入需要的目标模型类
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier

data = load_iris()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

# 传入模型类/实例的列表,而非字符串别名
clf = LazyClassifier(
    verbose=0,
    ignore_warnings=True, 
    custom_metric=None, 
    predictions=True,
    classifiers=[RandomForestClassifier(), LogisticRegression(), KNeighborsClassifier()]
)

# 解包三个返回值:模型评估表、测试集预测结果、分类报告
models, predictions, classification_report = clf.fit(X_train, X_test, y_train, y_test)

# 查看模型评估结果
print(models)
# 查看测试集预测结果
print(predictions)

补充说明

  • 如果不需要分类报告,可将predictions设为False,此时fit()仅返回模型评估结果:
    clf = LazyClassifier(
        verbose=0,
        ignore_warnings=True, 
        custom_metric=None, 
        predictions=False,
        classifiers=[RandomForestClassifier, LogisticRegression, KNeighborsClassifier]
    )
    models = clf.fit(X_train, X_test, y_train, y_test)
    print(models)
    
  • 也可以直接传入未实例化的模型类(比如RandomForestClassifier而非RandomForestClassifier()),Lazypredict会自动使用默认参数完成实例化。

内容的提问来源于stack exchange,提问作者user286076

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:55:19