如何解决`ValueError:y中人口最少的类只有1个成员,在PyCaret中太少了
与PyCaret合作时遇到问题。以前我没有任何问题。
但是当我使用pandas
和this question对数据进行过采样并保存时,它开始了。
然后我在单独的笔记本中读取文件。
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 举报,一经查实,本站将立刻删除。