【问题标题】:Pycaret predict error in multiclassification using ColabPycaret 使用 Colab 预测多分类中的错误
【发布时间】:2022-11-12 11:48:30
【问题描述】:

我正在使用 Colab 中的 Pycaret 库对这个数据集进行简单的预测:

https://www.kaggle.com/andrewmvd/fetal-health-classification

当我运行我的代码时:

from pycaret.utils import enable_colab 
enable_colab()


from google.colab import drive
drive.mount('/content/drive')


import pandas as pd
from pycaret.classification import *
from pandas_profiling import ProfileReport


df= pd.read_csv("/content/drive/MyDrive/Pycaret/fetal_health.csv")


df2 = df.iloc[:,:11]
df2['fetal_health'] = df['fetal_health']



test = df2.sample(frac=0.10, random_state=42, weights='fetal_health')
train = df2.drop(test.index)

test.reset_index(inplace=True, drop=True)
train.reset_index(inplace=True, drop=True)


clf = setup(data =train, target = 'fetal_health', session_id=42,
 log_experiment=True, experiment_name='fetal', normalize=True)

best = compare_models(sort="Accuracy")


rf = create_model('rf', fold=30)


tuned_rf = tune_model(rf, optimize='Accuracy')


predict_model(tuned_rf)

我明白了错误

我认为这是因为我的目标变量不平衡(参见 img)并导致预测不正确。

有人可以帮我理解吗? 提前谢谢

【问题讨论】:

    标签: python-3.x machine-learning classification google-colaboratory pycaret


    【解决方案1】:

    您是否在单独的单元格中运行每个步骤来检查输出?

    clf = setup(data =train, target = 'fetal_health', session_id=42,
     log_experiment=True, experiment_name='fetal', normalize=True)
    

    并检查:

    1. 是否正确推断出所有变量类型?(例如,将您的代码与同名的 Kaggle 数据集一起使用,所有变量都显示为数字,除了严重减速显示为“分类”——是否正确?

    2. 是否有任何需要更改的预处理配置?我确定您的问题与不平衡的目标变量无关,但是您可以通过更改设置来测试自己(添加fix_imbalance = 真更改默认值 - 当您检查设置输出时,它显示为 False)。

      您可以在此处了解有关可用预处理配置的更多信息:

      https://pycaret.gitbook.io/docs/get-started/preprocessing

      此外,在进行故障排除时,您可以使用

      best_model = create_model(best, fold=30)
      predict_model(best_model)
      

      (无需查找最佳模型手动添加到create_model(), 或使用 tune_model() 直到模型正常工作。)

    【讨论】:

      【解决方案2】:

      我发现问题出在哪里: 我的目标变量以值 1 开头,并具有 3 个不同的值。当 Pycaret 尝试进行列表理解时,这会出错(因为它从零索引开始)。 为了解决这个问题,我只是将我的变量转换为从零开始并且工作正常

      【讨论】:

        【解决方案3】:

        莱安德罗,

        非常感谢您的解决方案!我在使用相同的数据集时遇到了同样的问题!

        A. Beal,我试过你的解决方案,还是出现同样的错误信息,所以我尝试了Leandro的解决方案,问题其实是目标以1开头,而不是0。谢谢你关于如何减少的建议编码!

        【讨论】:

          猜你喜欢
          • 2019-04-19
          • 2018-06-30
          • 1970-01-01
          • 2018-08-19
          • 2017-01-19
          • 2015-03-01
          • 2020-03-20
          • 2022-11-13
          • 2018-02-17
          相关资源
          最近更新 更多