微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

`ValueError:y中人口最少的类只有1个成员,在PyCaret中太少了

如何解决`ValueError:y中人口最少的类只有1个成员,在PyCaret中太少了

与PyCaret合作时遇到问题。以前我没有任何问题。

但是当我使用pandasthis question对数据进行过采样并保存时,它开始了。

文件here

然后我在单独的笔记本中读取文件

import pycaret
from pycaret.utils import version
from pycaret.regression import *
from pycaret.classification import *

# Read clean data
starbucks_days = pd.read_csv('days_smote.csv')

# Drop a column
starbucks_days = starbucks_days.drop(['Unnamed: 0'],axis = 1)
starbucks_days = starbucks_days.drop(['transaction','offer_viewed','offer_received','offer_completed'],axis = 1)
starbucks_days = starbucks_days.drop(['label'],axis = 1)

我开始使用PyCaret

# Initialize Setup
starbucks_days1 = setup(starbucks_days,target = 'time_completed_viewed',session_id = 123,log_experiment = True,experiment_name = 'days1')

但是出现错误

ValueError:y中人口最少的类只有1个成员,这太少了。任何班级的最小团体人数不得少于2。

This GitHub issue gives some hints

我检查了一些参数

type(starbucks_days)
pandas.core.frame.DataFrame

starbucks_days['time_completed_viewed'].value_counts()
6.000000      1682
12.000000     1503
18.000000     1318
24.000000     1212
174.000000    1068
          ... 
444.107530       1
226.213225       1
411.947513       1
236.001744       1
394.722944       1
Name: time_completed_viewed,Length: 3572,dtype: int64

任何提示我缺少什么?正如我所说,PyCaret可以与简单的csv文件配合使用,而不会过采样。

解决方法

在您的导入中,您在导入classification之后导入了regression,而该classification已覆盖环境中的模块。

这似乎是一个回归问题(连续值)。您无需导入from pycaret.classification import *

从您的代码中删除此行,它应该可以正常工作:

body {
    margin: 0;
    height: 100%;
    background: linear-gradient(-90deg,rgba(0,.05) 1px,transparent 1px),linear-gradient(rgba(0,linear-gradient(-90deg,.04) 1px,linear-gradient(transparent 3px,#f2f2f2 3px,#f2f2f2 78px,transparent 78px),#aaa 1px,transparent 3px,linear-gradient(#aaa 1px,#f2f2f2;
    background-size: 4px 4px,4px 4px,80px 80px,80px 80px;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。