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

使用LazyClassifier输出空结果表,如何获取所有模型准确率?

解决LazyClassifier输出空结果表问题

问题代码

from sklearn.model_selection import train_test_split
import lazypredict
from lazypredict.Supervised import LazyClassifier
import numpy as np

y = np.array(skin_new_df['diagnostic'])
X = np.array(skin_new_df.drop(['diagnostic'], axis=1))
print(X.shape)
print(y.shape)
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)
clf = LazyClassifier(verbose=0, 
                 ignore_warnings=True, 
                 custom_metric = None)
models,predictions = clf.fit(X_train, X_test, y_train, y_test)
print(models)

运行输出

(2298, 25)
(2298,)
100%|██████████| 29/29 [00:08<00:00,  3.61it/s]
Accuracy    Balanced Accuracy   ROC AUC F1 Score    Time Taken
Model

解决方案

以下是按优先级排序的针对性解决方法:

  1. 处理目标变量编码
    LazyClassifier对字符串类型的标签可能存在兼容问题,将标签转换为整数编码:
from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
y = le.fit_transform(skin_new_df['diagnostic'])
  1. 保持训练/测试集类别分布一致
    若数据集类别不平衡,默认拆分可能导致测试集缺失部分类别,触发指标计算异常,添加stratify参数:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)
  1. 修复版本兼容问题
    部分新版本lazypredict与scikit-learn存在适配问题,安装稳定版本:
pip uninstall -y lazypredict
pip install lazypredict==0.2.12
  1. 清理特征数据
    确保特征矩阵仅包含数值型数据且无缺失值:
# 检查缺失值
print(skin_new_df.isnull().sum())
# 删除含缺失值的行
skin_new_df = skin_new_df.dropna()
# 筛选数值型特征
X = skin_new_df.drop(['diagnostic'], axis=1).select_dtypes(include=['int64', 'float64']).values
y = le.fit_transform(skin_new_df['diagnostic'])
  1. 优化结果打印方式
    print(models)可能因DataFrame格式问题显示不全,改用完整字符串输出:
print(models.to_string())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:40:23